Каталоги клиента parts-soft

Функционал позволяет предоставлять через АПИ свои каталоги регионам франчайзи или сторонним организациям.

ВАЖНО! Сервер франчайзи / сторонней организации должен быть отдельным.

Доступ к АПИ осуществляется по ключу доступа (api_key) или по коду авторизации (auth_key).

Доступ к АПИ по ключу доступа

Для настройки доступа по ключу (api_key) выполните описанные ниже шаги. Настройка должна выполняться администратором сайта.

 

ШАГ 1.   Получение ключа доступа.
В админ панели на основном сервере перейдите в меню Сайт Общие настройки. Найдите поле Ключ доступа к API каталогов клиента parts-soft.ru и скопируйте его значение.
Если это поле пустое, поставьте галочку Генерировать новый ключ к API каталогов parts-soft.ru и нажмите на кнопку «Сохранить» в нижней части страницы. В результате будет сгенерирован новый ключ.

Фото 1. Ключ доступа

 

ШАГ 2.  Настройки каталогов во франчайзи.
Перейдите в админ панель франчайзи / сторонней организации. Откройте меню Служебные КаталогиНастройки и введите скопированное ранее значение в поле АПИ ключ для каталогов клиента parts-soft.ru.
Также в поле Хост для каталогов клиента parts-soft.ru укажите адрес основного сайта, откуда предоставляются каталоги, с протоколом (http / https).
Нажмите на кнопку «Сохранить» в нижней части страницы.

Фото 2. Настройки каталогов

 

ШАГ 3.   Создание каталога на основном сервере.
Перейдите в меню Служебные Каталоги Добавить и в нижней части блока Список действующих каталогов нажмите на кнопку «Создать».
В открывшейся форме укажите параметры каталога:

  • Код (1) – латинскими буквами;
  • Название (2);
  • Каталог клиента parts-soft.ru (3) – не забудьте отметить галочкой данную опцию.

Фото 3. Создание каталога

 

ШАГ 4.   Категории товаров.
Перейдите в меню Служебные Продукция Категории. Найдите нужную категорию и отредактируйте ее.

Фото 4. Категории товаров

 

ШАГ 5.   Привязка категории к каталогу
На странице настроек во вкладке Редактирование категории найдите выпадающий список Привязка к каталогу. Выберите созданный ранее каталог (см. фото 3) и нажмите на кнопку «Сохранить» в нижней части страницы.

Фото 5. Привязка категории к каталогу

 

ШАГ 6.   Подключение каталога.
В админ панели франчайзи / сторонней организации перейдите в меню Служебные Каталоги Добавить. В блоке Список доступных онлайн каталогов клиента parts-soft.ru нажмите на кнопку «Подключить» в строке нужного каталога.

Фото 6. Подключение каталога

 

Доступ к АПИ по коду авторизации

ВАЖНО! Для настройки доступа к АПИ по коду потребуется авторизация по basic auth.

ШАГ 1.   Получение кода авторизации.
Получить код авторизации (auth_key) можно одним из способов:

1.  Через клиентскую часть – в адресной строке браузера введите url "/api/v1/auth_key/init".

Фото 7. Получение кода авторизации

2.   Через запрос – GET /api/v1/auth_key/init.

Пример ответа:

  {
    "result":"ok",
    "auth_key":"124b0d5b13b61174751266e41ac5aa66", # код авторизации
   "expires_in":"05.05.2020 15:54 +03:00", #cрок действия кода авторизации
    "customer_id":5124, #ID авторизованного клиента
    "user_id":1 #ID менеджера клиента
  }

 

По умолчанию код авторизации действует 24 часа. В меню Сайт Общие настройки можно изменить это значение.

Фото 8. Срок действия кода авторизации

 

ШАГ 2.   Передача кода авторизации в запросах.
После получения кода авторизации его следует передавать в параметре auth_key в следующих запросах:

1. Получение списка доступных каталогов
2. Получение категории по коду каталога
3. Получение атрибутов (фильтров) и значений атрибутов категории
4. Получение списка товаров

 

Ниже представлена техническая документация для разработчиков.

 

1. Получение списка доступных каталогов
   GET /api_catalog/catalogs

Пример результата:

 [
  {"name":"Моторные масла ",#Название каталога
   "code":"pscc-api-motornye-masla", #код каталога
    "category_code":"pscc-api-motornye-masla" #код категории
  }
]


 

2. Получение категории по коду каталога​
   GET /api_catalog/catalogs/category

Параметры:

  • category_id - код каталога

Пример результата:

  {
    "id":800, #ID категории
   "name":"Моторные масла u рп", #Название категории
   "description":"", #описание
   "short_description":"",
   "friendly_id":"pscc-api-motornye-masla",
   "has_children":false,
   "logo":"http://localhost:3003/logos/original/missing.png",
   "children":[],
   "parents":[]
  }


 

3. Получение атрибутов (фильтров) и значений атрибутов категории
   GET /api_catalog/catalogs/:category_id/attr_filters

Параметры:

  • category_id - ID категории

Пример результата:

[
  {
    "name":"Тип автомобиля", # Название атрибута
    "values":[ #Коллекция значение атрибута
         {
          "id":858, #ID значение атрибута
          "name":"Легковой",
          "products_count":1,
          "filter_count":0
         },
         {
          "id":873,
          "name":"Грузовой",
          "products_count":1,
          "filter_count":0
         },
         {
          "id":896,
          "name":"Легковой/грузовой",
          "products_count":1,
          "filter_count":0
         }
    ],
      "type":"link",
      "open":false,
      "step":1,
      "id":23,
      "parent_id":null,
      "child_id":null,
      "linked_filters_title":null,
      "max":0,
      "min":0
​  }


 

4. Получение списка товаров
   GET /catalogs/:category_id/articles_by_attrs

При наличии параметра pav_ids подбираются товары по значениям атрибутов.

Параметры:

  • category_id - ID категории
  • pav_ids - массив ID значение атрибута . Массив надо перекодировать в JSON строку.
  • page - номер страницы. Значение по умолчанию 1.
  • per - количество товаров в выборке. Значение по умолчанию 100.

Пример результата:

{
  "products":[
      {
        "id":731270, #ID продукции
        "oem":"0888080365", #артикул товара
        "detail_name":"Toyota Engine oil .", #название товара
        "description":"", #описание товара
        "make_name":"TOYOTA", #бренд
        "product_photo":"http://localhost:3003/system/product_photo/731270/9176_original.jpg?1394996224",
        "properties":[ #коллекция свойств товара
            {
             "name":"API",
             "value":"SL, CF",
             "logo":"/logos/original/missing.png"
             },
            {
             "name":"Объем упаковки, л",
             "value":"5",
             "logo":"/logos/original/missing.png"
            }
         ]
       },
      ....
    ],
    "pr_count":93 #кол-во товаров в выборки
 }