Перед началом
Приветствуем вас в 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, 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 | новый статус выплаты | Выплачено | да |
Обновление остатков и цен товаров
В запросе можно указать те поля и размеры, которые вы хотите изменить.
Не обязательно указывать все типы цен, если вы хотите поменять только Дроп. цену.
Или укажите только размер 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 родителя из CRM | 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": "Нова пошта очікує надходження від відправника"
}