Мы используем cookies для улучшения работы сайта и предоставления наших услуг. Продолжая использовать наш веб-сайт вы подтверждаете согласие с Политикой Конфиденциальности

Я согласен
Ваш подарок уже заждался :)
* при покупке от 1 500 грн.
Россия
8 800 551 94 15 все звонки бесплатно

Как выполнить интеграцию для Интернет-магазина {SEO-Mагазин}, OpenCart 2.х, 3.х, ocStore, если у вас нет 1С:Предприятие

При работе с модулем “Обмен данными” синхронизация выполняется по протоколу CommerceML. В обмене участвует 3 типа файлов:

1. Файл с номенклатурой, называется import.xml

Кратко разберем его формат, а точнее ту часть, что существенна:

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.07" ДатаФормирования="2016-09-03T15:27:28">
    <Классификатор>
        ...
        <Группы>
            <Группа>
                <Ид>f93e1128-c83a-11e2-8026-0015e9b8c48d</Ид>
                <Наименование>Тара</Наименование>
            </Группа>
        ...
            <Группа>
                <Ид>bd72d90d-55bc-11d9-848a-00112f43529a</Ид>
                <Наименование>Обувь</Наименование>
                <Группы>
                    <Группа>
                        <Ид>bd72d90e-55bc-11d9-848a-00112f43529a</Ид>
                        <Наименование>Женская обувь</Наименование>
                    </Группа>
                    <Группа>
                        <Ид>dee6e186-55bc-11d9-848a-00112f43529a</Ид>
                        <Наименование>Мужская обувь</Наименование>
                    </Группа>
                    <Группа>
                        <Ид>dee6e1cf-55bc-11d9-848a-00112f43529a</Ид>
                        <Наименование>Кроссовки</Наименование>
                    </Группа>
                </Группы>
            </Группа>
        ...
        </Группы>
        ...
    </Классификатор>
    <Каталог>
        ...
        <Товары>
            <Товар>
                <Ид>bce2512c-c904-11e2-8026-0015e9b8c48d</Ид>
                <Артикул>Х-67891</Артикул>
                <Наименование>Х-67891 Стинол 205 Завод бытовой техники</Наименование>
                ...
                <Группы>
                    <Ид>cbcf4929-55bc-11d9-848a-00112f43529a</Ид>
                </Группы>
                <Описание>Тут идет полное описание товара</Описание>
                <Изготовитель>
                    <Ид>061e1ea5-e4e9-11e0-af8f-0015e9b8c48d</Ид>
                    <Наименование>Завод бытовой техники</Наименование>
                </Изготовитель>
                <ЗначенияРеквизитов>
                    <ЗначениеРеквизита>
                        <Наименование>Материал</Наименование>
                        <Значение>Ткань</Значение>
                    </ЗначениеРеквизита>
                </ЗначенияРеквизитов>
            </Товар>
        </Товары>
    </Каталог>
</КоммерческаяИнформация>

Итак, в секции Классификатор описывается иерархический справочник категорий, которые желательно указывать, если нужно обеспечить клиентам возможность соответствия иерархии категорий в вашей системе и в магазине.

У категории есть два атрибута - Идентификатор и Наименование

<Ид>bd72d90d-55bc-11d9-848a-00112f43529a</Ид>
<Наименование>Обувь</Наименование>

Идентификатор не обязан быть именно GUID, вы можете указать его в любом формате. Например, у системы Класс365 это обычное пятизначное число.

Далее этот идентификатор фигурирует в секции Группы, внутри секции Товар.

<Группы><Ид>cbcf4929-55bc-11d9-848a-00112f43529a</Ид></Группы>

Если система поддерживает указание нескольких групп на один товар, то можете указать несколько:

<Группы>
            <Ид>cbcf4929-55bc-11d9-848a-00112f43529a</Ид>
            <Ид>cbcf4928-55bc-11d9-848a-00112f43529a</Ид>
            <Ид>cbcf4927-55bc-11d9-848a-00112f43529a</Ид>
            <Ид>cbcf4926-55bc-11d9-848a-00112f43529a</Ид>
</Группы>

Изготовитель - это производитель товара. Если он у Вас в системе используется, то можете выгружать именно так. Если нет - просто не создавайте эту секцию.

ЗначенияРеквизитов - это секция с дополнительными характеристиками товара, которые не яляются его модификациями. Например, страна производства, материал изготовления и т.д.

2. Файл с ценами, называется offers.xml

<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация xmlns="urn:1C.ru:commerceml_2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсияСхемы="2.07" ДатаФормирования="2016-09-03T15:27:28">
    <ПакетПредложений>
...
        <ТипыЦен>
            <ТипЦены>
                <Ид>8bf9d3c3-bd52-11e5-b2fc-000c290e6993</Ид>
                <Наименование>интернет магазин</Наименование>
                <Валюта>RUB</Валюта>
                <Налог>
                    <Наименование>НДС</Наименование>
                    <УчтеноВСумме>false</УчтеноВСумме>
                    <Акциз>false</Акциз>
                </Налог>
            </ТипЦены>
        </ТипыЦен>
...
        <Склады>
            <Склад>
                <Ид>5cba3795-f386-11e2-802f-0015e9b8c48d</Ид>
                <Наименование>Склад 1</Наименование>
...
            </Склад>
            <Склад>
                <Ид>5cba3795-f386-11e2-802f-0015e9b8c48d</Ид>
                <Наименование>Склад 2</Наименование>
...
            </Склад>
        <Склады>


        <Предложения>
            <Предложение>
                <Ид>f93e112a-c83a-11e2-8026-0015e9b8c48d</Ид>
                <Наименование>Бутылка </Наименование>
...
                <Цены>
                    <Цена>
                        <Представление> 0 RUB за PCE</Представление>
                        <ИдТипаЦены>8bf9d3c3-bd52-11e5-b2fc-000c290e6993</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>0</ЦенаЗаЕдиницу>
                        <Валюта>RUB</Валюта>
                        <Единица>PCE</Единица>
                        <Коэффициент>1</Коэффициент>
                    </Цена>
                </Цены>
                <Количество>1000</Количество>
                <Склад ИдСклада="5cba3795-f386-11e2-802f-0015e9b8c48d" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="1418c670-7307-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="a4212b46-730a-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
            </Предложение>


            <Предложение>
                <Ид>bd72d910-55bc-11d9-848a-00112f43529a#cee2c9d6-328c-11e0-aef8-0015e9b8c48d</Ид>
                <Наименование>Женские ботфорты (40, Коричневый, 6, натуральная кожа)</Наименование>


                <ХарактеристикиТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Размер</Наименование>
                        <Значение>40</Значение>
                    </ХарактеристикаТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Полнота</Наименование>
                        <Значение>6</Значение>
                    </ХарактеристикаТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Тип кожи</Наименование>
                        <Значение>натуральная кожа</Значение>
                    </ХарактеристикаТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Цвет</Наименование>
                        <Значение>Коричневый</Значение>
                    </ХарактеристикаТовара>
                </ХарактеристикиТовара>
                <Цены>
                    <Цена>
                        <ИдТипаЦены>8bf9d3c3-bd52-11e5-b2fc-000c290e6993</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>0</ЦенаЗаЕдиницу>
                    </Цена>
                </Цены>
                <Количество>0</Количество>
                <Склад ИдСклада="5cba3795-f386-11e2-802f-0015e9b8c48d" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="08305acc-7303-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="1418c670-7307-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="a4212b46-730a-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
            </Предложение>
            <Предложение>
                <Ид>bd72d910-55bc-11d9-848a-00112f43529a#5720e9d1-e80b-11e0-af90-0015e9b8c48d</Ид>
                <Наименование>Женские ботфорты (45, Синий, 8, натуральная кожа)</Наименование>
                <ХарактеристикиТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Размер</Наименование>
                        <Значение>45</Значение>
                    </ХарактеристикаТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Полнота</Наименование>
                        <Значение>8</Значение>
                    </ХарактеристикаТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Тип кожи</Наименование>
                        <Значение>натуральная кожа</Значение>
                    </ХарактеристикаТовара>
                    <ХарактеристикаТовара>
                        <Наименование>Цвет</Наименование>
                        <Значение>Синий</Значение>
                    </ХарактеристикаТовара>
                </ХарактеристикиТовара>
                <Цены>
                    <Цена>
                        <ИдТипаЦены>8bf9d3c3-bd52-11e5-b2fc-000c290e6993</ИдТипаЦены>
                        <ЦенаЗаЕдиницу>0</ЦенаЗаЕдиницу>
                    </Цена>
                </Цены>
                <Количество>0</Количество>
                <Склад ИдСклада="5cba3795-f386-11e2-802f-0015e9b8c48d" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="cea2d2ce-f388-11e2-802f-0015e9b8c48d" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="6f87e83f-722c-11df-b336-0011955cba6b" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="08305acc-7303-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="1418c670-7307-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
                <Склад ИдСклада="a4212b46-730a-11df-b338-0011955cba6b" КоличествоНаСкладе="0"/>
            </Предложение>
        </Предложения>
    </ПакетПредложений>
</КоммерческаяИнформация>

Тут представлено 2 вида товаров - штучные и с опциями.

Если товар штучный, то по нему идет всего одна секция с его ценой и количеством.

Если у товара есть опции, то на каждую комбинацию опций идет отдельная секция.

К примеру, есть майки с цветами синий\красный, и размерами S,M,L. Должно быть 6 позиций в выгрузке:

1. S\синий

2. S\красный

3. M\синий

4. M\красный

5. L\синий

6. L\красный

В случае опционного товара, идентификатор товара указывается с учетом идентификатора характеристики, через решетку.

Выглядит это так:

bd72d910-55bc-11d9-848a-00112f43529a#5720e9d1-e80b-11e0-af90-0015e9b8c48d
bd72d910-55bc-11d9-848a-00112f43529a#5720e9d1-e80b-11e0-af90-0015e9b8c482
bd72d910-55bc-11d9-848a-00112f43529a#5720e9d1-e80b-11e0-af90-0015e9b8c483

Вы вполне можете использовать свою систему, главное чтобы решетки были. Например:

11111#00001
11111#00002
11111#00003
11111#00004
11111#00005

До решетки идет идентификатор товара. После решетки - идентификатор характеристики товара.

Если на каждом товаре всего одна цена и нет оптовой или скидочной, то просто выгружаете один тип цен. Если же в вашей системе есть возможность установить разные типы цен на товар, то выгружаете все.

По складам, если есть информация, то лучше выгружать именно таким образом, не забывая указать общее количество в секции "Количество". Если информации по складам нет, то эту часть описания товара можно просто пропустить.

Как все это передать на сайт? Продемонстрируем на примере консольных http запросов:

curl -u login:password "http://domain.com/export/soforp_exchange1c.php?type=sale&mode=checkauth"

в ответ придет success, название куки и ее значение.

success

key

1d00fba419bb88f5058a4105d6fae6d5

Передаем файлы, используя cookie:

curl --cookie "key=1d00fba419bb88f5058a4105d6fae6d5" -X POST --data-binary @"import.xml" "http://demo.neoseo.com.ua/export/soforp_exchange1c.php?type=catalog&mode=file&filename=import.xml"
curl --cookie "key=1d00fba419bb88f5058a4105d6fae6d5" -X POST --data-binary @"import.xml" "http://demo.neoseo.com.ua/export/soforp_exchange1c.php?type=catalog&mode=file&filename=offers.xml"

Просим сервер обработать файлы:

curl --cookie "key=1d00fba419bb88f5058a4105d6fae6d5" "http://demo.neoseo.com.ua/export/soforp_exchange1c.php?type=catalog&mode=import&filename=import.xml"
curl --cookie "key=1d00fba419bb88f5058a4105d6fae6d5" "http://demo.neoseo.com.ua/export/soforp_exchange1c.php?type=catalog&mode=import&filename=offers.xml"

Все, сайт получил и обработал информацию по остаткам товаров.

Далее вам остается запросить у него заказы:

curl --cookie "key=1d00fba419bb88f5058a4105d6fae6d5" "http://demo.neoseo.com.ua/export/soforp_exchange1c.php?type=sale&mode=query"

В ответ придет файл orders.xml, это третий тип файла, с которым мы имеем дело в рамках обмена данными с сайтом.

Выглядит он следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2016-11-04">
<Документ>
    <Ид>34</Ид>
    <Номер>34</Номер>
    <Дата>2016-11-04</Дата>
    <Время>14:26:19</Время>
    <Валюта>грн.</Валюта>
    <Курс>1</Курс>
    <ХозОперация>Заказ товара</ХозОперация>
    <Роль>Продавец</Роль>
    <Сумма>56.7593</Сумма>
    <Комментарий/>
    <ЗначенияРеквизитов>
        <ЗначениеРеквизита>
            <Наименование>Статус</Наименование>
            <Значение>В обработке</Значение>
        </ЗначениеРеквизита>
        <ЗначениеРеквизита>
            <Наименование>Почтовый индекс</Наименование>
            <Значение/>
        </ЗначениеРеквизита>
        <ЗначениеРеквизита>
            <Наименование>Способ доставки</Наименование>
            <Значение>Самовывоз</Значение>
        </ЗначениеРеквизита>
        <ЗначениеРеквизита>
            <Наименование>Способ оплаты</Наименование>
            <Значение>Оплата при получении</Значение>
        </ЗначениеРеквизита>
    </ЗначенияРеквизитов>
    <Контрагенты>
        <Контрагент>
            <Ид>0#alexsoftdev@gmail.com</Ид>
            <Наименование>Сорокин Александр</Наименование>
            <Роль>Покупатель</Роль>
            <ПолноеНаименование>Сорокин Александр</ПолноеНаименование>
            <Фамилия>Сорокин </Фамилия>
            <Имя>Александр</Имя>
            <Адрес>
                <Представление>, Киев, , Украина</Представление>
            </Адрес>
            <Контакты>
                <Контакт>
                    <Тип>ТелефонРабочий</Тип>
                    <Значение>+38 (095) 492-08-23</Значение>
                </Контакт>
                <Контакт>
                    <Тип>Почта</Тип>
                    <Значение>alexsoftdev@gmail.com</Значение>
                </Контакт>
            </Контакты>
        </Контрагент>
    </Контрагенты>
    <Товары>
        <Товар>
            <Ид>000022626</Ид>
            <Наименование>Глобус політичний 110мм (українською)</Наименование>
            <ЦенаЗаЕдиницу>56.7600</ЦенаЗаЕдиницу>
            <БазоваяЕдиница/>
            <Количество>1</Количество>
            <Сумма>56.7593</Сумма>
        </Товар>
    </Товары>
</Документ>
</КоммерческаяИнформация>

Если товар был с характеристикой ( цвет, размер и т.д. ), то идентификатор будет указан в том же формате, что в файле offers.xml. Т.е. составной через решетку. И именно на основании этого, вы должны определить какая именно модификация товара была куплена.

Товары из статьи:

999 грн.

Большому кораблю – большое плавание, а большому бизнесу – оптимизацию процессов с помощью модуля обмена и синхронизации данных Интернет-магазина на OpenCart с 1С:Предприятие, ..

999 грн.

Серьёзному бизнесу – правильные решения! Веб-студия NeoSeo предлагает авторскую разработку: синхронизация Интернет-магазина с учетной системой 1С: Предприятие. Этот модуль входит в специ..