Valerik Опубликовано: 18 октября 2022 Опубликовано: 18 октября 2022 Как я вижу ситуацию (пролог): В моей версии 1С нет возможности загружать больше 1-й картинки для товара. Решил загружать дополнительные картинки из админки опенкарт и тут началась головная боль. В файле import.xml есть только одна картинка, которая модулем "neoseo обмен с 1С" передается в $data['image'] Остальные картинки, если бы они были в файле import.xml (мною вручную добавлено и проверено), попадают в переменную $data['product_image'] Суть проблемы, как я ее вижу: В момент импорта, модуль "neoseo обмен с 1С" запускает функцию admin/model/catalog/editProduct($product_id, $data), где в массив $data['product_image'] ничего не отдает, так как изображение для товара в файле import.xml одно единственное. А внутри функции editProduct в любом случае происходит операция $this->db->query("DELETE FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "'"); перед добавлением новых изображений. Проблема: Вне зависимости от выбранной опции "Обновлять только основное изображение" (Вкл. или Выкл.) в настройках модуля в админке опенкарта, дополнительные изображения, добавленные из админки, удаляются при выгрузке товаров из 1С. Как я вижу решение: Если бы я мог по какому то параметру внутри функции editProduct определить что происходит обмен с 1С, то дописал бы if и по нему отключал бы DELETE FROM product_image. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Valerik Опубликовано: 24 октября 2022 Опубликовано: 24 октября 2022 Дополнение: Удалось выявить файл вашего модуля, который бесстыдно удаляет изображения в таблице product_image -_- admin/model/tool/neoseo_exchange1c.php(6670): DB->query('DELETE FROM oc_... P.S. Вот эта функция еще фигурирует - ModelToolNeoSeoExchange1c->updateImages() Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Valerik Опубликовано: 14 декабря 2022 Опубликовано: 14 декабря 2022 На правах бесплатного решения проблемы модуля оставляю здесь ссылку на сайт компании Eklimat, которая специализируется по комплексным поставкам оборудования и материалов для монтажа систем вентиляции и кондиционирования и использует модуль "Обмен OpenCart с 1С:Предприятие". Пролог: Ситуация в стране сложная, но 2 месяца ожидания, хотя-бы того что кто-то подскажет, где начать решение - это слишком. =( Решение данной проблемы (видел на форуме как минимум 2 обращение с похожей проблемой): 1. Заходим в PhpMyAdmin (или аналог управления базой донных) и создаем копию таблицы [ваш префикс]_product_image (детально описывать не буду, так как если не понятно это, то лучше ничего не трогать и заказать платную поддержку); 2. Названием новой таблицы (например: oc_product_image_2) нужно заменить старую в файлах: admin\model\catalog\product.php (INSERT INTO " . DB_PREFIX . "product_image) - встречается дважды admin\model\catalog\product.php (DELETE FROM " . DB_PREFIX . "product_image)- встречается дважды admin\model\catalog\product.php (SELECT * FROM " . DB_PREFIX . "product_image) catalog\model\catalog\product.php (SELECT * FROM " . DB_PREFIX . "product_image) 3. В административной панели вашего магазина сначала очистить и затем обновить модификаторы (Расширения->Модификаторы); Если возникнут сложности в исполнении, пишите - постараюсь ответить. 😉 Епилог: В закодированном модуле используется своя функция которая удаляет дополнительные изображения перед загрузкой новых из 1С. Всего-то нужно дописать проверку на наличие дополнительных изображений перед выгрузкой и удалением старых. P.S. У меня в модуле NeoSeo во вкладке "Товары" не работал пункт "Обновлять только основное изображение: Вкл/Выкл". Возможно это только у меня. 0_0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.