-
Публикаций
122 -
Зарегистрирован
-
Посещение
Тип публикации
Профили
Форум
Дополнения
Статьи
FAQ
Наши новости
Наши услуги
Блоги
module__dplus_manager
Все публикации пользователя herminator
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
@RustK , приветствую. Код по умолчанию пишется в SKU. Тоже хочу его видеть в коде товара (модели). Пока так же попробовал "Правило загрузки", но не сработало. Мне пока с частичным пропаданием товаров на этапе разбора xml надо решить, потом наверное этим займусь. UPD: В правилах загрузки нужно написать Артикул ## model . Код товара станет артикулом.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Обнаружилась проблема с загрузкой товаров. В xml выгрузки товар есть, а в логах загрузки модуля - нет. Бум разбираться...- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
У меня Opencart.cms 3.0.2.0 (rs.4) + Обмен данными с 1C v8.x (Tesla-Chita) 1.6.4.7. Только что выгрузил, наименование обновилось. Товар не добавлял, но думаю тоже добавится.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Ну занят и занят. Потому и не продаёт. Что есть, то есть.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Возможно, если бы у автора было больше времени, было бы меньше ошибок, допущенных по невнимательности и торопливости. Но уж точно не для того, чтобы всем насолить и поржать, как все мучаются. Попытка перейти на него окончилась возвратом к этому модулю. Сходу начались проблемы, за которые платить деньги как-то странно. Кроме того, в этом модуле уже есть то, что там или доработка за доп.плату, или решение сторонними модулями, желательно платными. Но если ни в зуб ногой и есть деньги, то, конечно, лучше модуль_про_который_нельзя_говорить.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Нашёл интересующую вас строку в exchange1c-related-options.ocmod.xml. Только удаление её, конечно, так себе решение проблемы. Скорее костыль, и довольно корявый. Переходите на новую версию, будем вместе мучаться над новыми проблемами- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Значит, их добавляет модификатор exchange1с. У меня просто другая версия модуля, и этой проблемы нет. Зато полно других)) У вас какая версия?- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Потому что не надо править кэшированные файлы. Это как минимум странно. Править надо тут: /home/n/nimol6/hookahmafia.ru/public_html/system/storage/modification/catalog/model/checkout/order.php (путь взят из контекста, для непонятливых путь /catalog/model/checkout/order.php), потом обновить модификаторы и сбросить кэш. Лично мне для наглядности внесённых изменений проще написать модификатор. Один раз пишешь, потом добавляешь в него всякое по ходу пьесы.- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Извиняюсь, забыл. Чтобы паттерн принимал значение, его нужно добыть из базы данных. В функции seoGenerate нужно найти if (isset($this->TAB_FIELDS['product_description']['meta_h1'])) { $sql = "SELECT `p`.`product_id`, `p`.`sku`, `p`.`model`, `p`.`manufacturer_id`, `pd`.`name`, `pd`.`tag`, `pd`.`meta_title`, `pd`.`meta_description`, `pd`.`meta_keyword`, `pd`.`meta_h1` FROM `" . DB_PREFIX . "product` `p` LEFT JOIN `" . DB_PREFIX . "product_description` `pd` ON (`p`.`product_id` = `pd`.`product_id`) WHERE `pd.`language_id` = " . $language_id; } else { $sql = "SELECT `p`.`product_id`, `p`.`sku`, `p`.`model`, `p`.`manufacturer_id`, `pd`.`name`, `pd`.`tag`, `pd`.`meta_title`, `pd`.`meta_description`, `pd`.`meta_keyword` FROM `" . DB_PREFIX . "product` `p` LEFT JOIN `" . DB_PREFIX . "product_description` `pd` ON (`p`.`product_id` = `pd`.`product_id`) WHERE `pd`.`language_id` = " . $language_id; array_push($no_update_description, 'meta_h1'); } И заменить на if (isset($this->TAB_FIELDS['product_description']['meta_h1'])) { $sql = "SELECT `p`.`product_id`, `p`.`sku`, `p`.`model`, `p`.`price`, `p`.`manufacturer_id`, `pd`.`name`, `pd`.`tag`, `pd`.`meta_title`, `pd`.`meta_description`, `pd`.`meta_keyword`, `pd`.`meta_h1` FROM `" . DB_PREFIX . "product` `p` LEFT JOIN `" . DB_PREFIX . "product_description` `pd` ON (`p`.`product_id` = `pd`.`product_id`) WHERE `pd.`language_id` = " . $language_id; } else { $sql = "SELECT `p`.`product_id`, `p`.`sku`, `p`.`model`, `p`.`price`, `p`.`manufacturer_id`, `pd`.`name`, `pd`.`tag`, `pd`.`meta_title`, `pd`.`meta_description`, `pd`.`meta_keyword` FROM `" . DB_PREFIX . "product` `p` LEFT JOIN `" . DB_PREFIX . "product_description` `pd` ON (`p`.`product_id` = `pd`.`product_id`) WHERE `pd`.`language_id` = " . $language_id; array_push($no_update_description, 'meta_h1'); } В смысле добавить ", `p`.`price`" в запрос.- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Вообще, я это всё затеял, потому что хотел рабочую генерацию SEO полей и паттерн "цена", который добавлен, и работает. Но во время выгрузки обнуляются цены, поэтому генерацию SEO в режиме автоматической выгрузки нужно выносить ПОСЛЕ разбора предложений (когда цены внесены в товары). В функции seoGenerateProduct: $data['price'] = strtok((float)$data['price'], '.'); // Сопоставляем значения к паттернам $tags = array( '{name}' => isset($data['name']) ? $data['name'] : '', '{sku}' => isset($data['sku']) ? $data['sku'] : '', '{model}' => isset($data['model']) ? $data['model'] : '', '{price}' => isset($data['price']) ? $data['price'] : '', '{brand}' => isset($data['manufacturer']) ? $data['manufacturer']['name'] : '', '{cats}' => $this->getProductCategoriesString($product_id), '{prod_id}' => isset($product_id) ? $product_id : '', '{cat_id}' => isset($data['category_id']) ? $data['category_id'] : '' ); Хотя, это неправильно, т.к. при использовании скидок цена будет неверной. Нужно добавить обработку возможных скидок.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
В функции seoGenerate $data_old = $data; <- Не понял, зачем, убрал. if ($this->config->get('exchange1c_seo_product_mode') != 'disable') $update = $this->seoGenerateProduct($data['product_id'], $data); if (!$update) continue; // Сравнение $no_update = array('sku','model','manufacturer_id'); $update_fields = $this->compareArraysData($data_old, $data, $no_update); <- Так не работает // Если есть что обновлять if ($update_fields) { $sql_set = $this->prepareQuery($update_fields, 'set'); $this->query("UPDATE `" . DB_PREFIX . "product` SET " . $sql_set . ", `date_modified` = '" . $now . "' WHERE `product_id` = " . (int)$data['product_id']); } // Сравнение $update_fields = $this->compareArraysData($data_old, $data, $no_update_description); <- Так не работает Так работает правильно: $update_fields = $this->compareArraysData($update, $data, $no_update); // Если есть что обновлять if ($update_fields) { $sql_set = $this->prepareQuery($update_fields, 'set'); $this->query("UPDATE `" . DB_PREFIX . "product` SET " . $sql_set . ", `date_modified` = '" . $now . "' WHERE `product_id` = " . (int)$data['product_id']); } // Сравнение $update_fields = $this->compareArraysData($update, $data, $no_update_description); Там же чуть дальше при работе с категориями: $update_fields = $this->compareArraysData($data_old, $data, $no_update_description); Но это не может работать, т.к. функция private function compareArraysData(&$data_new, $data_old, $ignore_fields = array(), $merge = true) принимает значения в порядке "новое, старое", а не наоборот. Так работает: $update_fields = $this->compareArraysData($data, $data_old, $no_update_description);- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
// Определение дополнительных полей $this->TAB_FIELDS = $this->config->get('exchange1c_table_fields'); происходит только при выгрузке в функции importFile. Соответственно, любое обращение к TAB_FIELDS из других функций при ручном формировании SEO приводит к получению пустого массива. Соответственно, при использовании TAB_FIELDS, его нужно получать. private function seoGenerateProduct($product_id, $data) { $result = array(); // Определение дополнительных полей $this->TAB_FIELDS = $this->config->get('exchange1c_table_fields');- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Функция seoGenerate, // Категории ... if ($query->num_rows) { foreach ($query->rows as $data) { $result['category']++; $data_old = $data; <- ОТСУТСТВОВАЛО if ($this->config->get('exchange1c_seo_category_mode') != 'disable') $this->seoGenerateCategory($data['category_id'], $data); // Сравнение $update_fields = $this->compareArraysData($data_old, $data, $no_update_description); Из-за этого происходило необъяснимое присвоение некоторым категориям имени одного из товаров при ручном формировании seo.- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Функция seoGenerateCategory: if ($this->config->get('exchange1c_seo_product_'.$field) == 'template') { Вероятно, должно быть: if ($this->config->get('exchange1c_seo_category_'.$field) == 'template') {- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
"Сформировать SEO" не обновляет seo-поля, хотя показывает количество обработанных товаров и категорий.- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Наверное правильнее было бы вставить отключение пустых категорий в функцию importFile.- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Решение. Найти в /admin/model/extension/exchange1c.php // После загрузки каталога проверим на пустые папки и отключим их Вырезать: // После загрузки каталога проверим на пустые папки и отключим их if ($this->config->get('exchange1c_category_empty_disable') == 1) { $count_disable = $this->disableCategoriesEmpty(); $this->log("Отключено пустых категорий: " . $count_disable); } Найти там же: $this->logStat('offers'); Вставить вырезанное перед найденным. Пояснение. Отключение пустых категорий после выгрузки товаров бессмысленно, т.к. они сразу же включаются логикой обратно. Отключать пустые категории нужно после выгрузки предложений.- 5 128 ответов
-
- 2
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
del- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
К сожалению, теперь не отключаются категории, в которых отключены все товары.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Итак, господа. В новой версии 1.6.4.7 (да, я скачал ещё раз) отсутствует работа с настройкой product_disable_if_quantity_zero, т.е. настройка "Не показывать товар с нулевым остатком" в админке есть, но что вы там поставите - без разницы. Что интересно, в версии 1.6.4.4b15 настройка обрабатывается в коде вполне логично и успешно: Соответственно, добавил в /admin/model/extension/exchange1c.php: Честно не понимаю, почему все молчат - то ли сидят на старых версиях, то ли у меня одного лыжи не ехали, потому что ЛЫЖ НЕ БЫЛО.- 5 128 ответов
-
- 1
-
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
exchange1c Модуль Модуль обмена для opencart v2.3 по стандарту CommerceML [Поддержка]
herminator ответил в теме пользователя Kirillove в Модули обмена данными
Граждане-товарищи, Opencart.cms 3.0.2.0 (rs.4) + Обмен данными с 1C v8.x (Tesla-Chita) 1.6.4.7, не срабатывают опции "Не показывать товар с нулевым остатком" и "Не показывать товар с нулевой ценой" ни в каких видах и вариантах. Есть решение? К автору модуля ОГРОМНАЯ просьба убрать отрицания отрицания типа "Не изменять описания товара: Да Нет" и "Не изменять категории товара: Да Нет". Голова от них кругом... Соответственно придётся менять и данет местами... Мало надежды, что автор найдёт на это время, но она теплится... Присоединяюсь.- 5 128 ответов
-
- обмен данными
- ocmod
-
(и ещё 1)
Теги:
-
Управление доступом - визуальное отображение названия контроллера
herminator оставил отзыв к файл пользователя chukcha в Прочее
-
[Поддержка] Yandex Sitemap opencart 3
herminator ответил в теме пользователя olaff в SEO, карта сайта, оптимизация
Да, именно так, заменил yandex_sitemap_status на feed_yandex_sitemap_status в контроллере и представлении админки. Update : Модуль внезапно заработал. Дико извиняюсь за отнятое время.- 23 ответа
-
- карта сайта
- yandex
-
(и ещё 1)
Теги:
-
[Поддержка] Yandex Sitemap opencart 3
herminator ответил в теме пользователя olaff в SEO, карта сайта, оптимизация
Ну "отключено", допустим, заборол по информации от @chukcha и аналогии с кодом базового модуля google_sitemap. Но сайтмап не создаётся, пусто по ссылке у меня почему-то. До исправлений тоже не работало. Файлы переносил как все скопом, так и по одному. Всё делал по инструкции, про права, естественно, не забыл...- 23 ответа
-
- карта сайта
- yandex
-
(и ещё 1)
Теги:
-
Ваша корзина пуста в пустых категориях и разделах.
herminator ответил в теме пользователя evildance в Opencart 3.x: Отчёты об ошибках
С Вашего позволения, так ocmod можно написать? Или моветон? <file path="system/config/catalog.php"> <operation> <search><![CDATA[ 'controller/*/after' => array( ]]></search> <add position="replace" offset="2"><![CDATA[ ]]></add> </operation> </file> <file path="system/config/catalog.php"> <operation> <search><![CDATA['event/debug/after']]></search> <add position="before"><![CDATA[ 0 => 'event/language/after', 1 => ]]></add> </operation> </file>