Skip to content

Commit

Permalink
Обновлено
Browse files Browse the repository at this point in the history
2017-02-12 [!] Внесены корректировки в функцию setProductReview()
автором Sunlit
2017-02-12 [+] Выбор загрузки цен в скидки или в акции
2017-02-12 [V] Изменена версия на 1.6.2.b25
2017-02-12 [+] Добавлена синхронизация свойств из торговой системы или
атрибутов в opencart по наименованию, другими словами добавилась опция
выбора.
2017-02-12 [!] Исправлена ошибка в SEO при генерации для категории
ошибку выдавало если в таблице category_description не было поля meta_h1
но присутствовал в таблице product_description.
2017-02-12 [+] Добавлена кнопка ручной перегенерации SEO
2017-02-12 [+] Добавлена настройка разрешающая делать экспорт модуля для
всех по запросу http://site/export/exchange1c.php?module=export
2017-02-12 [V] Изменена версия на 1.6.2.b24
2017-02-08 [!] Исправлена ошибка с остатками при использованиии
характеристик
2017-02-08 [V] Изменена версия на 1.6.2.b23
2017-02-06 [!] Исправлена авторизация при разных режимах работы
веб-сервера
2017-02-06 [!] Исправлена ошибка при записи цен с использованием
характеристик
2017-02-06 [V] Изменена версия на 1.6.2.b22
2017-02-06 [!] Исправлены ошибки в SEO
2017-02-06 [+] Добавлена опция полного отключения загрузки категорий,
при загрузке новые категории не будут созданы, структура старых и данные
в них не будут изменены.
2017-02-06 [+] Частично сделана работа таблицы загрузки свойств из
торговой системы, в ней пока можно исключить ненужные Вам свойства
2017-02-06 [!] Исправлена ошибка возникающая при добавлении
производителя: undefinex index: manufacturer_description в модели,
функция addManufacturer() и updateManufacturer()
2017-02-06 [!] Исправлена функция очистки старых картинок, может
возникнуть ошибка при вызове модели ("to expected to be a reference
value given in")
2017-02-06 [V] Изменена версия на 1.6.2.b21
  • Loading branch information
KirilLoveVE committed Feb 13, 2017
1 parent 29d6ef5 commit 5ac5cc3
Show file tree
Hide file tree
Showing 5 changed files with 361 additions and 42 deletions.
12 changes: 11 additions & 1 deletion history.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
2017-02-06 [!] Исправлена авторизация при разных режимах работы веб-сервера
2017-02-12 [!] Внесены корректировки в функцию setProductReview() автором Sunlit
2017-02-12 [+] Выбор загрузки цен в скидки или в акции
2017-02-12 [V] Изменена версия на 1.6.2.b25
2017-02-12 [+] Добавлена синхронизация свойств из торговой системы или атрибутов в opencart по наименованию, другими словами добавилась опция выбора.
2017-02-12 [!] Исправлена ошибка в SEO при генерации для категории ошибку выдавало если в таблице category_description не было поля meta_h1 но присутствовал в таблице product_description.
2017-02-12 [+] Добавлена кнопка ручной перегенерации SEO
2017-02-12 [+] Добавлена настройка разрешающая делать экспорт модуля для всех по запросу http://site/export/exchange1c.php?module=export
2017-02-12 [V] Изменена версия на 1.6.2.b24
2017-02-08 [!] Исправлена ошибка с остатками при использованиии характеристик
2017-02-08 [V] Изменена версия на 1.6.2.b23
2017-02-06 [!] Исправлена авторизация при разных режимах работы веб-сервера
2017-02-06 [!] Исправлена ошибка при записи цен с использованием характеристик
2017-02-06 [V] Изменена версия на 1.6.2.b22
2017-02-06 [!] Исправлены ошибки в SEO
Expand Down
68 changes: 57 additions & 11 deletions upload/admin/controller/module/exchange1c.php
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ public function index() {
if (isset($this->request->post['exchange1c_seo_product_tags'])) {
$data['exchange1c_seo_product_tags'] = $this->request->post['exchange1c_seo_product_tags'];
} else {
$data['exchange1c_seo_product_tags'] = '{name}, {fullname}, {sku}, {brand}, {desc}, {model}, {cats}, {prod_id}, {cat_id}';
$data['exchange1c_seo_product_tags'] = '{name}, {fullname}, {sku}, {brand}, {model}, {cats}, {prod_id}, {cat_id}';
}

if (isset($this->request->post['exchange1c_seo_category_tags'])) {
Expand Down Expand Up @@ -436,12 +436,23 @@ public function index() {
'ean' => $this->language->get('text_product_ean')
);

$select_sync_attributes = array(
'guid' => $this->language->get('text_guid'),
'name' => $this->language->get('text_name'),
);

$list_price_import_to = array(
'discount' => $this->language->get('text_discount'),
'special' => $this->language->get('text_special'),
);

// Генерация опций
$params = array(
'cleaning_db' => array('type' => 'button')
,'cleaning_links' => array('type' => 'button')
,'cleaning_cache' => array('type' => 'button')
,'cleaning_old_images' => array('type' => 'button')
,'generate_seo' => array('type' => 'button')
,'flush_quantity_category' => array('type' => 'radio', 'default' => -1)
,'watermark' => array('type' => 'image')
,'allow_ip' => array('type' => 'textarea')
Expand All @@ -461,6 +472,7 @@ public function index() {
,'create_new_category' => array('type' => 'radio', 'default' => 1)
,'synchronize_by_code' => array('type' => 'radio', 'default' => -1)
,'synchronize_new_product_by' => array('type' => 'select', 'options' => $select_sync_new_poroduct, 'default' => 'sku')
,'synchronize_attribute_by' => array('type' => 'select', 'options' => $select_sync_attributes, 'default' => 'guid')
,'status' => array('type' => 'radio', 'default' => 1)
,'flush_log' => array('type' => 'radio', 'default' => 1)
,'currency_convert' => array('type' => 'radio', 'default' => 1)
Expand Down Expand Up @@ -521,6 +533,9 @@ public function index() {
,'order_status_change' => array('type' => 'select', 'options' => $order_statuses)
,'order_notify_subject' => array('type' => 'input')
,'order_notify_text' => array('type' => 'textarea')
,'set_quantity_if_zero' => array('type' => 'input')
,'export_module_to_all' => array('type' => 'radio', 'default' => -1)
,'price_import_to' => array('type' => 'select', 'options' => $list_price_import_to)

);

Expand Down Expand Up @@ -1526,6 +1541,7 @@ public function manualCleaningOldImages() {
* Очистка кэша: системного, картинок
*/
public function manualCleaningCache() {

$json = array();
// Проверим разрешение
if ($this->user->hasPermission('modify', 'module/exchange1c')) {
Expand All @@ -1549,6 +1565,34 @@ public function manualCleaningCache() {
} // manualCleaningCache()


/**
* Генерация SEO на все товары
*/
public function manualGenerateSeo() {

$json = array();
// Проверим разрешение
if ($this->user->hasPermission('modify', 'module/exchange1c')) {
$this->load->model('tool/exchange1c');

$result = $this->model_tool_exchange1c->seoGenerate();

if ($result['error']) {
$json['error'] = "Ошибка формирования SEO\n" . $result['error'];
} else {
$json['success'] = "SEO успешно сформирован, обработано:\nТоваров: " . $result['product'] . "\nКатегорий: " . $result['category'] . "\nПроизводителей: " . $result['manufacturer'];
}
} else {
$json['error'] = "У Вас нет прав на изменение!";
}

$this->load->language('module/exchange1c');

$this->response->setOutput(json_encode($json));

} // manualGenerateSeo()


/**
* Проверка существования каталогов
*/
Expand Down Expand Up @@ -2259,20 +2303,22 @@ public function delete($path) {
*/
public function modeExportModule() {

// Разрешен ли IP
if ($this->config->get('exchange1c_allow_ip') != '') {
$ip = $_SERVER['REMOTE_ADDR'];
$allow_ips = explode("\r\n", $this->config->get('exchange1c_allow_ip'));
if (!in_array($ip, $allow_ips)) {
echo("Ваш IP адрес " . $ip . " не найден в списке разрешенных");
if ($this->config->get('exchange1c_export_module_to_all') != 1) {
// Разрешен ли IP
if ($this->config->get('exchange1c_allow_ip') != '') {
$ip = $_SERVER['REMOTE_ADDR'];
$allow_ips = explode("\r\n", $this->config->get('exchange1c_allow_ip'));
if (!in_array($_SERVER['REMOTE_ADDR'], $allow_ips)) {
echo("Ваш IP адрес " . $_SERVER['REMOTE_ADDR'] . " не найден в списке разрешенных");
return false;
}
} else {
echo("Список IP адресов пуст, задайте адрес");
return false;
}
} else {
echo("Список IP адресов пуст, задайте адрес");
return false;
}

$this->log("Экспорт модуля " . $this->module_name,1);
$this->log("Экспорт модуля " . $this->module_name . " для IP " . $_SERVER['REMOTE_ADDR']);
// создаем папку export в кэше

// Короткое название версии
Expand Down
30 changes: 28 additions & 2 deletions upload/admin/language/russian/module/exchange1c.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@
$_['text_priority'] = 'Приоритет';
$_['text_customer_group'] = 'Группа покупателей';
$_['text_not_import'] = 'Не импортировать';
$_['text_name'] = 'Наименование';
$_['text_guid'] = 'Ид';
$_['text_discount'] = 'Скидки';
$_['text_special'] = 'Акции';

// Кнопки
$_['button_upload'] = 'Загрузить';
Expand Down Expand Up @@ -102,7 +106,10 @@
$_['legend_security'] = 'Безопасность';

$_['entry_allow_ip'] = 'Разрешенные IP адреса:';
$_['desc_allow_ip'] = 'Указывать IP адреса переносом строки, если пусто разрешено с любых. (Разделять переносом строки. Если пусто, разрешены все адреса). Если список будет заполнен и в нем не будет разрешенного адреса, 1С:Предприятие выдаст ошибку "Авторизация не пройдена"';
$_['desc_allow_ip'] = 'Устанавливает фильтр адресов для подключения к модулю из торговой системы, если ничего не указано, тогда разрешено с любых. IP адреса разделять переносом строки. Если список будет заполнен и в нем не будет разрешенного адреса, торговая система при подключении выдаст ошибку: "Авторизация не пройдена"';

$_['entry_export_module_to_all'] = 'Разрешать всем скачивать модуль:';
$_['desc_export_module_to_all'] = 'Если эта опция включена, то модуль может скачать любой, если отключена, то только из списка разрешенных IP адресов по адресу: http://site/export/exchange1c.php?module=export';

// Прочее (кнопки)
$_['legend_other'] = 'Прочее';
Expand Down Expand Up @@ -169,6 +176,11 @@
<li>Наименование - поиск по наименованию, не путать с полным наименованием, регистр в этом случае не имеет значения
<li>Штрихкод - на сайте в товаре в поле EAN должен забит штрихкод у товаров, а 1С должна выгружать это поле, если такого поля нет, товар не будет загружен</ul>';

$_['legend_import_attributes'] = 'Импорт свойств товаров из торговой системы в атрибуты CMS';

$_['entry_synchronize_attribute_by'] = 'Синхронизация атрибутов по:';
$_['desc_synchronize_attribute_by'] = 'Синхронизация по умолчанию происходит по Ид (GUID) из торговой системы, это гарантирует что даже при изменении названия свойства, изменится название атрибута в CMS. а значения останутся неизменными, но если у разных видов товаров есть свойства с одинаковым названием, то и в CMS они тоже будут дублироваться а значения у каждого будут разные. Если же Вы не хотите видеть дубликаты, то можете включить синхронизацию по наименованию, в этом случае все свойства у разных видов товаров с одинаковым названием будут рассматриывться как одно, следовательно. На самом деле в товаре прописаны GUID на атрибуты, и чтобы атрибут был найден по нескольким Ид, в таблице attribute_to_1c одному attribute_id будет сопоставлены несколько Ид';

$_['entry_status_new_product'] = 'Статус у новых товаров:';
$_['desc_status_new_product'] = 'Если опция включена, то при загрузке новых товаров, они будут видны в каталоге, если опция выключена, тогда в каталоге товары не будут отображаться.';

Expand Down Expand Up @@ -301,6 +313,9 @@

$_['legend_prices'] = 'Связь типов цен (соглашений) в 1С с группами покупателей';

$_['entry_price_import_to'] = 'Загрузка видов цен в:';
$_['desc_price_import_to'] = 'Загружает дополнительные виды цен для дополнительных групп покупателей либо в скидки либо в акции';

$_['entry_price_types_auto_load'] = 'Автоматическая загрузка типов цены из ТС';
$_['desc_price_types_auto_load'] = 'Автоматическая загрузка типов цены из ТС в том порядке в каком они представлены в CML, при этом цены будут присвоены id группам покупателей в порядке возрастания. После первого обмена с торговой системой, необходимо проверить и при необходимости внести изменения. Для ручной настройки достаточно указать название типа цен, Ид заполнится автоматически при первой синхронизации, и наоборот, если будет указан только Ид торговой системы, то название будет заполнено автоматически, приоритет будет иметь поле Ид, то есть если оно заполнено, поиск будет произведен по этому полю.
<br /> Если цены в таблице указаны, но включена опция автозагрузка цен, тогда цены старые останутся, но добавятся те которые отсутствуют в таблице.';
Expand Down Expand Up @@ -337,8 +352,18 @@
$_['entry_flush_quantity_category'] = 'Обнулять остаток в категориях:';
$_['desc_flush_quantity_category'] = 'При загрузке структуры каталога из торговой системы будут обнуляться остатки у всех товаров в загружаемых категориях и магазину';

$_['entry_set_quantity_if_zero'] = 'Установить остаток при нуле:';
$_['desc_set_quantity_if_zero'] = 'Если указать число больше нуля, то при обмене установится это количество';

//////////////////////////// SEO ////////////////////////////

// SEO генерация
$_['legend_generate_seo'] = 'Сформировать SEO для всех товаров';

$_['entry_generate_seo'] = 'Формирует SEO поля:';
$_['text_button_generate_seo'] = 'Сформировать SEO';
$_['desc_generate_seo'] = 'Ручная генерация SEO по шаблонам, данные берутся из базы и формируются указанные поля на все товары';

// SEO Товары
$_['legend_seo_product'] = 'Настройки SEO товара';

Expand Down Expand Up @@ -425,7 +450,8 @@

// Валюта
$_['entry_order_currency'] = 'Обозначение валюты (руб.):';
$_['desc_order_currency'] = 'Название валюты как указано в торговой системе, если поле оставить пустым, будет выгружено "руб.", для УТ 10.3 это очень важно, для УНФ 1.6 не имеет значение.';
$_['desc_order_currency'] = 'Название валюты как указано в торговой системе, если поле оставить пустым, будет выгружено "руб.", для УТ 10.3 это очень важно, для УНФ 1.6 не имеет значение.<br />
Для Украины "Управление торговлей 2.3" надо указать "грн"';
$_['ph_order_currency'] = 'руб.';

// Кодировка
Expand Down
Loading

0 comments on commit 5ac5cc3

Please sign in to comment.