Загрузка данных с сайтов поставщиков — различия между версиями

Материал из Mr.Doc
Перейти к: навигация, поиск
Строка 162: Строка 162:
  
 
В этом случае поле "Поле артикула" нужно заполнить так: "@cae" (символ "@" указывает на то, что это атрибут узла, а не отдельный узел).
 
В этом случае поле "Поле артикула" нужно заполнить так: "@cae" (символ "@" указывает на то, что это атрибут узла, а не отдельный узел).
 +
 +
== Пример настройки для JSON-файла ==
 +
 +
Допустим, что поставщик предоставляет ссылку на JSON-файл с ценами и остатками: https://pro.4tochki.ru/export_data/rest_other.json
 +
 +
Если открыть эту ссылку в браузере, то увидим следуюшее содержимое файла:
 +
<pre>
 +
{
 +
  "tires": [
 +
    {
 +
      "cae": "003309",
 +
      "brand": "Nokian",
 +
      "size": "R19",
 +
      "model": "AH213-19",
 +
      "rest_msk": 5,
 +
      "rest_spb": 2,
 +
      "price_msk": 3650,
 +
      "price_spb": 3685
 +
    },
 +
    {
 +
      "cae": "1014138",
 +
      "brand": "Nokian",
 +
      "size": "R20",
 +
      "model": "AH213-20",
 +
      "rest_msk": 5,
 +
      "rest_spb": "более 40",
 +
      "price_msk": 4120,
 +
      "price_spb": 4120
 +
    }
 +
  ],
 +
  "rims": [
 +
    {
 +
      "cae": "WHS152714",
 +
      "brand": "Nitro",
 +
      "model": "N20-123",
 +
      "rest_msk": 12,
 +
      "rest_spb": 2,
 +
      "price_msk": 2370,
 +
      "price_spb": 2370
 +
    },
 +
    {
 +
      "cae": "WHS152672",
 +
      "brand": "Nitro",
 +
      "model": "N20-124",
 +
      "rest_msk": 15,
 +
      "rest_spb": 7,
 +
      "price_msk": 3580,
 +
      "price_spb": 3600
 +
    }
 +
  ]
 +
}
 +
</pre>
 +
 +
В данном случае у поставщика разные узлы для разных типов товаров: '''tires''' - для шин, '''rims''' - для дисков.
 +
 +
Соответственно, необходимо создать две записи в табличной части "Настройки для обновления товаров":
 +
 +
'''Строка 1:'''
 +
** URL для загрузки файла: "https://pro.4tochki.ru/export_data/rest_other.json";
 +
** Узел товара: "tires";
 +
** Поле артикула: "cae";
 +
** Шаблон наименования: "{brand} {size} {model}" (то есть наименования для поиска будут принимать следующий вид: "Nokian R19 AH213-19");
 +
** Поля с кол-вами (через запятую): "rest_msk,rest_spb";
 +
** Поля с ценами (через запятую): "price_msk,price_spb";
 +
 +
'''Строка 2:'''
 +
** URL для загрузки файла: "https://pro.4tochki.ru/export_data/rest_other.json";
 +
** Узел товара: "rims";
 +
** Поле артикула: "cae";
 +
** Шаблон наименования: "{brand} {model}" (то есть наименования для поиска будут принимать следующий вид: "Nitro N20-123");
 +
** Поля с кол-вами (через запятую): "rest_msk,rest_spb";
 +
** Поля с ценами (через запятую): "price_msk,price_spb";
 +
 +
  
 
[[Category:Интеграция с поставщиками]]
 
[[Category:Интеграция с поставщиками]]

Версия 15:14, 20 октября 2016

Важно!

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

Компания "КлаудТим" не несет ответственности за любые проблемы, прямо или косвенно связанные с синхронизацией.

Со своей стороны мы стараемся сделать все возможное для обеспечения правильной и надежной синхронизации.

Возможности

Модуль позволяет загружать цены и наличие товаров у поставщиков напрямую с их сайтов по расписанию.

Для этого поставщик должен предоставить ссылку на JSON или XML-файл, в котором отражены его остатки и/или его цены. Ссылка может быть как на сайт (начинается с "http://"), так и на ftp-сервер (начинается с "ftp://").

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

Включение модуля

Для включения модуля необходимо зайти в ваш личный кабинет на сайте mrdoc.org и включить модуль "Интеграция с поставщиками".

Включение модуля в личном кабинете

Настройка модуля

После включения модуля в вашей программе появляется новый пункт меню "Настройки загрузки данных поставщиков".

Этот пункт ведет в журнал, где для каждого поставщика необходимо создать отдельную запись.

Пункт главного меню для настройки загрузки данных поставщиков

Настройка загрузки данных с сайта поставщика

  • Поставщик - поставщик, для которого будут загружаться цены и наличие. Цены будут загружаться по тому типу цен, который указан в карточке поставщика (в поле "Закупочный тип цен");
  • Способ расчёта цены - способ вычисления итоговой цены поставщика для тех случаев, когда у поставщика несколько разных цен для одного товара (например, разные цены на разных складах);
  • Периодичность - с какой периодичностью загружать данные с сайта поставщика;
  • Валюта цен - валюта для загрузки цен;
  • Сбрасывать наличие после загрузки - при установке этого флажка будет сбрасываться наличие для всех товаров, которых не было в файле, но по которым ранее было зафиксировано наличие у данного поставщика;
  • Логин, пароль - некоторые поставщики требуют аутентификации для скачивания файла;
  • Табличная часть "Настройки для обновления товаров" - это список правил для разбора файла:
    • URL для загрузки файла - ссылка на файл поставщика;
    • Узел товара - путь до узла товара внутри файла;
    • Поле артикула - путь до поля с артикулом в рамках узла товара;
    • Шаблон наименования - шаблон для формирования наименования, по которому будет искаться товар, если он не был найден по артикулу поставщика;
    • Поля с кол-вами (через запятую) - пути до полей с количествами в рамках узла товара;
    • Поля с ценами (через запятую) - пути до полей с ценами в рамках узла товара;

Пример настройки для XML-файла

Допустим, что поставщик предоставляет ссылку на XML-файл с ценами и остатками: https://pro.4tochki.ru/export_data/rest_other.xml

Если открыть эту ссылку в браузере, то увидим следуюшее содержимое файла:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data>
  <tires>
    <cae>003309</cae>
    <brand>Nokian</brand>
    <size>R19</size>
    <model>AH213-19</model>
    <rest_msk>5</rest_mkrs>
    <rest_spb>2</rest_sk2>
    <price_msk>3650</rest_sk3>
    <price_spb>3685</rest_sk4>
  </tires>
  <tires>
    <cae>1014138</cae>
    <brand>Nokian</brand>
    <size>R20</size>
    <model>AH213-20</model>
    <rest_msk>5</rest_mkrs>
    <rest_spb>более 40</rest_sk2>
    <price_msk>4120</rest_sk3>
    <price_spb>4120</rest_sk4>
  </tires>
  ...
  <rims>
    <cae>WHS152714</cae>
    <brand>Nitro</brand>
    <model>N20-123</model>
    <rest_msk>12</rest_mkrs>
    <rest_spb>2</rest_sk2>
    <price_msk>2370</rest_sk3>
    <price_spb>2370</rest_sk4>
  </rims>
  <rims>
    <cae>WHS152672</cae>
    <brand>Nitro</brand>
    <model>N20-124</model>
    <rest_msk>15</rest_mkrs>
    <rest_spb>7</rest_sk2>
    <price_msk>3580</rest_sk3>
    <price_spb>3600</rest_sk4>
  </rims>
  ...
</data>

В данном случае у поставщика разные узлы для разных типов товаров: tires - для шин, rims - для дисков.

Соответственно, необходимо создать две записи в табличной части "Настройки для обновления товаров":

Строка 1:

    • URL для загрузки файла: "https://pro.4tochki.ru/export_data/rest_other.xml";
    • Узел товара: "tires" (путь к узлу товара не учитывает корневой узел "data");
    • Поле артикула: "cae";
    • Шаблон наименования: "{brand} {size} {model}" (то есть наименования для поиска будут принимать следующий вид: "Nokian R19 AH213-19");
    • Поля с кол-вами (через запятую): "rest_msk,rest_spb";
    • Поля с ценами (через запятую): "price_msk,price_spb";

Строка 2:

    • URL для загрузки файла: "https://pro.4tochki.ru/export_data/rest_other.xml";
    • Узел товара: "rims" (путь к узлу товара не учитывает корневой узел "data");
    • Поле артикула: "cae";
    • Шаблон наименования: "{brand} {model}" (то есть наименования для поиска будут принимать следующий вид: "Nitro N20-123");
    • Поля с кол-вами (через запятую): "rest_msk,rest_spb";
    • Поля с ценами (через запятую): "price_msk,price_spb";

В файлах некоторых поставщиков могут использоваться атрибуты XML-узлов.

Например, в данном файле артикул товара указан в атрибуте узла товара, а не отдельным подузлом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<data>
  <tires cae="003309">
    <brand>Nokian</brand>
    <size>R19</size>
    <model>AH213-19</model>
    <rest_msk>5</rest_mkrs>
    <rest_spb>2</rest_sk2>
    <price_msk>3650</rest_sk3>
    <price_spb>3685</rest_sk4>
  </tires>
  <tires cae="1014138">
    <brand>Nokian</brand>
    <size>R20</size>
    <model>AH213-20</model>
    <rest_msk>5</rest_mkrs>
    <rest_spb>более 40</rest_sk2>
    <price_msk>4120</rest_sk3>
    <price_spb>4120</rest_sk4>
  </tires>
  ...
  <rims cae="WHS152714">
    <brand>Nitro</brand>
    <model>N20-123</model>
    <rest_msk>12</rest_mkrs>
    <rest_spb>2</rest_sk2>
    <price_msk>2370</rest_sk3>
    <price_spb>2370</rest_sk4>
  </rims>
  <rims cae="WHS152672">
    <brand>Nitro</brand>
    <model>N20-124</model>
    <rest_msk>15</rest_mkrs>
    <rest_spb>7</rest_sk2>
    <price_msk>3580</rest_sk3>
    <price_spb>3600</rest_sk4>
  </rims>
  ...
</data>

В этом случае поле "Поле артикула" нужно заполнить так: "@cae" (символ "@" указывает на то, что это атрибут узла, а не отдельный узел).

Пример настройки для JSON-файла

Допустим, что поставщик предоставляет ссылку на JSON-файл с ценами и остатками: https://pro.4tochki.ru/export_data/rest_other.json

Если открыть эту ссылку в браузере, то увидим следуюшее содержимое файла:

{
  "tires": [
    {
      "cae": "003309",
      "brand": "Nokian",
      "size": "R19",
      "model": "AH213-19",
      "rest_msk": 5,
      "rest_spb": 2,
      "price_msk": 3650,
      "price_spb": 3685
    },
    {
      "cae": "1014138",
      "brand": "Nokian",
      "size": "R20",
      "model": "AH213-20",
      "rest_msk": 5,
      "rest_spb": "более 40",
      "price_msk": 4120,
      "price_spb": 4120
    }
  ],
  "rims": [
    {
      "cae": "WHS152714",
      "brand": "Nitro",
      "model": "N20-123",
      "rest_msk": 12,
      "rest_spb": 2,
      "price_msk": 2370,
      "price_spb": 2370
    },
    {
      "cae": "WHS152672",
      "brand": "Nitro",
      "model": "N20-124",
      "rest_msk": 15,
      "rest_spb": 7,
      "price_msk": 3580,
      "price_spb": 3600
    }
  ]
}

В данном случае у поставщика разные узлы для разных типов товаров: tires - для шин, rims - для дисков.

Соответственно, необходимо создать две записи в табличной части "Настройки для обновления товаров":

Строка 1:

    • URL для загрузки файла: "https://pro.4tochki.ru/export_data/rest_other.json";
    • Узел товара: "tires";
    • Поле артикула: "cae";
    • Шаблон наименования: "{brand} {size} {model}" (то есть наименования для поиска будут принимать следующий вид: "Nokian R19 AH213-19");
    • Поля с кол-вами (через запятую): "rest_msk,rest_spb";
    • Поля с ценами (через запятую): "price_msk,price_spb";

Строка 2:

    • URL для загрузки файла: "https://pro.4tochki.ru/export_data/rest_other.json";
    • Узел товара: "rims";
    • Поле артикула: "cae";
    • Шаблон наименования: "{brand} {model}" (то есть наименования для поиска будут принимать следующий вид: "Nitro N20-123");
    • Поля с кол-вами (через запятую): "rest_msk,rest_spb";
    • Поля с ценами (через запятую): "price_msk,price_spb";