Центр документации
Карта сайта


Новая документация

Настройка платежных систем
Настройка способа оплаты КупиВкредит
Настройка способа оплаты Acquiro
Настройка способа оплаты AvisoSMS

Обновленная документация 

Разработчикам (API)
Руководство пользователя

Расширенная настройка импорта товаров



Для импорта реквизита из 1С в каталог товаров необходимо произвести следующие шаги:

  1. Добавить необходимый реквизит к справочнику «Номенклатура» в 1С. Добавление реквизита описано в документации к модулю обмена «Интернет-магазин» на примере реквизита «ПубликоватьНаСайте» (пункт 8).
  2. Добавить информацию о реквизите в файл конфигурации XML1cV8ExchangeDriverСonfig.xml, находящийся в папке WMIMBase, в раздел справочника номенклатуры:

    <OBJECT>
    <!-- Справочник: Номенклатура -->
    ...
    <!-- выгружаемые реквизиты -->
    <ATTRIBS>
    ...
    <ATTRIB>
    <NAME-1C>Свойство1</NAME-1C>
    <NAME>FIELD_1</NAME>
    </ATTRIB>
    </ATTRIBS>
    </OBJECT>
    В примере выше Свойство1 – это имя созданного в 1С реквизита в справочнике «Номенклатура»; FIELD_1 – уникальный идентификатор реквизита
  3. Производим полную выгрузку из 1С и убеждаемся, что новый реквизит присутствует в выгрузке:

    <CatalogObject.Номенклатура>

    <Свойство1>Значение свойства</Свойство1>
    </CatalogObject.Номенклатура>


  4. Далее необходимо настроить импорт на стороне сайта. Для этого нужно внести дополнительную информацию в файл конфигурации XML1cV8ExchangeDriverСonfig.xml, который должен быть размещён в папке /_local на сайте.
    В каждый атрибут <attrib> для импортируемого поля добавляются дополнительные теги. Обязательным тегом является <ami-action>, который означает тип действия над полем при импорте. Он может иметь следующие значения: copy, replace, on_special, reference.
    Рассмотрим подробнее каждое действие.
    1. copy – выполняется при простом копировании значения реквизита в поле каталога товара. Дополнительно используются теги:

      <AMI-DB-FIELD> - содержит имя поля в каталоге товаров; Имена полей можно узнать в документации по API: описание общих полей, описание полей товаров.

      <AMI-CAT> - используется если нужно, чтобы значение реквизита было скопировано в поле категории. В таком случае значением тега должно быть true. Если значение реквизита импортируется в поле товара, то тег использовать не нужно.

      Приведём несколько примеров с объяснениями:
      1. Значение реквизита Свойство1 будет скопировано в поле custom_field_12 (Дополнительное поле номер 12) товара.

        <ATTRIB>
        <NAME-1C>Свойство1</NAME-1C>
        <NAME>FIELD_1</NAME>
        <AMI-ACTION>copy</AMI-ACTION>
        <AMI-DB-FIELD>custom_field_12</AMI-DB-FIELD>
        </ATTRIB>
      2. Значение реквизита Свойство1 будет скопировано в поле body (Описание) товара.

        <ATTRIB>
        <NAME-1C>Свойство1</NAME-1C>
        <NAME>FIELD_1</NAME>
        <AMI-ACTION>copy</AMI-ACTION>
        <AMI-DB-FIELD>body</AMI-DB-FIELD>
        </ATTRIB>
      3. Значение реквизита Свойство1 будет скопировано в поле announce (Анонс) категории.

        <ATTRIB>
        <NAME-1C>Свойство1</NAME-1C>
        <AMI-CAT>true</AMI-CAT>
        <NAME>FIELD_1</NAME>
        <AMI-ACTION>copy</AMI-ACTION>
        <AMI-DB-FIELD>announce</AMI-DB-FIELD>
        </ATTRIB>
    2. replace – при импорте реквизита его значения будут заменяться в соответствии с правилами в конфигурационном файле. Дополнительно используются теги:
      <AMI-DB-FIELD> - содержит имя поля в каталоге товаров;
      <AMI-MAPPING> - секция содержит соответствие значений полей при импорте, например:

      <AMI-MAPPING>
      <AMI-VALUE-1C>true</AMI-VALUE-1C>
      <AMI-VALUE-DB>Да</AMI-VALUE-DB>
      </AMI-MAPPING>
      <AMI-MAPPING>
      <AMI-VALUE-1C>false</AMI-VALUE-1C>
      <AMI-VALUE-DB>Нет</AMI-VALUE-DB>
      </AMI-MAPPING>
      <AMI-VALUE-1C> - значение реквизита в выгрузке;
      <AMI-VALUE-DB> - значение которое будет сохранено в каталог при импорте.
      В примере выше, значения реквизитов в файле выгрузки «true» и «false» при импорте будут заменены на «Да» и «Нет» соответственно.

      Пример использования:

      1. <ATTRIB>
        <NAME-1C>ПубликоватьНаСайте</NAME-1C>
        <NAME>PUBLIC</NAME>
        <AMI-ACTION>replace</AMI-ACTION>
        <AMI-DB-FIELD>public</AMI-DB-FIELD>
        <AMI-MAPPING>
        <AMI-VALUE-1C>true</AMI-VALUE-1C>
        <AMI-VALUE-DB>1</AMI-VALUE-DB>
        </AMI-MAPPING>
        <AMI-MAPPING>
        <AMI-VALUE-1C>false</AMI-VALUE-1C>
        <AMI-VALUE-DB>0</AMI-VALUE-DB>
        </AMI-MAPPING>
        </ATTRIB>
        В этом примере предполагается, что мы добавили в выгрузку реквизит ПубликоватьНаСайте, который может принимать значения true или false. Далее мы хотим импортировать реквизит во флаг товара «Публиковать», для чего настраиваем соответствие значений: true/false при импорте будут преобразованы в 1/0 соответственно.
        Таким образом, после импорта товары со значением реквизита равным false станут распубликованными.

        Аналогично можно настроить импорт признака публикации для категорий, добавив тег <AMI-CAT>true</AMI-CAT>. Не забывайте, что значение тега <NAME> должно быть уникальным!
    3. on_special – выполняется при импорте специальных признаков (Специальный, Товар дня итд.). Значение реквизита в выгрузке при этом должно быть true или false. Реквизит добавляется аналогично флагу ПубликоватьНаСайте. Дополнительно используется тег <AMI-SPECIAL-NUM>- содержит номер специального признака (нумерация начинается с нуля).

      1. <ATTRIB>
        <NAME-1C>Свойство1</NAME-1C>
        <NAME>SPECIAL0</NAME>
        <AMI-ACTION>on_special</AMI-ACTION>
        <AMI-SPECIAL-NUM>0</AMI-SPECIAL-NUM>
        </ATTRIB>
        В этом примере импортируется признак товара «Специальный» (номер 0).

Импорт справочника

Отдельно рассмотрим тип действия reference. Это действие предназначено для импорта значений справочника и соответствующих дополнительных свойств товаров.

Допустим, в 1С существует справочник «Производители» и он включён в план обмена (см. инструкцию по добавлению модуля обмена в конфигурацию 1С). Также создан соответствующий реквизит «Производитель» для товаров.
Значения реквизита берутся из справочника.

Настраиваем конфигурационный файл XML1cV8ExchangeDriverСonfig.xml в папке WMIMBase следующим образом:

В раздел <OBJECTS> добавляем новый объект (справочник):


<OBJECTS>

<OBJECT>
<!-- Справочник: Производители -->
<OBJECT-INFO>
<NAME-OBJECT-1C>CatalogObject.Производители</NAME-OBJECT-1C>
<NAME-OBJECT>REFERENCE</NAME-OBJECT>
<DATA_TYPE>VENDOR</DATA_TYPE>
</OBJECT-INFO>
<ATTRIBS>
<ATTRIB>
<NAME-1C>Ref</NAME-1C>
<NAME>ID_EXTERNAL</NAME>
</ATTRIB>
<ATTRIB>
<NAME-1C>Description</NAME-1C>
<NAME>VENDOR_NAME</NAME>
</ATTRIB>
</ATTRIBS>
</OBJECT>

<OBJECTS>

В раздел «Справочник: Номенклатура» добавляем информацию о реквизите товара:


<OBJECT>
<!-- Справочник: Номенклатура -->
...
<!-- выгружаемые реквизиты -->
<ATTRIBS>
...
<ATTRIB>
<NAME-1C>Производитель</NAME-1C>
<NAME>VENDOR_NAME</NAME>
</ATTRIB>
</ATTRIBS>
</OBJECT>
Здесь Производитель – это имя созданного в 1С реквизита в справочнике «Номенклатура», который будет заполняться значениями из справочника «Производители»;
VENDOR_NAME – идентификатор реквизита. Обратите внимание, что он совпадает с атрибутом из описания справочника.

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


<CatalogObject.Производители>
<Ref> cf5f183b-1g410-r1dh-a9u1-071b8hf28kj6 </Ref>
<DeletionMark> false </DeletionMark>
<Code> 0005 </Code>
<Description> Vendor1 </Description>
< /CatalogObject.Производители >

Во-вторых, для номенклатуры должен появиться новый реквизит:


<CatalogObject.Номенклатура>

<Производитель>cf5f183b-1g410-r1dh-a9u1-071b8hf28kj6</Производитель>
</CatalogObject.Номенклатура>

Обратите внимание, значением реквизита является ссылка на элемент справочника.

Переходим к настройке импорта на сайте. Поле настройки файл конфигурации XML1cV8ExchangeDriverСonfig.xml нужно скопировать в папку /_local на сайте.

Создаём в панели управления на сайте справочник «Производители», в который будем импортировать справочник из 1С. Создаём свойство «Производитель», источником значений которого будет созданный ранее справочник. Подробней об этом читайте в документации.

Для дальнейшей настройки нам понадобится номер созданного справочника и номер свойства.

Далее находим в файле конфигурации XML1cV8ExchangeDriverСonfig.xml информацию о реквизите Производитель и добавляем следующие атрибуты:


<OBJECT>
<!-- Справочник: Номенклатура -->
...
<!-- выгружаемые реквизиты -->
<ATTRIBS>
...
<ATTRIB>
<NAME-1C>Производитель</NAME-1C>
<NAME>VENDOR_NAME</NAME>
<AMI-ACTION>reference</AMI-ACTION>
<AMI-REFERENCE-NUM>9</AMI-REFERENCE-NUM>
<AMI-CUSTOM-FIELD-NUM>12</AMI-CUSTOM-FIELD-NUM>
<AMI-REFERENCE-DATA-TYPE>VENDOR</AMI-REFERENCE-DATA-TYPE>
</ATTRIB>
</ATTRIBS>
</OBJECT>
Значения тегов NAME-1C и NAME остаются как были при добавлении реквизита. Добавляются следующие теги:
<AMI-ACTION>reference</AMI-ACTION> <AMI-REFERENCE-NUM>9</AMI-REFERENCE-NUM> - данный тег должен содержать номер справочника на сайте. <AMI-CUSTOM-FIELD-NUM>12</AMI-CUSTOM-FIELD-NUM> - тег содержит номер свойства. <AMI-REFERENCE-DATA-TYPE>VENDOR</AMI-REFERENCE-DATA-TYPE> - значение тега должно совпадать со значением тега <DATA_TYPE>VENDOR</DATA_TYPE> из описания справочника «Производители» (см. выше).

На этом настройка импорта завершена.

Внимание! Перед тестированием обязательно создайте резервную копию базы данных!

Установка и настройка Руководство пользователя Интеграция дизайна Разработчикам (API) Документация для скачивания
 2000 – 2011 © Amiro.CMS Все права защищены.