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

Модуль обмена с 1C v8.x для ocStore1.5.x


Recommended Posts

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

Насчёт кавычек: При выгрузке кавычки и всё после них выгружается в магазин нормально. Обрезка происходит после того, как Вы открываете товар на редактирование в админке магазина. Если туда не лазить (а при нормально настроенной выгрузке из 1С это не требуется), то это и не критично. Этот баг унаследован ещё из версии оксторе 0.2.2

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


Насчёт кавычек: При выгрузке кавычки и всё после них выгружается в магазин нормально. Обрезка происходит после того, как Вы открываете товар на редактирование в админке магазина. Если туда не лазить (а при нормально настроенной выгрузке из 1С это не требуется), то это и не критично. Этот баг унаследован ещё из версии оксторе 0.2.2

уж и не великая бага, исправляется за 1 секунду, идем в /admin/model/tool/exchange1c.php 404 строка

ищем там

? $data['product_description'][1]['name'] :
            'Имя не задано'
и заменяем на

? htmlspecialchars($data['product_description'][1]['name'],ENT_QUOTES, 'UTF-8') :
            'Имя не задано'
  • +1 2
Надіслати
Поділитися на інших сайтах


уж и не великая бага, исправляется за 1 секунду, идем в /admin/model/tool/exchange1c.php 404 строка

ищем там

? $data['product_description'][1]['name'] :
			'Имя не задано'
и заменяем на

? htmlspecialchars($data['product_description'][1]['name'],ENT_QUOTES, 'UTF-8') :
			'Имя не задано'
Отлично, исправлю в модуле!
Надіслати
Поділитися на інших сайтах


Он есть, просто разделы не добавляются в основное верхнее меню

как видно http://oc15-1c.sitehosting.com.ua/index.php?route=product/product&path=1_2_3&product_id=1 у вас тоже не записывается в БД путь для доп изображения. Я так понял тут проблема именно в записи пути в БД , т.к. сами файлы доп. изображений выгружаются и присутствуют в каталоге /image/import_files
Надіслати
Поділитися на інших сайтах


Спасибо за модуль.

Все настроил работает. Возникали проблемы только с 1ской. С модулем проблем не было.

Такой вопрос появился. В дальнейшем планируется ли добавить в модуль Работу с заказами и контрагентами(заказчиками) для автоматизацией магазина.

Например:

Человек Регистрируется на сайте, после обмена с 1с он появляется в контрагентах с адресами и телефонами?

Делает Заказ, после обмена заказ появляется в 1с в разделе заказы покупателей?.

Или это придется допиливать самому, или нанимать программиста?

Готов поддерживать проект модуля донатом, ну малыми но все таки суммами денег.

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


Просто получается у меня более 2600 товаров уже с описаниями ценами фотками, а загрузить получается в 1С с сайта, я так понимаю, нельзя, может есть способ, а то получается модуль в таком случаи бесполезен :(

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


Просто получается у меня более 2600 товаров уже с описаниями ценами фотками, а загрузить получается в 1С с сайта, я так понимаю, нельзя, может есть способ, а то получается модуль в таком случаи бесполезен :(

УУУУУ, сколько всего мы хотим)) Сейчас возможности модуля ещё меньше, чем были в предыдущей версии. Модуль бесполезен наверное именно для вас. Я вот сидел и томно ждал появления этого модуля, чтобы выгрузить товары на сайт из 1С автоматически. Первый звоночек так сказать есть, далее думаю последует допилка модуля до состояния нормальной полной выгрузки данных на сайт. а уж потом можно будет говорить о том, чтобы обратно всё выгружалось. И опять же. С сайта в 1С должны выгружаться только инфа о контрагентах и заказах. Не более. Если я ошибаюсь, поправьте меня, wolfovich...

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


Вот https://opencartforum.com/files/file/231-export-import-%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2-%D0%B2-excel-151-101-ru-vqmod/

Экспортирует в таблицу XLS (Ексель)

А обработку импортирования из xls в 1с на просторах интернета найти можно кучу. Но в основном они платные

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


Новая версия 1.5.1.3-1

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

2. Добавил преобразование специальных символов в HTML сущности.

3. Закомментировал неработающий блок кода связанный с характеристиками.

Скачать версию 1.5.1.3-1

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


Просто получается у меня более 2600 товаров уже с описаниями ценами фотками, а загрузить получается в 1С с сайта, я так понимаю, нельзя, может есть способ, а то получается модуль в таком случаи бесполезен :(

Как уже ответили, единственным вариантом будет сделать экспорт товаров в xml или xls, а дальше 1С программист пишет обработку и эти данные вы импортируете в справочник Номенклатура. Если не ошибаюсь, это довольно простое задание для 1С программиста. По другому никак т.к. формат обмена данными CommerceML2 подразумевает обмен товарами 1С->Магазин и обмен заказами Магазин->1С.
Надіслати
Поділитися на інших сайтах


Не знаю даже. Можешь попробовать, потом нам расскажешь. В принципе модуль не дорогой. Но, если внимательно почитаешь описание, то будет видно, что там надо доставать xml с помощью обработки которая для 1С 7.7. В общем это не то, что надо.

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


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

думаю также следовало бы добавить сразу в инсталлятор таблицу product_to_1c_atribute так сказать задел на будущее :)

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


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

думаю также следовало бы добавить сразу в инсталлятор таблицу product_to_1c_atribute так сказать задел на будущее :)

А что нам даст product_to_1c_atribute ? Про product_to_1c я знаю... в прошлой версии так же было.. я у себя просто связь сделал между таблицами, но таки надо будет в модуле сделать проверку двойную при выгрузке (если есть в product_to_1c то проверить еще и product), тогда vqmod не нужен будет.
Надіслати
Поділитися на інших сайтах


А что нам даст product_to_1c_atribute ? Про product_to_1c я знаю... в прошлой версии так же было.. я у себя просто связь сделал между таблицами, но таки надо будет в модуле сделать проверку двойную при выгрузке (если есть в product_to_1c то проверить еще и product), тогда vqmod не нужен будет.

да я собственно ни чего нового не придумываю, просто смотрю структуру битрикса и hostcms, там ключи атрибутов пишутся в таблицу подобную таблице product_to_1c , в любом случае чтобы нам записывать атрибуты, то нам нужно куда то писать уникальные идентификаторы которые экспортируются из 1С по которым и сопоставлять в дальнейшем атрибуты.

А вот опции я бы загружал только если учет в 1С ведется по характеристикам

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


Тут можно конкретно запутаться т.к. в 1С это называется свойства, в магазине вообще я их запихиваю куда можно (Производитель, СЕО ссылка, теги и т.д.), дальше в 1.5 добавили Атрибуты в довесок к Опциям, которые показываются в закладке Specification (в оригинальной версии).

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


тогда давайте я вас просвещу :) и как в логике это должно работать

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

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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