Перейти к содержанию
0

Глобал АйТи

Модуль REST API

Описание методов модуля REST API

Методы:

  1. offerQtyUpdate - Обновление количества у товаров (обновление остатков)
  2. offerQtyGet - Получение количества у товаров (получение остатков)
  3. offerPriceUpdate - Обновление цен и типов цен
  4. offerPriceGet - Получение цен вместе с их типами
  5. offerPriceTypesCreate - Создание типов цен
  6. offerPriceTypesGet - Получение типов цен
  7. offerStoresCreate - Создание склада
  8. offerStoresGet - Получение складов
  9. offerGet - Получение списка товаров и предложений
  10. getSites - Получение списка сайтов в БУС
  11. getCatalogsByLid - Получение списка каталогов по LID сайта
  12. siteRedactionGet - Получение редакции Битрикс
  13. moduleVersionGet - Получение версии модуля

URL:

            https://#SITE#/rest/#USER#/#TOKEN#/glit.rest.catalog.#METHOD#
        

SITE - адрес сайта

USER - ID пользователя через которого работает рест (который сгенерировал токен)

TOKEN - токен авторизации, сгенерированный в настройках модуля реста

METHOD - метод получения/обновления данных

Например:

            https://gl-it.ru/rest/#USER#/#TOKEN#/glit.rest.catalog.offerQtyUpdate
        

 

Методы:

 

offerQtyUpdate

1. Обновление количества у товаров (обновление остатков)

PAYLOAD:


        {
        "products": {
                    "xml_id": {
                            "store": {
                                    "store_xml_id": "amount"
                                    }
                            }
                    }
        }
        

"products" - массив xml_id товаров; "store" - массив xml_id склада -> количество товара на данном складе

Результат:

  • Все товары обновлены:

        {
            "Result": "Остатки успешно обновлены.",
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": "При обновлении остатков возникли ошибки."
            "Errors": {
                "General": {
                    "Пустой запрос." // отправлен пустой запрос
                    "Ошибка входящего массива товаров." // если "products" не массив
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
                "Products":{
                    "ext_id": "Товар не найден" // если товар не найден по его xml_id
                    "ext_id": "Текст ошибки при неудачном обновлении" // если товар не обновлён
                }
                "Store":{
                    "store_extId": "Склад не найден" // если по этому xml_id не нашлось склада
                }
                "Amount":{
                    $store_extId + '_' + $ext_id: "Текст ошибки при обновлении количества у склада" // ошибка обновления кол-ва у склада
                }
            }
        }
        

 


 

offerQtyGet

2. Получение количества у товаров (получение остатков)

PAYLOAD: отсутствует

Результат:

  • Получены все товары на сайте:

        {
            "Result": {
                    0: {
                        "AMOUNT": "1", // количество товара на данном складе
                        "STORE_ID": "2", // xml_id склада
                        "PRODUCT_ID": "3" // xml_id товара
                        },
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": {}
            "Errors": {
                "General": {
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
            }
        }
        

 


 

offerPriceUpdate

3. Обновление цен и типов цен

PAYLOAD:


        {
        "pricetype": {
                    "xml_id": "name"
                    }
        "products": {
                    "ext_id": {
                            "price": {
                                    "ext_price_id": "new_price"
                                    }
                            }
                    }
        }
        

Результат:

  • Успешное обновление цен и типов цен:

        {
            "Result": {
                "PriceType": {
                    "priceType_extId": "Обновлен"
                    "priceType_extId": "Обновление не требуется"
                    "priceType_extId": "Тип цены "Название" создан. ID: 2"
                },
                "Product": {
                    "product_ext_id": {
                        "ext_price_id": "Цена обновлена."
                        "ext_price_id": "Цена установлена."
                    }
                }
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": {}
            "Errors": {
                "General": {
                    "Пустой запрос." // отправлен пустой запрос
                    "Некорректно заданы необходимые параметры." // если "products" не массив
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
                "PriceType": {
                    "priceType_extId": "Текст ошибки при обновлении типа цены" // если не удалось обновить тип цены
                    "priceType_extId": "Отсутствует поддержка множественных типов цен" // если редакция Битрикс не поддерживает множественные типы цен
                    "priceType_extId": "Такой тип цены уже существует" // если такой тип цен уже есть
                    "priceType_extId": "Текст ошибки при создании нового типа цены" // если не удалось создать новый тип цен
                    "priceType_extId": {
                        "Lang Table": "Текст ошибки при установлении названия нового типа цены в языковой таблице"
                        "Access Table": "Текст ошибки при установлении прав доступа нового типа цены"
                    }
                }
                "Product": {
                    "product_ext_id": {
                        "ext_price_id": "Тип цен не найден."
                        "ext_price_id": "Текст ошибки при добавлении цены"
                        "ext_price_id": "Текст ошибки при добавлении цены"
                    }
                }
            }
        }
        

 


 

offerPriceGet

4. Получение цен вместе с их типами

PAYLOAD: Может быть пустым, тогда возвращаются все цены. Либо по фильтру входящих id товаров:


        {
        "products": {
                    "product_ext_id"
                    }
        }
        

Результат:

  • Успешное получение цен и типов цен:

        {
            "Result": {
                "product_ext_id": {
                    "ext_price_id": "1234.00"
                }
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": {}
            "Errors": {
                "General": {
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
            }
        }
        

 


 

offerPriceTypesCreate

5. Создание типов цен

PAYLOAD:


        {
        "pricetype": {
                    "pricetype_ext_id": "pricetype_name"
                    }
        }
        

Результат:

  • Успешное создание типов цен:

        {
            "Result": {
                "PriceType": {
                    "priceType_extId": "Обновлен"
                    "priceType_extId": "Обновление не требуется"
                    "priceType_extId": "Тип цены "Название" создан. ID: 2"
                }
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": ""
            "Errors": {
                "General": {
                    "Пустой запрос." // отправлен пустой запрос
                    "Ошибка входящего массива товаров." // если "products" не массив
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
                "PriceType": {
                    "0_newPriceType_xmlId_newPriceType_name": "Такой тип цены уже существует"
                    "1_newPriceType_xmlId_newPriceType_name": "Отсутствует поддержка множественных типов цен"
                    "2_newPriceType_xmlId_newPriceType_name": "Текст ошибки при создании нового типа цены"
                    "3_newPriceType_xmlId_newPriceType_name": {
                        "Lang Table": "Текст ошибки при установлении названия нового типа цены в языковой таблице"
                        "Access Table": "Текст ошибки при установлении прав доступа нового типа цены"
                    }
                }
            }
        }
        

 


 

offerPriceTypesGet

6. Получение типов цен

PAYLOAD: отсутствует

Результат:

  • Получены все все типы цен:

        {
            "Result": {
                    0: {
                        "priceType_xml_id": "priceType_name",
                        },
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": {}
            "Errors": {
                "General": {
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
            }
        } 
        

 


 

offerStoresCreate

7. Создание складов

PAYLOAD:


        {
            "store_1_ext_id": "store_1_name",
            "store_2_ext_id": "store_2_name",
            ...
        }
        

Результат:

  • Успешное создание складов:

        {
            "Result": {
                "Store": {
                    "store_extId": "Склад 'Название' создан. ID: 2"
                }
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": "",
            "Errors": {
                "General": {
                    "Пустой запрос." // отправлен пустой запрос
                    "Модуль 'Каталог' не установлен" // если не установлены необходимые модули
                    "Отсутствует поддержка множественных складов" // если редакция Битрикса не поддерживает множественные склады
                }
                "Stores": {
                    "0_newStore_xmlId_newStore_name": "Не задан xml_id склада."
                    "1_newStore_xmlId_newStore_name": "Не задано название склада."
                    "2_newStore_xmlId_newStore_name": "Такой склад уже существует."
                    "3_newStore_xmlId_newStore_name": "Текст ошибки при создании склада"
                }
            }
        }
        

 


 

offerStoresGet

8. Получение складов

PAYLOAD: отсутствует

Результат:

  • Получены все склады:

        {
            "Result": {
                    0: {
                        "store_xml_id": "store_name",
                        },
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Result": {},
            "Errors": {
                "General": {
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
            }
        }
        

 


 

offerGet

9. Получение всех товаров, либо по фильтру

PAYLOAD: Может быть пустым, тогда возвращаются все товары. Либо по фильтру входящих id товаров:


        {
        "products": {
                    "product_1_ext_id",
                    "product_2_ext_id",
                    ...
                    }
        }
        

Результат:

  • Получены все товары:

        {
            "Result": {
                    0: "product_1_ext_id",
                    1: "product_2_ext_id",
                    ...
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Errors": {
                "General": {
                    "Модуль "Каталог" не установлен" // если не установлены необходимые модули
                }
            }
        }
        

 


 

getSites

10. Получение списка сайтов

PAYLOAD: отсутствует

Результат:

  • Получен список сайтов:

        {
            "Result": {
                        0: {
                            "lid": "s1",
                            "default": "Y",
                            "active": "Y",
                            "name": "Название сайта",
                            "server_name": "sitename.ru",
                            },
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Errors": {
                "General": {
                    "Модуль 'Каталог' не установлен" // если не установлены необходимые модули
                }
            }
        }
        

 


 

getCatalogsByLid

11. Получение списка каталогов по LID сайта

PAYLOAD:


        {
        "lid": "site_lid"
        }
        

Результат:

  • Получен список сайтов:

        {
            "Result": {
                        0: {
                            "id": "9",
                            "name": "Название каталога",
                            "offers_id": "10",
                            "offers_name": "Название связанного каталога предложений"
                            },
            },
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Errors": {
                "General": {
                    "Модуль 'Каталог' не установлен" // если не установлены необходимые модули
                    "Ошибка входящего массива." // если входящий массив не задан или пуст, если не задано поле "lid" или оно пустое
                    "По этому сайту каталог не найден." // если не найден каталог по заданому LID
                }
            }
        }
        

 


 

siteRedactionGet

12. Получение редакции Битрикса

PAYLOAD: отсутствует

Результат:

  • Получена редакция Битрикса:

        {
            "Result": "Малый бизнес",
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Errors": {
                "General": {
                    "Модуль 'Каталог' не установлен" // если не установлены необходимые модули
                }
                "GetUpdatesList": {
                    "Текст ошибки при получении массива данных методом GetUpdatesList"
                }
            }
        }
        

 


 

moduleVersionGet

13. Получение версии модуля

PAYLOAD: отсутствует

Результат:

  • Получена версия модуля:

        {
            "Result": "1.0.2",
            "Errors": {}
        }
        
  • Возможные ошибки:

        {
            "Errors": {
                "General": {
                    "Модуль 'Каталог' не установлен" // если не установлены необходимые модули
                }
            }
        }