Настройки интеграций с магазинами и маркетплейсами
Реализован http сервис для работы с магазинами и маркетплейсами. Добавлен следующий функционал:
1. Получение одного магазина. Метод GET /api/lite/settings/eshop?id=sdjkcjnsd-njkw398njk-njskdcbj. Получаем вот такую JSON:
{
"shops":[
{
"active":false,
"additional_params_dictionary":"",
"apiPassword":"AgAAAAA2xaMuAAXwby5dKO5av0XslPGLxdkzUAA",
"apiToken":"FF000001AC70ED29",
"apiUrl":"https://app.kak2c.ru/api/beru/588589",
"autoSkuImportInterval":24,
"bitrixCatalogId":"e4a1920d-f154-7284-bad4-a7b9546032fe",
"bitrixCatalogName":"Каталог товаров KAK2C7",
"confirmationType":"SELF_CONFIRM",
"default":false,
"defaultVat":"NO_VAT",
"deliveryInfoID":"42fe7049-6c47-2bca-e690-c49267060e9f",
"eshopOfferIdType":"EXT_ID",
"extId":"21584150",
"id":"e4a1920d-f154-7284-bad4-a7b9546032fe",
"isActive":false,
"isDefault":false,
"isOrdersEnabled":false,
"name":"Bro Cosmetics",
"needAutoSkuImport":false,
"needCodConfirmation":true,
"needCopyOrderNumber":true,
"needExportStatuses":false,
"needPrepayConfirmation":false,
"needReserve":true,
"needRestsControl":true,
"ordersImportInterval":1,
"percentStock":100,
"prevPriceTypeID":"805a5315-4d39-523a-6d79-e90fcc056abd",
"priceTypeID":"35578ac2-7949-8b3f-cbd0-19cdb82a2046",
"pricesRestsExportInterval":1,
"reserveType":"ON_IMPORT",
"syncOrdersToEshopMode":"NO_SYNC",
"tenantOrganizationID":"ad68f1b6-8975-1179-9fe6-df8bbb6333f2",
"type":"BERU",
"warehouseID":"6805bc64-270f-ae7d-1231-773ff181e446"
}
],
"success":true
}
При этом нужно учесть что для tenantOrganization вместо объекта возвращается его id в поле tenantOrganizationID. То же сделано для warehouse-warehouseID, deliveryInfo-deliveryInfoID, prevPriceType-prevPriceTypeID и priceType-priceTypeID. Соответственно на фронте нужно получить эти объекты из базы по id.
2. Получения списка магазинов. Метода GET /api/lite/settings/eshop. Получаем файл аналогичный предыдущему, но вместо одного магазина в файле все магазины данного клиента.
3. Изменение и добавление магазина реализовано одной операцией. Метод POST /api/lite/settings/eshop. В теле метода передаем json:
{
"active":false,
"additional_params_dictionary":"",
"apiPassword":"AgAAAAA2xaMuAAXwby5dKO5av0XslPGLxdkzUAA",
"apiToken":"FF000001AC70ED29",
"apiUrl":"https://app.kak2c.ru/api/beru/588589",
"autoSkuImportInterval":24,
"bitrixCatalogId":"e4a1920d-f154-7284-bad4-a7b9546032fe",
"bitrixCatalogName":"Каталог товаров KAK2C7",
"confirmationType":"SELF_CONFIRM",
"default":false,
"defaultVat":"NO_VAT",
"deliveryInfoID":"42fe7049-6c47-2bca-e690-c49267060e9f",
"eshopOfferIdType":"EXT_ID",
"extId":"21584150",
"id":"e4a1920d-f154-7284-bad4-a7b9546032fe",
"isActive":false,
"isDefault":false,
"isOrdersEnabled":false,
"name":"Bro Cosmetics",
"needAutoSkuImport":false,
"needCodConfirmation":true,
"needCopyOrderNumber":true,
"needExportStatuses":false,
"needPrepayConfirmation":false,
"needReserve":true,
"needRestsControl":true,
"ordersImportInterval":1,
"percentStock":100,
"prevPriceTypeID":"805a5315-4d39-523a-6d79-e90fcc056abd",
"priceTypeID":"35578ac2-7949-8b3f-cbd0-19cdb82a2046",
"pricesRestsExportInterval":1,
"reserveType":"ON_IMPORT",
"syncOrdersToEshopMode":"NO_SYNC",
"tenantOrganizationID":"ad68f1b6-8975-1179-9fe6-df8bbb6333f2",
"type":"BERU",
"warehouseID":"6805bc64-270f-ae7d-1231-773ff181e446"
}
изменение происходит если заполнен id, добавление при пустом id. Также нужно учесть что нужно передать tenantOrganizationID, warehouseID, eliveryInfoID, revPriceTypeID и priceTypeID.
4. Удаление магазина. Метод DELETE /api/lite/settings/eshop?id=sdjkcjnsd-njkw398njk-njskdcbj. Удаляет магазин из базы.