Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

freedom

Users
  
  • Posts

    87
  • Joined

  • Last visited

1 Follower

Information

  • Gender
    Не определился

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

freedom's Achievements

Enthusiast

Enthusiast (6/14)

  • Conversation Starter
  • First Post
  • Collaborator
  • Week One Done
  • One Month Later

Recent Badges

3

Reputation

  1. код у модуля стремный, несмотря на то что у самого opencart он тоже стремный и не выдерживающий вообще ни какой критики, то данный модуль вообще жесть. о комментариях вообще молчу, не нашел ни одного коммента в коде.
  2. Также неплохо было бы сделать возможность глобально присваивать параметр "необходима доставка"
  3. спасибо за модуль, только не хватает функции "добавить товар" , приходиться заходить в стандартную версию редактирования... не удобно
  4. заметил одну не хорошую особенность, при повторной загрузке каталога ни чего кроме цены не обновляется, что не совсем правильно, потому что я мог например добавить еще картинок к товару или изменить заголовок
  5. очень нехватает функции перемещения товаров из одной категории в другую
  6. идентификация идет по GUID , это уникальный идентификатор, чтобы не затирались заголовки то это нужно править UPDATE запрос в модуле
  7. я наверно ввел вас в заблуждение, я хотел на самом деле написать название таблицы не product_to_1c_atribute , а attribute_to_1c , ведь когда мы выгружаем из 1С то доп. свойства (атрибуты в опенкарт) мы должны сначала создать , т.е. сделать соответствующие записи в таблицы attribute_.... и опять вернусь к тому зачем нужна таблица attribute_to_1c , например у нас изменилось наименование доп.свойства в 1С (именно наименование, а не его значение для товара) , то нам нужно это наименование обновить в таблицах attribute_.... , а как это сделать если у нас ни где не сопоставлено ID атрибута в опенкарт = Ид доп. свойства 1С надеюсь теперь более понятно изложил
  8. тогда давайте я вас просвещу :) и как в логике это должно работать 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
  9. атрибуты = дополнительные свойства товара (сейчас в качестве доп. свойств выгружаются только Производитель и еще что то)
  10. да я собственно ни чего нового не придумываю, просто смотрю структуру битрикса и hostcms, там ключи атрибутов пишутся в таблицу подобную таблице product_to_1c , в любом случае чтобы нам записывать атрибуты, то нам нужно куда то писать уникальные идентификаторы которые экспортируются из 1С по которым и сопоставлять в дальнейшем атрибуты.А вот опции я бы загружал только если учет в 1С ведется по характеристикам
  11. есть еще небольшой баг, если удалить товар который ранее был вугружен из 1С , то запись из таблицы product_to_1c не удаляется, думаю решить это можно либо правкой модели ядра или можно через vqmod сделать думаю также следовало бы добавить сразу в инсталлятор таблицу product_to_1c_atribute так сказать задел на будущее :)
  12. как видно http://oc15-1c.sitehosting.com.ua/index.php?route=product/product&path=1_2_3&product_id=1 у вас тоже не записывается в БД путь для доп изображения. Я так понял тут проблема именно в записи пути в БД , т.к. сами файлы доп. изображений выгружаются и присутствуют в каталоге /image/import_files
  13. уж и не великая бага, исправляется за 1 секунду, идем в /admin/model/tool/exchange1c.php 404 строка ищем там ? $data['product_description'][1]['name'] : 'Имя не задано'и заменяем на ? htmlspecialchars($data['product_description'][1]['name'],ENT_QUOTES, 'UTF-8') : 'Имя не задано'
  14. по поводу кавычек понял в чем дело , товар в БД попадает с именем Телевизор LED Hyundai 22" H-LED22V5 Black Full HD RUS а должен попадать Телевизор LED Hyundai 22" H-LED22V5 Black Full HD RUS т.е. не заменяются сущьности
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.