Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Обмен данными OpenCart 2.x и 1С по стандарту CommerceML


Recommended Posts

Ссылка на модуль

 

ВНИМАНИЕ! данный модуль находится в стадии разработки, используйте его на свой страх и риск.

Данный модуль предназначен для обмена с сайтом opencart, ocstore, ocshop версий 2.x в формате CommerceML версий 2.04 и выше.

Возможности:

  • загрузка товаров
  • загрузка картинок
  • загрузка производителей из поля "Изготовитель" или из свойства товара "Производитель"
  • загрузка остатков общих в таблицу product и по складам в таблицу product_quantity
  • загрузка цены без характеристик в таблицу product и product_discount, а с характеристиками в таблицу product_price
  • загрузка складов, добавлена таблица warehouse
  • загрузка свойств товара, хранятся в таблице attribute
  • загрузка характеристик (в разработке). выгружаются на сайт но в карточке товара не отображаются.
  • подробный лог
  • выгрузка заказов
  • отправка письма при смене статуса заказа (не проверено)
Змінено користувачем Kirillove
Надіслати
Поділитися на інших сайтах

Наконец-то модуль "повзрослел" и обрел отдельную тему!

Осталось придумать каким образом "активистам" помогать в разработке, т.к. некоторые модификации данного модуля делаются для себя но могли бы оказаться полезным и другим. Кто-то мог бы хелпы дописать, кто-то переводы. Коллективный разум всяко лучше :)

Надіслати
Поділитися на інших сайтах


Наконец-то модуль "повзрослел" и обрел отдельную тему!

Осталось придумать каким образом "активистам" помогать в разработке, т.к. некоторые модификации данного модуля делаются для себя но могли бы оказаться полезным и другим. Кто-то мог бы хелпы дописать, кто-то переводы. Коллективный разум всяко лучше :)

Вот сегодня я целый день сидел над кодом дорабатывая в разных местах. Каждый день сижу его и делаю.

Так что пишите что у кого ошибки или может кто помочь решит. Надо модификатор к шаблону сделать /catalog/view/theme/.../template/product/product.tpl

Пример недоделанного шаблона product.tpl можно взять на гитхабе, характеристики в шаблоне доступны в многомерном массиве $features, там есть и остаток, цена

А вот если у товара несколько характеристик, то в каталоге товара (/catalog/view/theme/.../template/product/category.tpl) цену показывать первой характеристики?

Надіслати
Поділитися на інших сайтах

Исправлены ошибки:

  • 2016-05-04 [+] Доработана функция deleteLinkFeature()
  • 2016-05-04 [!] Исправлена ошибка money_format() замен на $this->currency->format()
  • 2016-05-04 [!] Исправлена ошибка Error: Column 'comment' cannot be null<br />Error No: 1048<br />INSERT INTO `oc_unit` (unit_id, name, number_code, rus_name1, eng_name1, rus_name2, eng_name2, unit_group_id, unit_type_id, visible, comment) VALUES(3, 'Дециметр', '005', 'дм', 'dm', 'ДМ', 'DMT', 1, 1, 1, NULL)
Надіслати
Поділитися на інших сайтах

Предлагаю добавить в список "системных" свойств 1С еще две позиции - минимальный заказ (минимальное количество), и что-то вроде "кратность".

Первое будет записываться в соответствующее поле в товаре опенкарта (минимальный заказ кажется называется), а второе на будущее, т.к. иногда требуется продавать товар кратно какому-то числу - к примеру кабель-канал (короб для проводов) продается отрезками по 2м, а плодить кучу единиц измерения с коэффициентами не хочется, тем более что по документам он отпускается всегда в погонных метрах. Естественно в самом опенкарте пока нет подобного функционала.

Надіслати
Поділитися на інших сайтах


Исправил две ошибки:

2016-05-04 [!] Исправлена ошибка в функции queryOrders() при обращении к константе VERSION, т.к. эта константа не доступна при вызове данной процедуры.
2016-05-04 [!] Исправлена ошибка: PHP Notice:  Error: Unknown column 'name' in 'field list'<br />Error No: 1054<br />INSERT INTO `oc_manufacturer_description` SET manufacturer_id = '24', language_id = '1', description = 'Производитель THERMEX', name = 'THERMEX', в функции updateManufacturer()
 
Файл скачивать либо с форума, либо с гитхаба.
Тот что в шапке - не обновляется.
Змінено користувачем Kirillove
Надіслати
Поділитися на інших сайтах

2016-05-05 [!] Исправлена функция applyWatermark(), номер версии CMS теперь получаем так: $this->config->get('exchange1c_CMS_version')

2016-05-05 [+] Изменены элементы в разделе обмен товарами, обновление полей заменено на "Загружать при обмене", не нашел причины по которой старая не работала в OpenCart 2.0.3.1. По этой же причине не будет в этой версии загружать цены, завтра разберусь.

2016-05-05 [+] Добавлена в регистр значение exchange1c_CMS_version, которая используется в контроллере во время обмена с 1С

2016-05-04 [!] Исправлена ошибка PHP Notice:  Use of undefined constant VERSION - assumed 'VERSION' in /var/www/vhosts/ptr-print.ru/ptr-print.ru/httpdocs/subdomains/ocshop21014/admin/model/tool/exchange1c.php on line 1153, в функции applyWatermark(). Константа VERSION тут недоступна.

 

Файл обновлен:opencart2-exchange1c_1.6.2.b7.ocmod.zip

Надіслати
Поділитися на інших сайтах

Вот сегодня я целый день сидел над кодом дорабатывая в разных местах. Каждый день сижу его и делаю.

Так что пишите что у кого ошибки или может кто помочь решит. Надо модификатор к шаблону сделать /catalog/view/theme/.../template/product/product.tpl

Пример недоделанного шаблона product.tpl можно взять на гитхабе, характеристики в шаблоне доступны в многомерном массиве $features, там есть и остаток, цена

А вот если у товара несколько характеристик, то в каталоге товара (/catalog/view/theme/.../template/product/category.tpl) цену показывать первой характеристики?

Если цены опций одинаковые тогда можно показывать и первой характеристики,  а вот если разные... Тогда я думаю нужно брать минимальную и ставить в карточку товара. А потом уже от цены каждой опции отнимать цену минимальной опции и остаток ставить на каждую опцию. Тогда если будет + к цене, то в сумме будет правильная цена на опцию. Что касается остатков товара, то скорее всего нужно суммировать по всем опциям и ставить на товар.

Змінено користувачем ingenerks
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Если цены опций одинаковые тогда можно показывать и первой характеристики,  а вот если разные... Тогда я думаю нужно брать минимальную и ставить в карточку товара. А потом уже от цены каждой опции отнимать цену минимальной опции и остаток ставить на каждую опцию. Тогда если будет + к цене, то в сумме будет правильная цена на опцию. Что касается остатков товара, то скорее всего нужно суммировать по всем опциям и ставить на товар.

Такая схема будет верно работать только для одного вида цен, например, если оптовик зайдет, то у него тоже будет разница между опциями такая же как у цены для розницы. Тут видимо другая схема нужна, сейчас хотел так сделать, но наткнулся на такую неприятную вещь.

Видимо кардинально, как я думал изначально надо менять подход, я делал как в 1С все реализовано, чтобы была максимальная совместимость, но осталось только в каталоге это отобразить, а данные уже в правильном виде хранятся в базе.

Надіслати
Поділитися на інших сайтах

Виталий, заметил что в последней версии в базе появились таблицы с единицами измерения, но ни в одной из таблиц не нашел связи товаров и единиц измерения, я так понимаю что это еще просто не реализовано или я просто не туда смотрел? Или у меня оно просто некорректно выгружается?

Надіслати
Поділитися на інших сайтах


Виталий, заметил что в последней версии в базе появились таблицы с единицами измерения, но ни в одной из таблиц не нашел связи товаров и единиц измерения, я так понимаю что это еще просто не реализовано или я просто не туда смотрел? Или у меня оно просто некорректно выгружается?

Правильно заметили, как доделаю характеристики буду делать загрузку в нескольких единицах измерения товаров. Пока только в проекте.

Надіслати
Поділитися на інших сайтах

Здравствуйте!

Использую УНФ 1.6.3.11 + OPENCART.CMS 2.1.0.1.10

 

1. В категориях не заполняются Мета-теги, причем URL заполняется.

2. По прежнему доступны файлы при переходе по ссылке вашсайт/system/storage/cache/exchange1c/import.xml, как это исправить?

3. Заметил такую особенность, если из 1С выгружаешь товары при этом нет остатка ни по одному товару тогда Мета-теги не заполняются вообще нигде.

Надіслати
Поділитися на інших сайтах


Доброго дня! Использую опции товара(размер-цвет) при импорте на сайт данные опции добавляются к стоимости товара, кроме того в админке товар не вычитается со склада, а в моем понимании опции только для того чтобы покупатель при покупке выбрал желаемые атрибуты товара, возможно я что-то делаю не так, но инструкции как таковой нет. Как быть:?

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

День добрый. А как можно поцепить картинки которые уже были закинуты на сайт по FTP?

Пока никак, но я уже думал над этим, чтобы картинки цеплялись при отображении товаров по определенному полю, id, sku, model ну илиндругие поля, а не хранить в 1С, что ускорит обмен.

Отправлено с моего Blade S6 Lite через Tapatalk

Змінено користувачем Kirillove
Надіслати
Поділитися на інших сайтах

А в настоящий момент как работает? Сначала модуль получает файлы картинок. Потом он их куда-то переносит?

Может их получится один раз в это местечко скинуть по ФТП, а потом уже только xml-ки слать?

У меня почти 5000 товаров. Все с картинками. Каждый день такую выгрузку с картинками нереально сделать.

Надіслати
Поділитися на інших сайтах


А в настоящий момент как работает? Сначала модуль получает файлы картинок. Потом он их куда-то переносит?

Может их получится один раз в это местечко скинуть по ФТП, а потом уже только xml-ки слать?

У меня почти 5000 товаров. Все с картинками. Каждый день такую выгрузку с картинками нереально сделать.

А у Вас каждый день происходят изменения с со всеми 5000 товарами? Включите в 1С выгружать только изменения, и обмен каждые 5 минут, и будут обмен очень маленький и быстрый. Но если во время такого обмена произойдет ошибка, то следующий обмен 1С будет снова выгружать те товары. Например, только изменения, выражаться все 5000 товаров, Если все удачно, то следующий обмен должен быть пустой, Может еще смотреть что выгружается, Через зарегистрированые изменения или монитор обмена. Если будет изменен документ, то на сайт выгрузятся только те товары что в документе.

Сначала 1С закачивает картинки, затем все xml, затем выполняет все файлы import, затем все файлы offers, после всего этого загружает заказы, а после отправляет заказы на сайт если были изменения.

Отправлено с моего Blade S6 Lite через Tapatalk

Змінено користувачем Kirillove
Надіслати
Поділитися на інших сайтах

Все бы было хорошо, еслиб 1С у меня была 8ка. Но у меня 7ка. Выгрузку файлов я сам написал. Планов обмена с регистрацией в 7ке нет. Поэтому проблематично выгружать только изменения. 

В настоящий момент картинки загружаю через фтп (только те что нет на сайте). А товары через импорт екселя. Все ок, но в модуле загрузки нет варианта автоматической загрузки. А каждый день через админку делать загрузку товаров не вариант.

Для другого сайта на UMI.CMS я сделал выгрузку в формате КоммерсХМЛ. На той платформе есть вариант закинуть картинки через фтп и потом уже только хмл-ки грузить. Вот думал что тут тоже прокатит :(

Ваш модуль когда картинки качает, он же наверно их кудато в кеш кидает? Потом уже после получения файлов с товарами переименовывает их и кладет в нужные папки. Так? После этого кеш чистится? Если нет то может так попробовать? По фтп залить все в кеш и потом уже модуль возьмет что ему надо. Главное правильно путь к картинке прописать в файле товаров. Пройдет такой вариант?

Надіслати
Поділитися на інших сайтах


Все бы было хорошо, еслиб 1С у меня была 8ка. Но у меня 7ка. Выгрузку файлов я сам написал. Планов обмена с регистрацией в 7ке нет. Поэтому проблематично выгружать только изменения.

В настоящий момент картинки загружаю через фтп (только те что нет на сайте). А товары через импорт екселя. Все ок, но в модуле загрузки нет варианта автоматической загрузки. А каждый день через админку делать загрузку товаров не вариант.

Для другого сайта на UMI.CMS я сделал выгрузку в формате КоммерсХМЛ. На той платформе есть вариант закинуть картинки через фтп и потом уже только хмл-ки грузить. Вот думал что тут тоже прокатит :(

Ваш модуль когда картинки качает, он же наверно их кудато в кеш кидает? Потом уже после получения файлов с товарами переименовывает их и кладет в нужные папки. Так? После этого кеш чистится? Если нет то может так попробовать? По фтп залить все в кеш и потом уже модуль возьмет что ему надо. Главное правильно путь к картинке прописать в файле товаров. Пройдет такой вариант?

В последних версиях, картинки из архива сразу распаковываются в папку /image, Если обмен происходит отдельными файлами, то через папку /cache/exchange1c проходят все картинки.

Это сделать не трудно кстати, а как модуль будет искать нужную картинку в папке image в Вашем случае? В бете 8 сделаю такое.

Отправлено с моего Blade S6 Lite через Tapatalk

Надіслати
Поділитися на інших сайтах

Во! Теперь если картинки модуль сразу скинул в /image то как он их подвязывает к товару? Берет ссылку с тега "картинка"? и создает свою ссылку уже на /image  с темже именем файла? Или он его переименовывает по какому-то алгоритму?

Или если отдельными файлами передается: то модуль потом что с файлами делает? Тоже переименовывает и удаляет из кеша?

Надіслати
Поділитися на інших сайтах


Во! Теперь если картинки модуль сразу скинул в /image то как он их подвязывает к товару? Берет ссылку с тега "картинка"? и создает свою ссылку уже на /image с темже именем файла? Или он его переименовывает по какому-то алгоритму?

Или если отдельными файлами передается: то модуль потом что с файлами делает? Тоже переименовывает и удаляет из кеша?

Ссылку на файл формирует 1С, модуль просто берет эту ссылку и вставляет в товар, мой модуль еще проверяет наличие картинки.

Отправлено с моего Blade S6 Lite через Tapatalk

Надіслати
Поділитися на інших сайтах

Ссылку на файл формирует 1С, модуль просто берет эту ссылку и вставляет в товар, мой модуль еще проверяет наличие картинки.

 

Тогда получается что я могу и сам через фтп кидать картинки? Модуль проверит что на сайте есть картинка и вставит ссылку в карточку товара?

Надіслати
Поділитися на інших сайтах


Тогда получается что я могу и сам через фтп кидать картинки? Модуль проверит что на сайте есть картинка и вставит ссылку в карточку товара?

Можете, ссылка ведь относительно папки image. Ссылка формируется из папки IMAGE + ссылка из файла xml

Отправлено с моего Blade S6 Lite через Tapatalk

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.