freedom
Пользователи-
Публикаций
87 -
Зарегистрирован
-
Посещение
Достижения freedom
-
buslikdrev подписался на freedom
-
[Поддержка] SEO CMS TOP - Блог | Новости | Отзывы | Галерея
freedom ответил в теме пользователя markimax в Блоги, новости, статьи
код у модуля стремный, несмотря на то что у самого opencart он тоже стремный и не выдерживающий вообще ни какой критики, то данный модуль вообще жесть. о комментариях вообще молчу, не нашел ни одного коммента в коде. -
Также неплохо было бы сделать возможность глобально присваивать параметр "необходима доставка"
- 4 062 ответа
-
- пакетное
- редактирование
-
(і ще 2)
Теги:
-
спасибо за модуль, только не хватает функции "добавить товар" , приходиться заходить в стандартную версию редактирования... не удобно
- 4 062 ответа
-
- пакетное
- редактирование
-
(і ще 2)
Теги:
-
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
заметил одну не хорошую особенность, при повторной загрузке каталога ни чего кроме цены не обновляется, что не совсем правильно, потому что я мог например добавить еще картинок к товару или изменить заголовок -
очень нехватает функции перемещения товаров из одной категории в другую
- 4 062 ответа
-
- пакетное
- редактирование
-
(і ще 2)
Теги:
-
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
идентификация идет по GUID , это уникальный идентификатор, чтобы не затирались заголовки то это нужно править UPDATE запрос в модуле -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
я наверно ввел вас в заблуждение, я хотел на самом деле написать название таблицы не product_to_1c_atribute , а attribute_to_1c , ведь когда мы выгружаем из 1С то доп. свойства (атрибуты в опенкарт) мы должны сначала создать , т.е. сделать соответствующие записи в таблицы attribute_.... и опять вернусь к тому зачем нужна таблица attribute_to_1c , например у нас изменилось наименование доп.свойства в 1С (именно наименование, а не его значение для товара) , то нам нужно это наименование обновить в таблицах attribute_.... , а как это сделать если у нас ни где не сопоставлено ID атрибута в опенкарт = Ид доп. свойства 1С надеюсь теперь более понятно изложил -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
тогда давайте я вас просвещу :) и как в логике это должно работать 1. Доп. свойства товаров в 1С должны записываться в атрибуты опенкарта (кроме свойств Производитель, H1 и др. системные параметры) 2. Характеристики номенклатуры 1С - это как раз дополнительные параметры товаров (в опенкарте называются Опции) которые могут иметь свои остатки по складу, свои доп. наценки и т.п.) их как раз нужно выгружать в Опции опенкарта . (но это как правило редкость, я не часто встречаю организации которые ведут складской учет по характеристикам товаров) вернемся к первому, как я вижу это в php , нарусуем сначала фнкцию: /* cпарсим все свойства и реквизиты функция выдает все свойства и реквизиты в виде массива вида $ data[<ид_товара_1с>][<назва_свойства>] = Значение свойства */ private function parseElementsAndProperties($xml){ $arrayOfProperty = array(); $result = array(); $ids_propertys = array(); // сначала найдем иди свойств в классификаторе по их названию. // Затем мы их обычно перепишет на нормальные названия if (isset($xml->Классификатор->Свойства->СвойствоНоменклатуры)){ foreach($xml->Классификатор->Свойства->СвойствоНоменклатуры as $property){ $ids_propertys[(string)$property->Ид] = (string)$property->Наименование; } } if (isset($xml->Каталог->Товары->Товар->ЗначенияРеквизитов->ЗначениеРеквизита)){ foreach($xml->Каталог->Товары->Товар as $product_el){ $product_id = (string)$product_el->Ид; foreach($product_el->ЗначенияРеквизитов->ЗначениеРеквизита as $element){ $result[$product_id][(string)$element->Наименование] = (string)$element->Значение; } } } if (isset($xml->Каталог->Товары->Товар->ЗначенияСвойств->ЗначенияСвойства)){ foreach($xml->Каталог->Товары->Товар as $product){ $product_id = (string)$product->Ид; if(isset($product->ЗначенияСвойств->ЗначенияСвойства)){ foreach($product->ЗначенияСвойств->ЗначенияСвойства as $property){ $arrayOfProperty = @json_decode(@json_encode($property),1); //Находим по ид наше значение. $result[$product_id][(string)$ids_propertys[(string)$arrayOfProperty['Ид']]] = (string)$arrayOfProperty['Значение']; } } } } return $result; } теперь нам не нужно делать кучу case , а получить можно значение вот так $PathToFile = DIR_CACHE . 'exchange1c/import.xml'; $object = simplexml_load_file($PathToFile); $properties = $this->parseElementsAndProperties($object); echo $properties[strval($data->Ид)]['Производитель']; т.е. тут можно взять весь массив этих доп. свойств (атрибуты в опенкарте) и записать, но встает вопрос о последующей синхронизации этих атрибутов при обновлении товаров, для этого нам и понадобиться вспомогательная таблица product_to_1c_atribute -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
атрибуты = дополнительные свойства товара (сейчас в качестве доп. свойств выгружаются только Производитель и еще что то) -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
да я собственно ни чего нового не придумываю, просто смотрю структуру битрикса и hostcms, там ключи атрибутов пишутся в таблицу подобную таблице product_to_1c , в любом случае чтобы нам записывать атрибуты, то нам нужно куда то писать уникальные идентификаторы которые экспортируются из 1С по которым и сопоставлять в дальнейшем атрибуты.А вот опции я бы загружал только если учет в 1С ведется по характеристикам -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
есть еще небольшой баг, если удалить товар который ранее был вугружен из 1С , то запись из таблицы product_to_1c не удаляется, думаю решить это можно либо правкой модели ядра или можно через vqmod сделать думаю также следовало бы добавить сразу в инсталлятор таблицу product_to_1c_atribute так сказать задел на будущее :) -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
как видно http://oc15-1c.sitehosting.com.ua/index.php?route=product/product&path=1_2_3&product_id=1 у вас тоже не записывается в БД путь для доп изображения. Я так понял тут проблема именно в записи пути в БД , т.к. сами файлы доп. изображений выгружаются и присутствуют в каталоге /image/import_files -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
уж и не великая бага, исправляется за 1 секунду, идем в /admin/model/tool/exchange1c.php 404 строка ищем там ? $data['product_description'][1]['name'] : 'Имя не задано'и заменяем на ? htmlspecialchars($data['product_description'][1]['name'],ENT_QUOTES, 'UTF-8') : 'Имя не задано' -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
выгрузил, но товара на сайте не вижу -
Модуль обмена с 1C v8.x для ocStore1.5.x
freedom ответил в теме пользователя wolfovich в Модули обмена данными
по поводу кавычек понял в чем дело , товар в БД попадает с именем Телевизор LED Hyundai 22" H-LED22V5 Black Full HD RUS а должен попадать Телевизор LED Hyundai 22" H-LED22V5 Black Full HD RUS т.е. не заменяются сущьности