Вы можете использовать API для получения заказов в вашу учетную систему. Вы можете хранить номера заказов из своей учетной системе в поле code и потом использовать его в своих запросах к сайту. Чтобы не получать дважды загруженные заказы используйте параметр exchange в запросах получения заказов. После получения заказ, присвойте заказу exchange равный 1.
Список заказов
Список можно фильтровать и производить поиск.
Путь: /wp-json/usam/v1/orders
Метод запроса: GET
- fields (массив) (не обязательно) — дополнительные поля. products — товары, shipping — документы отгрузки, payments — документы оплаты, taxes — налоги заказа, properties — свойства заказа;
- search (строка) (не обязательно) — поиск по номеру заказа, по артикулу товара, по названию товара, по телефону, электронной почте или адресу покупателя;
- status (строка, массив) (не обязательно) — коды статусов;
- exchange (число) (не обязательно) — заказы для выгрузки если 1, если 0 или параметр отсутствует все заказы;
- bank_account_id (число) (не обязательно) — банковский счет продавца;
- paid (число) (не обязательно) — статус оплаты, где 0 не оплаченные, 1 частично оплаченные, 2 оплаченные полностью;
- count (число) (не обязательно) — количество заказов, по умолчанию 10 заказов (не обязательный);
- paged (число) (не обязательно) — страница списка (не обязательный);
- orderby (строка) (не обязательно) — сортировать по полю;
- order (строка) (не обязательно) — направление сортировки ASC или DESC;
properties содержит данные покупателя.
Пример запроса
Запрос для получения всех заказов, не выгруженных в стороннюю учетную систему:
{
"fields": ["products","shipping","payments","properties"],
"exchange": 1
}
Заказ
Получает данные указанного заказа
Путь: /wp-json/usam/v1/order/(номер заказа)
Метод запроса: GET
Возвращает
{"id":"11615", "bank_account_id":"4", "number":"ИН0000011248", "totalprice":"933.00", "cost_price":"0.00", "type_price":"tp_1", "paid":"0", "date_paid":null,"code":"", "status":"waiting_payment", "type_payer":"1", "user_ID":"1", "contact_id":"12567", "company_id":"0", "manager_id":"0", "date_insert":"2021-10-28 12:13:27", "date_status_update":"2021-10-28 12:13:27", "shipping":[{"id":"10631", "order_id":"11615", "courier":"0", "name":"Курьером", "customer_id":"0", "customer_type":"company", "status":"pending", "track_id":"","doc_number":"","doc_data":null,"method":"2", "storage_pickup":"0", "storage":"1", "notes":"","totalprice":"933.00", "price":"200.00", "include_in_cost":"0", "date_insert":"2021-10-28 12:13:27", "date_delivery":null,"readiness_date":null,"readiness":"0", "export":"0", "tax_id":"0", "tax_name":"","tax_value":"0.00000", "tax_is_in_price":"1", "tax_rate":"0"}],"coupon_name":"","notes":null,"source":"order", "number_products":"2", "order_type":"order", "customer":{"billingfirstname":{"value":"тест", "name":"Имя"},"billinglastname":{"value":"Матейкин", "name":"Фамилия"},"company":{"value":false,"name":"Название компании"},"inn":{"value":false,"name":"ИНН"},"ppc":{"value":false,"name":"КПП"},"contact_person":{"value":false,"name":"Контактное лицо"},"company_email":{"value":false,"name":"Email"},"company_phone":{"value":false,"name":"Телефон"},"company_shippinglocation":{"value":false,"name":"Местоположение"},"billingmobilephone":{"value":"99999999999", "name":"Мобильный Телефон"},"company_shippingaddress":{"value":false,"name":"Адрес"},"billingphone":{"value":false,"name":"Телефон"},"billingemail":{"value":"it@radov39.ru", "name":"Email"},"shippinglocation":{"value":"981", "name":"Местоположение"},"shippingaddress":{"value":"yhtr", "name":"Адрес"},"shippingnotesclient":{"value":"","name":"Заметки к заказу"},"company_adr":{"value":false,"name":"Юридический адрес"}},"products":[{"id":"40485", "product_id":"32536", "name":"Миска Ретро-Спешл 2,4 л пластиковая крышка", "order_id":"11615", "old_price":"930.00", "product_day":"0", "price":"744.00", "purchase_price":"0.00", "quantity":"1.000", "unit_measure":"thing", "bonus":"37", "subscribed":"0", "date_insert":"2021-10-28 12:13:27"},{"id":"40486", "product_id":"47165", "name":"Тарелка Океан Эклипс 20 см", "order_id":"11615", "old_price":"66.00", "product_day":"0", "price":"63.00", "purchase_price":"0.00", "quantity":"3.000", "unit_measure":"thing", "bonus":"3", "subscribed":"0", "date_insert":"2021-10-28 12:13:27"}],"payment":[{"id":"10992", "document_type":"","document_id":"11615", "bank_account_id":"4", "document_number":"PH0000000010564", "external_document":"","date_payed":null,"date_insert":"2021-11-05 13:06:53", "note":"","sum":"933.00", "order_id":"0", "name":"Оплата картой через Сбербанк", "status":"1", "payment_type":"card", "gateway_id":"13", "gateway":"","transactid":""},{"id":"10991", "document_type":"","document_id":"11615", "bank_account_id":"4", "document_number":"PH0000000010563", "external_document":"","date_payed":null,"date_insert":"2021-11-05 13:06:48", "note":"","sum":"933.00", "order_id":"0", "name":"Оплата картой через Сбербанк", "status":"1", "payment_type":"card", "gateway_id":"13", "gateway":"","transactid":""},{"id":"10990", "document_type":"","document_id":"11615", "bank_account_id":"4", "document_number":"PH0000000010562", "external_document":"","date_payed":null,"date_insert":"2021-11-05 11:59:08", "note":"","sum":"933.00", "order_id":"0", "name":"Оплата картой через Сбербанк", "status":"1", "payment_type":"card", "gateway_id":"13", "gateway":"","transactid":""},{"id":"10989", "document_type":"","document_id":"11615", "bank_account_id":"4", "document_number":"PH0000000010561", "external_document":"","date_payed":null,"date_insert":"2021-11-05 11:57:01", "note":"","sum":"933.00", "order_id":"0", "name":"Оплата картой через Сбербанк", "status":"1", "payment_type":"card", "gateway_id":"13", "gateway":"","transactid":""},{"id":"10983", "document_type":"order", "document_id":"11615", "bank_account_id":"4", "document_number":"PH0000000010555", "external_document":"","date_payed":null,"date_insert":"2021-10-28 12:13:27", "note":"","sum":"933.00", "order_id":"0", "name":"Оплата картой через Сбербанк", "status":"1", "payment_type":"card", "gateway_id":"13", "gateway":"","transactid":""}],"taxes":[]}
- id — номер заказа
- code — внешний номер заказа
- number — номер заказа, назначаемый по выбору менеджера сайта
- bank_account_id — номер компании продавца
- totalprice — полная сумма заказа
- cost_price — себестоимость
- type_price — тип цены
- paid — статус оплаты
- date_paid — дата оплаты
- status — код статуса заказа
- type_payer — тип плательщика
- user_ID — номер покупателя, если он зарегистрирован
- contact_id — номер покупателя в базе CRM
- company_id — номер компании в базе CRM
- manager_id — номер менеджера
- date_insert — дата заказа
- date_status_update — дата обновления статуса
- shipping — массив документов отгрузок
- products — массив товаров заказа
- payments — массив документов оплаты
- properties — данные покупателя и другие свойства заказа
- taxes — массив налогов на товары
Пример запроса
Получить данные 10 заказа
/wp-json/usam/v1/order/10
Обновить заказ
Обновить данные указанного заказа, например, обновит данные 10 заказа /wp-json/usam/v1/order/10
Путь: /wp-json/usam/v1/order/(номер заказа)
Метод запроса: POST
- status (строка) (не обязательно) — код статуcа заказа;
- bank_account_id (число) (не обязательно) — банковский счет продавца;
- source (строка) (не обязательно) — источник заказа;
- type_price (строка) (не обязательно) — тип цены;
- price_external_code (строка) (не обязательно) — внешний код цены;
- manager_id (число) (не обязательно) — номер менеджера;
- user_ID (число) (не обязательно) — номер пользователя;
- code (строка) (не обязательно) — внешний номер заказа;
- type_payer (число) (не обязательно) — тип плательщика;
- exchange (число) (не обязательно) — обмен произведен, число 1 или 0;
- coupon_name (строка) (не обязательно) — код купона;
- cancellation_reason (строка) (не обязательно) — причина отказа от заказа;
- bonuses (строка) (не обязательно) — количество бонусов, для создании транзакции по списанию, на сумму заказа никак не влияют. Если указать, то спишут указанное количество с карты покупателя и прикрепят этот заказ. user_ID должно быть указанно.
- products (массив) (обязательно) — товары;
- properties (массив) (не обязательно) — свойства заказа;
Пример запроса
Указать, что 10 заказ выгружен во внешнюю учетную систему:
/wp-json/usam/v1/order/10
{
"exchange": 1
}
Возвращает
true если заказ обновлен или false если заказ не обновлен
Создать заказ
Создать новый заказ.
Путь: /wp-json/usam/v1/order
Метод запроса: POST
- status (строка) (не обязательно) — код статуcа заказа;
- bank_account_id (число) (не обязательно) — банковский счет продавца;
- source (строка) (не обязательно) — источник заказа;
- type_price (строка) (не обязательно) — тип цены;
- price_external_code (строка) (не обязательно) — внешний код цены;
- manager_id (число) (не обязательно) — номер менеджера;
- user_ID (число) (не обязательно) — номер пользователя;
- code (строка) (не обязательно) — внешний номер заказа;
- type_payer (число) (не обязательно) — тип плательщика;
- exchange (число) (не обязательно) — обмен произведен, число 1 или 0;
- coupon_name (строка) (не обязательно) — код купона;
- cancellation_reason (строка) (не обязательно) — причина отказа от заказа;
- bonuses (строка) (не обязательно) — количество бонусов, для создании транзакции по списанию, на сумму заказа никак не влияют. Если указать, то спишут указанное количество с карты покупателя и прикрепят этот заказ. user_ID должно быть указанно.
- products (массив) (обязательно) — товары;
- properties (массив) (не обязательно) — свойства заказа;
properties содержит данные покупателя и содержит массив где ключ это код свойства заказа, а значение элемента массива это значение свойства. Пример:
{["billingfirstname":"Сергей", "billingphone":"89218009089"]}
products содержит данные товаров.
- product_id (строка) (обязательно) — id товара;
- name (строка) (не обязательно) — имя товара;
- price (число) (обязательно) — цена товара;
- old_price (число) (не обязательно) — старая цена товара;
- product_day (число) (не обязательно) — метка является ли товаром дня;
- quantity (число) (обязательно) — количество;
- unit_measure (строка) (не обязательно) — единица измерения;
- bonus (число) (не обязательно) — количество бонусов, которые будут зачислены покупателю при закрытии заказа;
- used_bonuses (число) (не обязательно) — используемые бонусы;
- date_insert (дата время) (не обязательно) — дата и время добавления товара;
Пример:
[
{"product_id":12, "name":"Кастрюля 24 см", "price":2200, "quantity":1},
{"product_id":132, "name":"Крышка 24 см", "price":550, "quantity":1}
]
Пример запроса
/wp-json/usam/v1/orders
{
"status": "received",
"type_price": "tp_1",
"code": "sdefsd23435",
"products": [{"code":"rftreg","price":345},{"code":"123hfgj","price":2145}],
"properties": {"billingfirstname":"Алексей","billinglastname":"Кузин","billingphone":"89039009090"}
}
Массовые обновления заказов
Путь: /wp-json/usam/v1/orders
Метод запроса: PUT
- items — массив содержащий данные для обновления заказа (обязательный)
Данные, которые содержит items те же что и при обновлении заказа
Пример запроса
Пометим, что заказы 1,2,3 выгружены и больше не нуждаются в выгрузке
/wp-json/usam/v1/orders
{
"items": [{
"id": 1,
"exchange": 1
},
{
"id": 2,
"exchange": 1
},
{
"id": 3,
"exchange": 1
}]
}
или если использовать code вместо id заказа
/wp-json/usam/v1/orders
{
"items": [{
"code": "sdfkjliji",
"exchange": 1
},
{
"code": "1sddd65",
"exchange": 1
},
{
"code": "fsfdd65",
"exchange": 1
}]
}
Возвращает
количество обновленных заказов
Удалить заказ по номеру
Путь: /wp-json/usam/v1/order/(номер)
Метод запроса: DELETE