Синхронизация товаров


Адрес обмена

Отправка данных о товарах должна выполняться методом POST на следующий адрес: https://api.zenky.io/v2/sync-gate/TOKEN/products, где TOKEN - значение токена обмена данными для вашего магазина (получение токена).

Список полей

Несмотря на то, что система вариантов товаров позволяет более гибко устраивать работу вашего магазина и сайта, они могут быть полезны далеко не всем. В случае, если вы продаёте товары без каких-либо опций (цвет, размер, объем памяти и т.п.) или ваш каталог в системе учёта построен так, что все товары и их варианты хранятся как отдельные самостоятельные товары, отправка вариантов может вызвать затруднение.

Благодаря тому, что шлюз обмена поддерживает работу с товарами без вариантов, вы можете спокойно обойти это требование следующим образом.

В таблице полей ниже перечислены поля (variant_name, variant_price, variant_sku, variant_remainders и variant_options), которые будут использованы нашим приложением в том случае, если поле single_variant установлено в значение true.

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

Обратите внимание, что поле variant_remainders должно передавать массив значений остатков варианта товара, а поле variant_options - массив значений опций варианта товара.

Список полей товара

  • — Значение "add" (по умолчанию) добавит новые изображения, "replace" - заменит существующие изображения новыми, "remove" - удалит все изображения товара и проигнорирует новые.

Список полей варианта товара

Список полей остатков варианта товара

Список полей опций варианта товара

Список полей характеристик товара

Список полей модификаторов товара

Список полей групп модификаторов товара

Каждым элементом массива modifiers должен быть объект со следующей структурой:

Изображения

Поле images каждого товара поддерживает сторонние URL, с которых будут загружены изображения, и идентификаторы ранее загруженных изображений (без владельца).

URL изображений

Если вы планируете прикреплять изображения со сторонних URL, перечисляйте их в поле images либо в виде строк, либо в виде объектов с полем url.

{
  "images": [
    "http://via.placeholder.com/1440x900",
    {"url": "http://via.placeholder.com/1920x1080"}
  ]
}

Ранее загруженные изображения

Если у вашей системы учёта нет возможности предоставлять изображения по URL, вы можете загрузить необходимые изображения к нам с помощью отдельного API.

После загрузки каждого изображения сохраните их идентификаторы (поле id), а затем добавьте их в поле images в виде объектов с полем id.

{
  "images": [
    {"id": "9099a973-82b5-4a4a-993f-fe84f4489155"},
    {"id": "9099a974-ec1f-4081-b122-ddbbbc5d7395"}
  ]
}

Обратите внимание, что таким образом можно прикрепить только те изображения, которые были загружены без указания владельца (поля owner_type и owner_id). Если будут переданы изображения, у которых уже есть владелец, они будут проигнорированы.

Пример запроса

POST https://api.zenky.io/v2/sync-gate/TOKEN/products

{
  "payload": [
    {
      "id": 1,
      "name": "Apple iPhone X",
      "variants": [
        {
          "id": 1,
          "price": 79999,
          "sku": "2221411-GB-301-1",
          "remainders": [
            {"stock_id": 1, "quantity": 2},
            {"stock_id": 2, "quantity": 1}
          ],
          "options": [
            {"id": 1, "value_id": 1},
            {"id": 2, "value_id": 6}
          ]
        },
        {
          "id": 2,
          "price": 69999,
          "sku": "2221411-GB-301-3",
          "remainders": [
            {"stock_id": 2, "quantity": 1}
          ],
          "options": [
            {"id": 1, "value_id": 1},
            {"id": 2, "value_id": 5}
          ]
        }
      ],
      "features": [
        {"id": 1, "value_id": 1},
        {"id": 2, "value_id": 5}
      ],
      "categories": [2],
      "images": [
        "http://via.placeholder.com/1440x900",
        "http://via.placeholder.com/1336x768",
        "http://via.placeholder.com/1440x900"
      ]
    },
    {
      "id": 2,
      "name": "Samsung Galaxy S9",
      "variants": [
        {
          "id": 3,
          "price": 79999,
          "sku": "AAAAXCABRE-21-112",
          "remainders": [
            {"stock_id": 1, "quantity": 2}
          ],
          "options": [
            {"id": 1, "value_id": 2},
            {"id": 2, "value_id": 5}
          ]
        },
        {
          "id": 4,
          "price": 69999,
          "sku": "AAAAXCABRE-21-110",
          "remainders": [
            {"stock_id": 2, "quantity": 1}
          ],
          "options": [
            {"id": 1, "value_id": 2},
            {"id": 2, "value_id": 4}
          ]
        }
      ],
      "features": [
        {"id": 1, "value_id": 2},
        {"id": 2, "value_id": 4}
      ],
      "categories": [3],
      "images": [
        "http://via.placeholder.com/1440x900",
        "http://via.placeholder.com/1336x768",
        "http://via.placeholder.com/1024x768"
      ]
    }
  ]
}

Пример запроса товаров без вариантов

POST https://api.zenky.io/v2/sync-gate/TOKEN/products

{
  "payload": [
    {
      "id": 1,
      "name": "Apple iPhone X",
      "single_variant": true,
      "variant_price": 79999,
      "variant_remainders": [
        {"stock_id": 1, "quantity": 2},
        {"stock_id": 2, "quantity": 1}
      ],
      "variant_options": [
        {"id": 1, "value_id": 1},
        {"id": 2, "value_id": 6}
      ],
      "features": [
        {"id": 1, "value_id": 1},
        {"id": 2, "value_id": 5}
      ],
      "categories": [2],
      "images": [
        "http://via.placeholder.com/1440x900",
        "http://via.placeholder.com/1336x768",
        "http://via.placeholder.com/1440x900"
      ]
    },
    {
      "id": 2,
      "name": "Samsung Galaxy S9",
      "single_variant": true,
      "variant_name": "Samsung Galaxy S9",
      "variant_remainders": [
        {"stock_id": 1, "quantity": 2}
      ],
      "features": [
        {"id": 1, "value_id": 2},
        {"id": 2, "value_id": 4}
      ],
      "categories": [3],
      "images": [
        "http://via.placeholder.com/1440x900",
        "http://via.placeholder.com/1336x768",
        "http://via.placeholder.com/1024x768"
      ]
    }
  ]
}