Перед початком
Вітаємо вас в API CRM МійДроп! CRM має дві версії: для постачальників і для дропшиперів. У цій документації описані способи інтеграції для обох версій у відповідних розділах.
Приклади готового коду на PHP | Наш GitHub
Версія для постачальників
Авторизація
Для авторизації у всіх запитах до API використовуйте заголовок X-API-KEY
. API-ключ можна знайти на цій сторінці у розділі "Інтеграції".
Увага! Сторінка доступна лише після реєстрації.
Також обов’язковим заголовком при запитах є Content-Type: application/json
Створення замовлення
Запит для додавання нового замовлення в CRM. Приклад коду на PHP для інтеграції простих лендингів і автоматичної передачі замовлень із них доступний на нашому GitHub.
POST https://backend.mydrop.com.ua/vendor/api/orders
Приклад запиту:
{
"name": "Іван Петренко",
"phone": "+380960000001",
"products": [
{
"product_title": "Кеди Nike",
"product_sku": "ld-1245",
"manufacturer": "nike",
"assembly_price": 450,
"price": 780,
"amount": 1,
"size_title": "XL",
"size_note": "30 см"
}
],
"city": "Київ",
"warehouse_number": "1",
"order_source": "Лендинг",
"traffic_source": "AdWords",
"utm_source": "some_utm_source",
"utm_medium": "some_utm_medium",
"utm_term": "some_utm_term",
"utm_content": "some_utm_content",
"utm_campaign": "some_utm_campaign"
}
Приклад відповіді: такий самий, як при запиті на отримання даних про замовлення за ID (наведено нижче в документації)
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/api/orders
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
name | ім’я покупця | Іван Петренко | так |
phone | телефон | +380960000001 | так |
products | масив із товарами замовлення (структура описана нижче) | так | |
dropshipper_id | ID дропшипера (необов’язково для роздрібних замовлень) | ні | |
delivery_payment | сума накладеного платежу | 1000 | ні |
prepay_amount | сума передоплати | 200 | ні |
delivery_service | служба доставки | nova_poshta, ukr_poshta, meest | ні |
city | місто для відправлення | Київ | ні |
warehouse_number | відділення пошти | 1 | ні |
delivery_paid | доставка за рахунок відправника | false | ні |
pickup | самовивіз | false | ні |
home_delivery | кур’єрська доставка | false | ні |
street | вулиця текстом | вул. Садова (Дарницький р-н, Осокорки) | так, якщо home_delivery = true |
street_ref | ref вулиці з бази вулиць Нової Пошти | 3c5dde87-684a-11e6-8304-00505688561d | так, якщо home_delivery = true і delivery_service = nova_poshta |
house_number | номер будинку | 3 | так, якщо home_delivery = true |
flat_number | номер квартири | 15 | так, якщо home_delivery = true |
volumetric_length | довжина коробки посилки (в см) | 10 | ні |
volumetric_height | висота коробки посилки (в см) | 20 | ні |
volumetric_width | ширина коробки посилки (в см) | 30 | ні |
weight | вага коробки посилки (в кг) | 30 | ні |
delivery_address | адреса доставки текстом (для служб доставки без повної інтеграції) | вул. Миру, буд. 3, кв. 15 | так, лише для служб без повної інтеграції |
ttn | номер ТТН (необов’язково, буде згенерований автоматично) | 20450535304114 | ні |
description | примітка | ні | |
order_source | джерело замовлення | Лендинг | ні |
traffic_source | джерело трафіку | AdWords | ні |
payment_status | статус оплати текстом | Не оплачено | ні |
utm_source | utm_source | ні | |
utm_medium | utm_medium | ні | |
utm_term | utm_term | ні | |
utm_content | utm_content | ні | |
utm_campaign | utm_campaign | ні |
JSON-поля об'єкта структури products
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
title | назва нового або існуючого товару | Кеди Nike | так, якщо не вказано sku |
sku | артикул | ld-1245 | так, якщо не вказано title |
manufacturer | виробник | nike | ні |
assembly_price | закупівельна ціна товару (собівартість) | 450 | ні, якщо не вказано — буде автоматично підставлено значення з картки товару |
drop_price | дроп. ціна товару | 600 | ні, якщо не вказано — буде автоматично підставлено значення з картки товару |
price | ціна продажу товару | 780 | так |
amount | кількість товару | 1 | так |
size_title | варіація / розмір товару | XL | ні |
size_note | примітка до розміру | 30 см | ні |
Отримання списку замовлень
Запит для отримання списку замовлень.
GET https://backend.mydrop.com.ua/vendor/api/orders
Приклад відповіді:
{
"results": [
{
"id": 123,
"index": 34,
"ttn": "20450535304114",
"returnTtn": null,
"name": "Іван Петренко",
"phone": "+380960000001",
"products": [
{
"product": {
"id": 3210,
"title": "Футболка синя",
"sku": "t-shirt-1"
},
"amount": 1,
"assembly_price": 100,
"drop_price": 300,
"price": 500,
"size": {
"id": 342,
"title": "L",
"note": null
}
}
],
"dateTime": "2022-05-05T21:21:40.489181",
"orderStatus": {
"id": 145,
"title": "Новий",
"type": "success",
"final": false
},
"prepayAmount": 0,
"deliveryPayment": 500,
"total": 500,
"dropPrice": 300,
"dropshipperPayout": 200,
"realMargin": 200,
"loss": 0,
"directDeliveryLoss": 51,
"reverseDeliveryLoss": null,
"deliveryService": "nova_poshta",
"pickup": false,
"homeDelivery": false,
"street": null,
"streetRef": null,
"houseNumber": null,
"city": "м. Київ, Київська",
"cityRef": "e718a680-4b33-11e4-ab6d-005056801329",
"warehouseNumber": "1",
"warehouseRef": "ec09d88-e1c2-11e3-8c4a-0050568002cf",
"description": "Приклад примітки",
"createdWith": "api",
"vendorDropshipper": {
"id": 4343,
"dropshipper": {
"id": 1,
"name": "Євген"
}
},
"weight": 0.5,
"deliveryStatusCode": "1",
"deliveryStatus": "Нова пошта очікує надходження від відправника",
"returnDeliveryStatusCode": null,
"returnDeliveryStatus": null,
"manager": {
"id": 45,
"name": "Аня"
}
}
],
"meta": {
"page": 1,
"from": 1,
"to": 20,
"perPage": 20,
"totalCount": 188,
"totalPages": 10
}
}
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/api/orders
Query-параметри
Параметр | Опис | Приклад значення | Обов’язково |
---|---|---|---|
page | сторінка | 1 | так |
per_page | елементів на сторінці (максимум 50) | 20 | так |
sub_type | підтип замовлення, якщо вказано dropshippers — виводить лише замовлення з дропшиперами, якщо вказати all — виведе всі замовлення, якщо вказати not_dropshippers — виведе всі роздрібні (без дропшиперів) | all | ні |
date_type | тип фільтрації за часом (period, day) | period | ні |
date | день | 29/03/2023 | так, якщо date_type = day |
date_start | дата початку періоду | 19/03/2023 | так, якщо date_type = period |
date_end | дата кінця періоду | 29/03/2023 | так, якщо date_type = period |
Отримання даних замовлення за ID
Запит для отримання інформації про конкретне замовлення за його ID (внутрішній ID із CRM, можна отримати при запиті списку замовлень).
GET https://backend.mydrop.com.ua/vendor/api/orders/<order_id>
Приклад відповіді:
{
"id": 123,
"index": 34,
"ttn": "20450535304114",
"returnTtn": null,
"name": "Іван Петренко",
"phone": "+380960000001",
"products": [
{
"product": {
"id": 3210,
"title": "Футболка синя",
"sku": "t-shirt-1"
},
"amount": 1,
"assembly_price": 100,
"drop_price": 300,
"price": 500,
"size": {
"id": 342,
"title": "L",
"note": null
}
}
],
"dateTime": "2022-05-05T21:21:40.489181",
"orderStatus": {
"id": 145,
"title": "Новий",
"type": "success",
"final": false
},
"prepayAmount": 0,
"deliveryPayment": 500,
"total": 500,
"dropPrice": 300,
"dropshipperPayout": 200,
"realMargin": 200,
"loss": 0,
"directDeliveryLoss": 51,
"reverseDeliveryLoss": null,
"deliveryService": "nova_poshta",
"pickup": false,
"homeDelivery": false,
"street": null,
"streetRef": null,
"houseNumber": null,
"city": "м. Київ, Київська",
"cityRef": "e718a680-4b33-11e4-ab6d-005056801329",
"warehouseNumber": "1",
"warehouseRef": "ec09d88-e1c2-11e3-8c4a-0050568002cf",
"description": "Приклад примітки",
"createdWith": "api",
"vendorDropshipper": {
"id": 4343,
"dropshipper": {
"id": 1,
"name": "Євген"
}
},
"weight": 0.5,
"deliveryStatusCode": "1",
"deliveryStatus": "Нова пошта очікує надходження від відправника",
"returnDeliveryStatusCode": null,
"returnDeliveryStatus": null,
"manager": {
"id": 45,
"name": "Аня"
}
}
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/api/orders/<order_id>
URL-параметри
Параметр | Опис | Обов’язково |
---|---|---|
order_id | ID замовлення | так |
Зміна даних замовлення
Запит для зміни номера ТТН і/або статусу замовлення. Якщо потрібно змінити лише один із параметрів — вкажіть тільки його у запиті. Переглянути стандартні та налаштувати власні статуси замовлень можна на цій сторінці після реєстрації в CRM.
PUT https://backend.mydrop.com.ua/vendor/api/orders/<order_id>
Приклад запиту:
{
"ttn": "20450535304114",
"status": "Продаж",
"manualStatus": false
}
Приклад відповіді: такий самий, як при запиті на отримання даних про замовлення за ID
HTTP-запит
PUT https://backend.mydrop.com.ua/vendor/api/orders/<order_id>
URL-параметри
Параметр | Опис | Обов’язково |
---|---|---|
order_id | ID замовлення | так |
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
name | ім’я покупця | Іван Петренко | так |
phone | телефон | +380960000001 | так |
products | масив товарів замовлення (структура нижче) | так | |
products_mode | режим роботи з товарами: replace або add | replace - замінити існуючі товари на нові, add - доповнити список товарів | так |
delivery_payment | сума накладеного платежу | 1000 | ні |
prepay_amount | сума передоплати | 200 | ні |
change_delivery_address | змінювати дані доставки? | true | ні |
delivery_service | служба доставки | nova_poshta, ukr_poshta, rozetka_delivery, meest | ні |
city | місто відправлення | Київ | ні |
warehouse_number | відділення пошти | 1 | ні |
delivery_paid | доставка за рахунок відправника | false | ні |
pickup | самовивіз | false | ні |
home_delivery | кур’єрська доставка | false | ні |
street | вулиця текстом | вул. Садова (Дарницький р-н, Осокорки) | так, якщо home_delivery = true |
street_ref | ref вулиці з бази Нової Пошти | 3c5dde87-684a-11e6-8304-00505688561d | так, якщо home_delivery = true та delivery_service = nova_poshta |
house_number | номер будинку | 3 | так, якщо home_delivery = true |
flat_number | номер квартири | 15 | так, якщо home_delivery = true |
volumetric_length | довжина коробки (см) | 10 | ні |
volumetric_height | висота коробки (см) | 20 | ні |
volumetric_width | ширина коробки (см) | 30 | ні |
weight | вага коробки (кг) | 30 | ні |
delivery_address | адреса доставки текстом (для служб без повної інтеграції) | вул. Миру, буд. 3, кв. 15 | так, лише для служб без повної інтеграції |
description | примітка | ні | |
ttn | номер ТТН | 20450535304114 | ні |
status | статус замовлення текстом | Продаж | ні |
payment_status | статус оплати текстом | Не оплачено | ні |
order_source | джерело замовлення | ні | |
traffic_source | джерело трафіку | ні | |
manual_status | вказати статус вручну (при значенні true статус замовлення в подальшому не буде змінюватися автоматично на основі зміни статусу ТТН) | false | ні |
Отримання списку дій із замовленнями
Запит для отримання списку дій із замовленнями.
Параметр serviceAction вказує, чи дія була здійснена автоматично CRM, чи вручну вами або вашим менеджером.
Можливі типи дій actionType:
Значення | Опис |
---|---|
created | замовлення створено |
edited | замовлення відредаговано |
ttn_generated | ТТН згенеровано |
deleted | замовлення видалено |
status_changed | змінено статус на вказаний у description |
restored | замовлення відновлено |
delivery_payment_received | накладений платіж відзначений як отриманий |
delivery_payment_changed | змінено суму накладеного платежу |
dropshipper_payout_status_changed | змінено статус виплати дропшиперу (див. description) |
У прикладі відповіді сервер повертає дві дії з замовленням: перша — actionType: edited, serviceAction: false — менеджер Аня вручну редагувала замовлення.
Друга — actionType: status_changed, serviceAction: true — CRM автоматично змінила статус на "Продаж" після відстеження ТТН.
GET https://backend.mydrop.com.ua/vendor/api/order_actions
Приклад відповіді:
{
"results": [
{
"actionType": "status_changed",
"dateTime": "2023-10-10T16:49:20.477181",
"description": "Продаж",
"id": 7781714,
"serviceAction": true,
"vendor": 1558,
"vendorId": 1558,
"vendorManager": null,
"vendorManagerId": null,
"vendorOrder": {
"id": 1806163,
"index": 1,
"name": "Мирний Сергій"
},
"vendorOrderId": 1806163
},
{
"actionType": "edited",
"dateTime": "2023-10-10T16:21:58.510118",
"description": null,
"id": 7781713,
"serviceAction": false,
"vendor": 1558,
"vendorId": 1558,
"vendorManager": {
"id": 17,
"name": "Аня"
},
"vendorManagerId": 17,
"vendorOrder": {
"id": 1806163,
"index": 1,
"name": "Мирний Сергій"
},
"vendorOrderId": 1806163
}
],
"meta": {
"page": 1,
"from": 1,
"to": 20,
"perPage": 20,
"totalCount": 188,
"totalPages": 10
}
}
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/api/order_actions
Query-параметри
Параметр | Опис | Приклад значення | Обов’язково |
---|---|---|---|
page | сторінка | 1 | так |
per_page | кількість на сторінці (макс. 50) | 20 | так |
last_id | ID останньої обробленої події | 7781713 | ні |
Використовуйте параметр last_id, щоб виключити вже оброблені події. У вибірці будуть лише нові дії.
Отримання списку запитів на виплату
Запит для отримання списку запитів на виплату.
GET https://backend.mydrop.com.ua/vendor/payout_requests
Приклад відповіді:
{
"results": [
{
"dateTime": "2023-05-31T20:18:07.894076",
"id": 101283,
"loss": 450.0,
"margin": 1750.0,
"ordersCount": 4,
"payout": 1300.0,
"payoutAddress": "5644 3455 4323 3234 Кириченко Сергій Павлович",
"status": "Не виплачено",
"updatedDateTime": null,
"vendorDropshipper": {
"id": 5,
"dropshipperId": 12345,
"name": "Тестовий дропшиппер"
},
"vendorDropshipperId": 5
}
],
"meta": {
"page": 1,
"from": 1,
"to": 20,
"perPage": 20,
"totalCount": 188,
"totalPages": 10
}
}
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/payout_requests
Query-параметри
Параметр | Опис | Приклад значення | Обов’язково |
---|---|---|---|
page | сторінка | 1 | так |
per_page | кількість на сторінці (макс. 50) | 20 | так |
status | статус запиту для фільтрації | Не виплачено | ні |
Отримання списку замовлень у виплаті
Запит для отримання списку замовлень у виплаті.
GET https://backend.mydrop.com.ua/vendor/payout_requests/<payout_request_id>/orders
URL-параметри
Параметр | Опис | Обов’язково |
---|---|---|
payout_request_id | ID виплати | так |
Приклад відповіді:
{
"results": [
{
"dateTime": "2023-05-31T02:55:30.012593",
"deliveryPayment": 1030,
"description": null,
"dropPrice": 315,
"dropshipperLockedAmount": 0,
"dropshipperPayout": -159,
"dropshipperPayoutStatus": "Не виплачено",
"dropshipperRealMargin": 0,
"hasDiscount": true,
"id": 1775135,
"index": 1,
"loss": 153,
"orderStatus": {
"id": 174,
"title": "Повернення отримано"
},
"prepayAmount": 0,
"productsFormatted": "Сукня FO-5512 (FO-5512) (S-M)",
"surname": "Мирний",
"total": 400,
"ttn": "20450718777645",
"ttnTextStatus": "Відмова одержувача"
}
],
"meta": {
"page": 1,
"from": 1,
"to": 20,
"perPage": 20,
"totalCount": 188,
"totalPages": 10
}
}
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/payout_requests/<payout_request_id>/orders
Query-параметри
Параметр | Опис | Приклад значення | Обов’язково |
---|---|---|---|
page | сторінка | 1 | так |
per_page | кількість на сторінці (макс. 50) | 20 | так |
Зміна статусу виплати
POST https://backend.mydrop.com.ua/vendor/payout_requests/<payout_request_id>/status
URL-параметри
Параметр | Опис | Обов’язково |
---|---|---|
payout_request_id | ID виплати | так |
Приклад запиту:
{
"status": "Виплачено"
}
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/payout_requests/<payout_request_id>/status
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
status | новий статус виплати | Виплачено | так |
Отримання списку товарів і категорій
Попередньо сформуйте вивантаження YML/XML, щоб ця вивантаження товарів і категорій стала доступною у форматі JSON. Альтернативно для вас завжди доступні вивантаження в інших форматах.
GET https://backend.mydrop.com.ua/vendor/api/export/products/json
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/api/products
Оновлення залишків і цін товарів
У запиті можна вказати лише ті поля й розміри, які ви хочете змінити.
Не обов’язково вказувати всі типи цін, якщо ви хочете змінити лише дроп. ціну.
Або вкажіть тільки розмір L у масиві sizes, якщо потрібно змінити наявність тільки для цього розміру.
Для пошуку товару в базі використовуйте title
, sku
або import_id
— на вибір, але обов’язково щось одне.
Послідовність перевірки: import_id
-> sku
-> title
.
У прикладі нижче для товару з артикулом t-shirt-1 ми змінюємо всі три типи цін і залишки для розмірів L і XL. Для товару з артикулом t-shirt-2 ми змінюємо тільки наявність для розміру S.
POST https://backend.mydrop.com.ua/vendor/api/products
Приклад запиту:
[
{
"sku": "t-shirt-1",
"assembly_price": 100,
"drop_price": 200,
"price": 300,
"sizes": [
{
"title": "L",
"amount": 10
},
{
"title": "XL",
"amount": 20
}
]
},
{
"sku": "t-shirt-2",
"sizes": [
{
"title": "S",
"amount": 5
}
]
}
]
Приклад відповіді:
{
"productsUpdatedCount": 2,
"sizesUpdatedCount": 3,
"status": "ok"
}
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/api/products
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
title | назва товару | Футболка біла | title, sku, import_id на вибір |
sku | артикул | t-shirt-1 | title, sku, import_id на вибір |
import_id | ID імпорту з вигрузки | 3214325 | title, sku, import_id на вибір |
assembly_price | собівартість | 100 | ні |
opt_price | оптова ціна | 150 | ні |
drop_price | дроп. ціна | 200 | ні |
price | РРЦ / ціна продажу | 300 | ні |
sizes | масив розмірів (структура описана нижче) | ні |
JSON-поля об’єкта структури sizes
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
title | назва варіації (розміру) | L | title або sku |
sku | артикул варіації (розміру) | t-shirt-1-L | title або sku |
amount | новий залишок (кількість товару) | 10 | так |
Завантаження фотографій
Для товарів можна дозавантажити фотографії. Для цього використовуйте Content-Type: multipart/form-data
.
Поле для передачі binary-даних зображення називається file
, ім’я файлу разом із розширенням передається в полі filename
.
Можна передати значення import_id
через query-параметри. Таким чином якщо зображення вже є в системі, воно буде замінене на нове, але збереже старе filename
.
Якщо фото з таким import_id
ще не існує, воно буде завантажене і отримає нове значення filename
.
POST https://backend.mydrop.com.ua/vendor/api/products/upload
POST https://backend.mydrop.com.ua/vendor/api/products/upload?import_id=1234
Приклад запиту:
------WebKitFormBoundarypgPLKMBApAKPyevw
Content-Disposition: form-data; name="file"; filename="2023-01-28_14-51.png"
Content-Type: image/png
------WebKitFormBoundarypgPLKMBApAKPyevw--
Приклад відповіді:
{
"filename": "b8583c9d20a27e3c35ec.jpg"
}
Query-параметри
Параметр | Опис | Приклад значення | Обов’язково |
---|---|---|---|
import_id | зовнішній ID для оновлення фотографій | 1234 | ні |
Завантаження фотографій за URL
Якщо у вас не вийшло завантажити фотографії попереднім способом, то ви можете завантажити його, наприклад, на файлообмінник, отримати публічне посилання на зображення і завантажити фото в CRM.
POST https://backend.mydrop.com.ua/vendor/api/products/upload/by_url
Приклад запиту:
{
"url": "https://somesite.com/image.jpg",
"extension": "jpg",
"import_id": "1234"
}
Приклад відповіді:
{
"filename": "b8583c9d20a27e3c35ec.jpg"
}
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/api/products/upload/by_url
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
url | посилання на зображення | https://somesite.com/image.jpg | так |
extension | розширення файлу | jpg | так, якщо в URL немає розширення |
import_id | зовнішній ID для оновлення фотографій | 1234 | ні |
Додавання і зміна категорій
За допомогою цього методу можна додати категорії та підкатегорії для товарів у CRM МійДроп. Будь-яка категорія може мати будь-який ступінь вкладеності. Тобто підкатегорія може містити в собі ще список підкатегорій і т.д.
При створенні категорії ви можете використовувати поле import_id
, щоб призначити їй зовнішній ID з вашої системи. Спочатку завантажуйте категорії кореневого каталогу (у яких немає батьків), потім по черзі підкатегорії, які знаходяться всередині них.
Використовуйте поле parent_id
, якщо створюєте підкатегорії і хочете вказати ID батька, отриманий з поля id
при створенні батьківської категорії раніше. Використовуйте поле parent_import_id
, щоб вказати зовнішній ID батьківської категорії при створенні підкатегорії (по суті повинен дорівнювати значенню import_id
при створенні батьківської категорії).
Якщо товар із зазначеним id
або import_id
вже доданий до системи, запит оновить інформацію про дану категорію. Якщо в запиті не буде вказано parent_id
або parent_import_id
, то категорія не матиме батьківської, а отже стане кореневою категорією.
POST https://backend.mydrop.com.ua/vendor/api/categories
Приклад запиту:
{
"title": "Футболки",
"import_id": "1234",
"parent_import_id": "4321",
"filename": "b8583c9d20a27e3c35ec.jpg"
}
Приклад відповіді:
{
"id": 3256,
"title": "Футболки",
"import_id": "1234",
"parent_id": 8345,
"image": {"id": 123, "filename": "b8583c9d20a27e3c35ec.jpg"}
}
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/api/categories
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
title | назва | Футболки | так |
id | ID категорії | 4547 | якщо хочете оновити категорію за ним |
import_id | зовнішній ID категорії | 1234 | якщо хочете призначити зовнішній ID або оновити категорію за ним |
parent_id | ID батьківської категорії | 7345 | parent_id або parent_import_id, якщо створюєте підкатегорію |
parent_import_id | зовнішній ID батька | 4321 | parent_id або parent_import_id, якщо створюєте підкатегорію |
filename | зображення для обкладинки | b8583c9d20a27e3c35ec.jpg | ні |
Редагування і створення товарів
Цей запит підходить для того, щоб створювати та оновлювати товари через один запит, що дозволяє оновлювати базу товарів в CRM без необхідності додатково перевіряти, чи створений раніше вже цей товар.
У запиті можна вказати ті варіації (розміри) і фото, які ви хочете додати до вже існуючих в товарі. Можна вказувати вже раніше додані варіації (розміри), вони не будуть повторно додані, але їх наявність буде оновлена на вказане в запиті.
Дублікати фотографії також не будуть завантажуватися, якщо ім'я файлу збігається з тим, який вже завантажений. При цьому не обов'язково вказувати в списку фотографії, які були раніше додані. Досить вказати ті, якими необхідно доповнити картку товару.
Для пошуку товару в базі використовуйте title
, sku
або import_id
на вибір, але обов'язково один з них, інакше товар не буде знайдений і не оновиться. Послідовність перевірки import_id
-> sku
-> title
.
Для вказівки категорії для товару використовуйте category_id
або category_import_id
. Якщо не вказати жодне з полів, то категорія не буде змінена. category_id
- це id категорії, отриманий при запиті /vendor/api/categories
. category_import_id
- це зовнішній ID категорії, такий же, як передаєте (якщо передаєте) при запиті /vendor/api/categories
, поле import_id
.
Не обов'язково вказувати всі поля: images
, description
і sizes
, якщо хочете доповнити щось одне з них. Якщо товар раніше не був доданий, використовуйте поля title
, sku
, assembly_price
, drop_price
, price
, щоб заповнити картку товару даними.
У прикладі нижче для товару з артикулом t-shirt-1 ми додаємо розміри L і XL, дві нові фотографії і змінюємо опис. Для товару з артикулом t-shirt-2 ми додаємо тільки 1 нову фотографію.
POST https://backend.mydrop.com.ua/vendor/api/products/create_or_update
Приклад запиту:
[
{
"title": "Футболка чорна",
"sku": "t-shirt-1",
"description": "Нове опис",
"sizes": [
{
"title": "L",
"amount": 10
},
{
"title": "XL",
"amount": 20
}
],
"images": ["b8583c9d20a27e3c35ec.jpg", "2180be21d806a7f8a182.jpg"]
},
{
"sku": "t-shirt-2",
"images": ["a947323bf72815445857.jpg"]
}
]
Приклад відповіді:
{
"productsUpdatedCount": 2,
"status": "ok"
}
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/api/products/create_or_update
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
title | назва | Футболка біла | title, sku, import_id на вибір, обов’язково якщо новий товар |
sku | артикул | t-shirt-1 | title, sku, import_id на вибір |
import_id | ID імпорту з вигрузки | 3214325 | title, sku, import_id на вибір |
category_id | ID категорії | 44345 | category_id або category_import_id |
category_import_id | ID імпорту категорії | 543343 | category_id або category_import_id |
description | опис товару | ні | |
sizes | масив з новими розмірами товару (структура описана нижче) | ні | |
images | масив із заголовками зображень, отриманих під час завантаження | ні |
JSON-поля об’єкта структури sizes
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
title | назва нової варіації (розміру) | L | так |
sku | артикул нової варіації (розміру) | t-shirt-1-L | ні |
amount | початкова наявність (кількість товару) | 10 | так |
Отримання списку дропшипперів
Запит для отримання списку дропшипперів та пошуку по них.
GET https://backend.mydrop.com.ua/vendor/vendor_dropshippers
Приклад відповіді:
{
"meta": {
"currentPage": 1,
"from": 1,
"to": 1,
"totalCount": 1,
"totalPages": 1
},
"results": [
{
"dateTime": "2023-08-18T12:34:14.277747",
"dropshipper": {
"id": 1,
"name": "Тестовий дропшиппер",
"real": true
},
"dropshipperId": 1,
"group": {"id": 1, "title": "Топові"},
"id": 5,
"link": "t.me/someone",
"name": "Тестовий",
"phone": "+380960000001"
}
]
}
HTTP-запит
GET https://backend.mydrop.com.ua/vendor/vendor_dropshippers
Query-параметри
Параметр | Опис | Приклад значення | Обов’язково |
---|---|---|---|
page | сторінка | 1 | ні |
per_page | кількість на сторінці (макс. 50) | 20 | ні |
search_query | пошуковий запит (ID, ім’я, посилання, телефон, адреса для виплат, примітка) | ні | |
only_not_verified | показати тільки не верифікованих | false | ні |
Створення нового дропшиппера
Запит для додавання нового дропшиппера в CRM (без особистого кабінету).
POST https://backend.mydrop.com.ua/vendor/vendor_dropshippers
Приклад запиту:
{
"name": "Тестовий Дропшиппер",
"phone": "0981234567",
"link": "https://t.me/test",
"note": "Приклад примітки",
"payoutAddress": "1234 4321 1234 4321",
"shopLink": "https://instagram.com/test"
}
Приклад відповіді: такий самий, як при отриманні списку дропшипперів
HTTP-запит
POST https://backend.mydrop.com.ua/vendor/vendor_dropshippers
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
name | ім’я дропшиппера | Тестовий Дропшиппер | так |
phone | телефон | 0981234567 | ні |
link | контакт у соцмережах | https://t.me/test | ні |
note | примітка | ні | |
payoutAddress | адреса для виплат | 1234 4321 1234 4321 | ні |
shopLink | посилання на магазин | https://instagram.com/test | ні |
Версія для дропшипперів
Отримання списку замовлень
GET https://backend.mydrop.com.ua/dropshipper/api/orders
Приклад відповіді:
{
"results": [
{
"id": 123,
"index": 34,
"ttn": "20450535304114",
"name": "Іван Петренко",
"phone": "+380960000001",
"products": [
{
"product": {
"id": 3210,
"title": "Футболка синя",
"sku": "t-shirt-1",
"import_id": "4321123"
},
"amount": 1,
"drop_price": 300,
"price": 500,
"size": {
"id": 342,
"title": "L",
"note": null
}
}
],
"dateTime": "2022-05-05T21:21:40.489181",
"orderStatus": {
"id": 145,
"title": "Новий",
"type": "success",
"final": false
},
"prepayAmount": 0,
"deliveryPayment": 500,
"total": 500,
"dropPrice": 300,
"payout": 200,
"realMargin": 200,
"loss": 0,
"directDeliveryLoss": 51,
"reverseDeliveryLoss": null,
"deliveryService": "nova_poshta",
"pickup": false,
"homeDelivery": false,
"street": null,
"streetRef": null,
"houseNumber": null,
"city": "м. Київ, Київська",
"cityRef": "e718a680-4b33-11e4-ab6d-005056801329",
"warehouseNumber": "1",
"warehouseRef": "ec09d88-e1c2-11e3-8c4a-0050568002cf",
"description": "Приклад примітки",
"dropshipperVendor": {
"id": 4343,
"vendor": {
"id": 1,
"name": "Приклад постачальника"
}
},
"deliveryStatusCode": "1",
"deliveryStatus": "Нова пошта очікує надходження від відправника"
}
],
"meta": {
"page": 1,
"from": 1,
"to": 20,
"perPage": 20,
"totalCount": 188,
"totalPages": 10
}
}
HTTP-запит
GET https://backend.mydrop.com.ua/dropshipper/api/orders
Query-параметри
Параметр | Опис | Обов’язково |
---|---|---|
page | сторінка | так |
per_page | кількість на сторінці (макс. 50) | так |
Створення замовлення
Запит для створення нового замовлення в CRM. Приклад коду на PHP для інтеграції простих лендінгів і автоматичної передачі замовлень з них доступний на нашому GitHub.
POST https://backend.mydrop.com.ua/dropshipper/api/orders
Приклад відповіді:
{
"id": 123,
"index": 34,
"ttn": "20450535304114",
"name": "Іван Петренко",
"phone": "+380960000001",
"products": [
{
"product": {
"id": 3210,
"title": "Футболка синя",
"sku": "t-shirt-1",
"import_id": "4321123"
},
"amount": 1,
"drop_price": 300,
"price": 500,
"size": {
"id": 342,
"title": "L",
"note": null
}
}
],
"dateTime": "2022-05-05T21:21:40.489181",
"orderStatus": {
"id": 145,
"title": "Новий",
"type": "success",
"final": false
},
"prepayAmount": 0,
"deliveryPayment": 500,
"total": 500,
"dropPrice": 300,
"payout": 200,
"realMargin": 200,
"loss": 0,
"directDeliveryLoss": 51,
"reverseDeliveryLoss": null,
"deliveryService": "nova_poshta",
"pickup": false,
"homeDelivery": false,
"street": null,
"streetRef": null,
"houseNumber": null,
"city": "м. Київ, Київська",
"cityRef": "e718a680-4b33-11e4-ab6d-005056801329",
"warehouseNumber": "1",
"warehouseRef": "ec09d88-e1c2-11e3-8c4a-0050568002cf",
"description": "Приклад примітки",
"dropshipperVendor": {
"id": 4343,
"vendor": {
"id": 1,
"name": "Приклад постачальника"
}
},
"deliveryStatusCode": "1",
"deliveryStatus": "Нова пошта очікує надходження від відправника"
}
HTTP-запит
POST https://backend.mydrop.com.ua/dropshipper/api/orders
JSON-поля при POST-запиті
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
name | ім’я покупця | Іван Петренко | так |
phone | телефон | +380960000001 | так |
products | масив товарів замовлення (структура нижче) | так | |
delivery_service | служба доставки | nova_poshta або ukr_poshta | ні |
city | місто відправлення | Київ | ні |
warehouse_number | відділення пошти | 1 | ні |
description | примітка | ні | |
ttn | номер ТТН (необов’язково, генерується автоматично) | 20450535304114 | ні |
order_source | джерело замовлення | Лендинг | ні |
traffic_source | джерело трафіку | AdWords | ні |
utm_source | utm_source | ні | |
utm_medium | utm_medium | ні | |
utm_term | utm_term | ні | |
utm_content | utm_content | ні | |
utm_campaign | utm_campaign | ні |
JSON-поля об'єкта products
Поле | Опис | Приклад значення | Обов’язково |
---|---|---|---|
vendor_name | назва постачальника | SomeDrop | так |
product_title | назва товару | Кеди Nike | так |
sku | артикул | ld-1245 | ні |
drop_price | дроп. ціна | 450 | ні |
price | ціна продажу | 780 | так |
amount | кількість товару | 1 | так |
size_title | варіація / розмір товару | XL | ні |
size_note | примітка до розміру | 30 см | ні |
Отримання інформації про замовлення
Запит для отримання інформації про конкретне замовлення за його ID
POST https://backend.mydrop.com.ua/dropshipper/api/orders/<order_id>
URL-параметри
Параметр | Опис | Обов’язково |
---|---|---|
order_id | ID замовлення | так |
Приклад відповіді:
{
"id": 123,
"index": 34,
"ttn": "20450535304114",
"name": "Іван Петренко",
"phone": "+380960000001",
"products": [
{
"product": {
"id": 3210,
"title": "Футболка синя",
"sku": "t-shirt-1",
"import_id": "4321123"
},
"amount": 1,
"drop_price": 300,
"price": 500,
"size": {
"id": 342,
"title": "L",
"note": null
}
}
],
"dateTime": "2022-05-05T21:21:40.489181",
"orderStatus": {
"id": 145,
"title": "Новий",
"type": "success",
"final": false
},
"prepayAmount": 0,
"deliveryPayment": 500,
"total": 500,
"dropPrice": 300,
"payout": 200,
"realMargin": 200,
"loss": 0,
"directDeliveryLoss": 51,
"reverseDeliveryLoss": null,
"deliveryService": "nova_poshta",
"pickup": false,
"homeDelivery": false,
"street": null,
"streetRef": null,
"houseNumber": null,
"city": "м. Київ, Київська",
"cityRef": "e718a680-4b33-11e4-ab6d-005056801329",
"warehouseNumber": "1",
"warehouseRef": "ec09d88-e1c2-11e3-8c4a-0050568002cf",
"description": "Приклад примітки",
"dropshipperVendor": {
"id": 4343,
"vendor": {
"id": 1,
"name": "Приклад постачальника"
}
},
"deliveryStatusCode": "1",
"deliveryStatus": "Нова пошта очікує надходження від відправника"
}