Корзини і замовлення

Базова адреса для функцій роботи з даним розділом /shopping/.

Отримати деталізовану інформацію про товари зі списку резервів

POST /shopping/reserve/products/detailed
Query Parameters:
 
  • reserves_uuid – Масив резервів.

Приклад даних запиту:

{
  "reserves_uuid": ["8166005056A44C2211EA23055666E5EA"]
}

Приклад відповіді:

{
  "reserved_products": [
    {
      "uuid": "81C8005756BA39E8xxxE6131F90FC2D6",
      "number": "ДГ008379xxx",
      "date": "2023-10-02T17:42:56Z",
      "sum": 260.28,
      "shipping_date": "0001-01-01T00:00:00Z",
      "currency": "ГРН",
      "comment": "",
      "status": "В резерві",
      "carrier": "Самовивіз",
      "delivery_date": "0001-01-01T00:00:00Z",
      "delivery_setting": "Самовывоз, XXXX XXX XXX, Луцьк",
      "route": "",
      "route_date": "0001-01-01T00:00:00Z",
      "warehouse": {
        "name": "Луцьк",
        "uuid": "ACF9000C2947F7AxxxE28A2B02C4AD32"
      },
      "owner": {
        "uuid": "92E4005056BAAxxx11ED029410150D0B",
        "name": "XXXXX XXXXX [0000xxxxx]",
        "f": 1
      },
      "products": [
        {
          "uuid": "A153ED96C522A33F42B1A3xxxx6515E5",
          "code": "00011xxxx",
          "article": "302011",
          "brand": "SOLGY",
          "name": "Скло дзеркала (з рамкою) MB Vito (W638) 96-",
          "default_image": "photo\j\u\t\d\a\961caa0d.jpeg",
          "count": 1,
          "price": 260.28,
          "sum": 260.28
        }
      ]
    }
  ]
}

Отримати товари зі списку резервів

POST /shopping/reserve/products
Query Parameters:
 
  • reserves_uuid – Масив резервів.

Приклад даних запиту:

{
  "reserves_uuid": ["8166005056A44C2211EA23055666E5EA"]
}

Приклад відповіді:

{
  "reserved_products": [
    {
      "uuid": "81C8005756BA39E8xxxE6131F90FC2D6",
      "number": "ДГ008379xxx",
      "date": "2023-10-02T17:42:56Z",
      "sum": 260.28,
      "shipping_date": "0001-01-01T00:00:00Z",
      "currency": "ГРН",
      "comment": "",
      "status": "В резерві",
      "carrier": "Самовивіз",
      "delivery_date": "0001-01-01T00:00:00Z",
      "delivery_setting": "Самовывоз, XXXX XXX XXX, Луцьк",
      "route": "",
      "route_date": "0001-01-01T00:00:00Z",
      "warehouse": {
        "name": "Луцьк",
        "uuid": "ACF9000C2947F7AxxxE28A2B02C4AD32"
      },
      "owner": {
        "uuid": "92E4005056BAAxxx11ED029410150D0B",
        "name": "XXXXX XXXXX [0000xxxxx]",
        "f": 1
      },
      "products": [
        {
          "uuid": "A153ED96C522A33F42B1A3xxxx6515E5",
          "code": "00011xxxx",
          "article": "302011",
          "brand": "SOLGY",
          "name": "Скло дзеркала (з рамкою) MB Vito (W638) 96-",
          "default_image": "photo\j\u\t\d\a\961caa0d.jpeg",
          "count": 1,
          "price": 260.28,
          "sum": 260.28
        }
      ]
    }
  ]
}

Попередження

Увага! Даний метод є застарілим і буде видалений 19.10.2023.

Зарезервувати замовлення

POST /shopping/reserve/process
Query Parameters:
 
  • order_uuid – ID замовлення.
  • comment – Текст коментаря.
  • warehouse_uuid – ID складу.
{
  "result": true,
  "error": null,
  "uuid": "5e9ec625-753c-11e8-8124-005056ac1ea9",
  "analysis": [
    {
      "uuid": "42a29ed4-b44b-457c-bd39-999894ee1ed4",
      "code": "000056032",
      "article": "12635",
      "name": "Датчик давления масла Renault Kangoo 1.2-1.9 97- (0.9 bar) (серый) ",
      "brand_code": 330,
      "brand_name": "FAE",
      "planned": 4,
      "reserved": 0
    }
  ],
  "saved_unshipped": {
    "name": "Незарезервированый товар по корзине  124",
    "position_quantity": 1,
    "sum": 7.56,
    "currency_name": "EUR",
    "uuid": "9506a6e0-fd9a-4a22-bc61-6af89842c75c"
  }
}

Зберегти невідвантажені товари в корзину

POST /shopping/create/unshipped
Query Parameters:
 
  • products – Список невідвантажених товарів. Приклад: [{“uuid”: “”, “quantity”: 2}]
  • cart_name – Назва корзини (опціонально)

Попередження

Увага! Даний метод є застарілим і буде видалений в найближчих релізах. Використовуйте Створити корзину.

Приклад відповіді:

{
    "cart": {
        "uuid": "86b2a08541f94974a9fd200ba189b2df",
        "warehouse": {
            "uuid": "ACF9000C2947F7AE11E28A2B02C4AD32",
            "name": "Луцк"
        },
        "products_count": 1,
        "weight": 23.2,
        "total": 144.0,
        "products": [
            {
                "price": 36.0,
                "position_total": 144.0,
                "product": {
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EBAE141FA90",
                        "name": "KYB"
                    },
                    "uuid": "A358000C2947F7AE11E23F6078EDBDF7",
                    "article": "335810",
                    "default_image": "photo/f/b/q/h/b/e10e98e2.jpeg",
                    "name": "Амортизатор (передний) MB Sprinter 208-316/VW LT 28-35 96-"
                },
                "quantity": 4.0,
                "weight": 5.8
            }
        ],
        "name": "Неотгруженные_14_19__22_06_2018"
    }
}

Примітка

Метод вертає створену корзину з товарами.

Шаблони імпорту

GET /shopping/import/template

Приклад відповіді:

{
  "import_types": [
    {
      "import_type": "article",
      "name": "Артикул-Бренд-Количество",
      "columns": [
        "article",
        "brand",
        "quantity"
      ]
    },
    {
      "import_type": "code",
      "name": "Код-Количество",
      "columns": [
        "code",
        "quantity"
      ]
    },
    {
      "import_type": "uuid",
      "name": "ID товара-Количество",
      "columns": [
        "uuid",
        "quantity"
      ]
    }
  ]
}

Зберегти налаштування імпорту

POST /shopping/import/settings
Query Parameters:
 
  • import_type – Артикул, бренд, к-сть.
  • name – Назва налаштування.
  • article – Якщо задано тип - Артикул
  • brand – Якщо задано тип - Бренд
  • code – Якщо задано тип - Код
  • UUID – Якщо задано тип - UUID
  • quantity – Колонка кількість

Приклад відповіді:

Успix:
    Статус: 201;
    Повідомлення:
        {
            message: "Конфігурація успішно створена"
        }

Невдача:
    Статус: 422;
    Повідомлення:
        {
            message: "Параметри задані неправильно"
        }

Видалити налаштування імпорту

DELETE /shopping/import/settings
query setting_uuid:
 UUID налаштування імпорту.

Отримати файл з необробленими рядками при імпорті.

GET /shopping/table/err_file
query type:Тип файлу csv, xls. За замовчуванням xls

Вернути розпізнаний файл.

POST /shopping/table/preload
Query Parameters:
 
  • file – Файл для імпорту.
  • extension – CSV, XLSX, XLS.
  • separator – Опціонально, якщо CSV.

Приклад відповіді:

{
  "table": [
    [1.0, "", "", 5.0, 7.0,""],
    ["", "", "", "", "", ""],
    [123.0, 123.0, 123.0, "", "", ""],
    ["", "", "", "", "sdfsdf", ""],
    ["", "", "qwe", "", "", 8.0],
    [234.0, "", 545.0, "", "", ""]
  ]
}

Імпорт замовлень з excel або csv

POST /shopping/table/import
query import_type:
 Доступні значення article, code
query article_column:
 Номер колонки з артикулом
query brand_column:
 Номер колонки з брендом
query code_column:
 Номер колонки з кодом
query quantity_column:
 Номер колонки з кількістю
query uuid_column:
 Номер колонки с ID товару
query cart_uuid:
 ID замовлення. Якщо не передано, то буде створено нове замовлення
query separator:
 Розділювач
query name:

Кількість корзин

GET /shopping/carts/count

Приклад відповіді:

{
  "carts_count": 10
}

Об’єднати корзини

POST /shopping/carts/union

Запит:

query carts_array:
 Масив ID корзин. Приклад: carts_array = ["36eee850af3...", "da6006444f..."]

Приклад відповіді:

{
    "cart": {
        "uuid": "aeab8fe48c1348ffb26085cc9a78a4ed",
        "warehouse": {
            "name": "Луцк",
            "uuid": "ACF9000C2947F7AE11E28A2B02C4AD32"
        },
        "weight": 0.948,
        "total": 18.63,
        "name": "Корзина 2",
        "products_count": 3
    }
}

Замінити один товар в корзині на інший

POST /shopping/change_product
Query Parameters:
 
  • cart_uuid – ID корзини
  • from – UUID товару котрий заміняємо
  • to – UUID товару на котрий заміняємо

Приклад тіла запиту для заміни товару в корзині

{
  "cart_uuid": "A358000C2947F7AE11E23F5617780B16",
  "from": "81F4005056AC66D611EAD7173350C7AA",
  "to": "81F4005056AC66D611EAD7173350C7AV"
}

Приклад відповіді:

{
    "success": True,
    "cart": {
        "weight": 39.500,
        "products_count": 2,
        "total": 8005.62,
        "name": "Корзина 1001",
        "uuid": "f96ccd8e69a84fb19ef346238b977bf9",
        "currency_name": "ГРН",
        "owner": {
          "uuid": "812D000C2999A7E611E576524555E66A",
          "name": "ПП | ...",
          "f": 2
        },
        "warehouse": {
          "name": "Луцк",
          "uuid": "ACF9000C2947F7AE11E28A2B02C4AD32"
        }
      }
}

Отримати залишки товарів з корзини

POST /shopping/cart_products
Query Parameters:
 
  • cart_uuid – ID Корзини.
  • warehouse – Масив ID складів.

Приклад відповіді:

{
  "cart_products": [
    {
      "uuid": "86FA2FADDF74E9DA4931B749E887626D",
      "name": "Фонарь боковой (габарит) MB Sprinter/VW LT 96-06 (желтый)",
      "article": "304002",
      "brand": "SOLGY",
      "price": 1.2,
      "quantity": 1,
      "sum": 1.2,
      "in_stocks": {
        "816F000C2999A7E611E6FF21C30463AF": {
          "name": "Львов",
          "quantity": "15",
          "sum": "18"
        }
      }
    }
  ],
  "total": {
    "cart": 1.2,
    "warehouses": {
      "816F000C2999A7E611E6FF21C30463AF": "18"
    }
  },
  "currency_name": "EUR"
}

Отримати залишки товарів з корзини

GET /shopping/cart_products
Query Parameters:
 
  • cart_uuid – ID Корзини.
  • warehouse – Масив ID складів.

Приклад відповіді:

{
  "cart_products": [
    {
      "uuid": "86FA2FADDF74E9DA4931B749E887626D",
      "name": "Фонарь боковой (габарит) MB Sprinter/VW LT 96-06 (желтый)",
      "article": "304002",
      "brand": "SOLGY",
      "price": 1.2,
      "quantity": 1,
      "sum": 1.2,
      "in_stocks": {
        "816F000C2999A7E611E6FF21C30463AF": {
          "name": "Львов",
          "quantity": "15",
          "sum": "18"
        }
      }
    }
  ],
  "total": {
    "cart": 1.2,
    "warehouses": {
      "816F000C2999A7E611E6FF21C30463AF": "18"
    }
  },
  "currency_name": "EUR"
}

Змінити власника корзини

POST /shopping/change_owner
Query Parameters:
 
  • cart_uuid – ID корзини
  • client_uuid – ID нового власника (тільки пов’язані контрагенти)

Приклад відповіді:

{
   "success": true,
}

Отримати список резервів

GET /shopping/reserves
Query Parameters:
 
  • response_fields – Повертаються наступні значення ‘reserves, picking, all’, за замовчуванням ‘all’. ‘reserves’ поверне резерви, ‘picking’ - замовлення в обробці, ‘all’ - резерви та замовлення в обробці.

Приклад відповіді:

{
  "reserves": [
    {
      "warehouse_code": "000000005",
      "warehouse_name": "Луцк",
      "orders": [
        {
          "uuid": "6e58fa9d-374a-11e8-8118-005056ac1ea9",
          "number": "ВХ000716236",
          "date": "2018-04-03T17:22:27Z",
          "sum": 3.95,
          "shipping_date": "0001-01-01T00:00:00Z",
          "currency": "EUR",
          "comment": "dfssf",
          "countrecord": 2,
          "automatically": true
        }
      ]
    }
  ]
}

Видалити резерви

DELETE /shopping/reserves
Query Parameters:
 
  • orders – ID резерву. В запиті може бути передано декілька резервів.

Приклад запиту:

curl -X DELETE https://api.bm.parts/shopping/reserves?orders=6e58fa9d-374a-11e8-8118-005056ac1ea9

Отримати інформацію про товар при швидкому відвантаженні

POST /shopping/product

Потрібно передати параметри в json форматі в body запиту, наприклад:

{
  "product": {
    "uuid": "B016705373F7E15D424EEEB59F193565",
    "quantity": 1
  },
  "cart_uuid": "20860179ca934ef68058a18da4a80e1c"
}

Параметр cart_uuid необов’язковий. Якщо його не передавати, то замість нього потрібно передавати параметр shipment_type зі значенням single_product. Наприклад:

{
  "product": {
    "uuid": "B016705373F7E15D424EEEB59F193565",
    "quantity": 1
  },
  "shipment_type": "single_product"
}

Приклад відповіді:

{
"data": {
  "product": {
    "uuid": "B01670537XXXXE15D424EEEB59F193565",
    "article": "2 000 000 000",
    "name": "Реле стартера втягуюче Citroen Berlingo/C4/C5/Peugeot 206/306 1.8-2.2 -15 замінено на 1986SE1683",
    "default_image": "photo077.jpeg",
    "brand": {
      "uuid": "812C000C2999A7XXXXE55EB9C240D5DB",
      "name": "BOSCH"
    }
  },
    "currency_name": "ГРН",
    "quantity": 1,
    "price": "000.00",
    "position_total": "000.00",
    "in_cart": {
      "cart_name": "Корзина 1",
      "brand_name": "KAPIMSAN",
      "article": "08-01750K",
      "quantity": 1
    },
    "weight": null
  }
}

Список корзин

GET /shopping/carts

Приклад відповіді:

{
  "carts": [
    {
      "warehouse": {
        "uuid": "816D000C2999A7E611E6EC6B4A1915AF",
        "name": "Киев"
      },
      "total": 1004.50,
      "weight": 110.650,
      "uuid": "35ff5f1d4576467385364541564461bc",
      "name": "Корзина 1",
      "currency_name": "ГРН",
      "products_count": 3,
      "owner": {
        "uuid": "812D000C2999A7E611E576524555E66A",
        "name": "Контрагент [000003927]"
       },
    }
  ]
}

Створити корзину

POST /shopping/carts
Query Parameters:
 
  • id_type – (опціональний) ID Тип для пошуку товару. За замовчуванням - uuid.

Потрібно передати наступні параметри в body запиту:

  • name (опціональний): Назва корзини
  • products (опціональний): Список товарів та їх кількість.
    Кожен товар має містити наступні параметри: uuid або `code, qnt - кількість товару.
  • id_type (опціональний): ID Тип для розпізнавання товару
  • warehouse (опціональний): ID Складу. За замовчуванням - основний склад.

Приклад запиту для створення порожньої корзини з назвою “Порожня корзина”

{
    "name": "Порожня корзина"
}

Створення корзини з назвою “Моє замовлення” і товаром:

{
    "name": "Моє замовлення",
    "products": [
        {"uuid": "B89C933344A18DA245B89E3FD635AA59", "qnt": 5}
    ]
}

Створення корзини з назвою “Моє замовлення” і тим же товаром за кодом ?id_type=code:

{
    "name": "Моє замовлення",
    "products": [
        {"code": "000048619", "qnt": 5}
    ]
}

Метод повертає статус 201 CREATED в разі успішного створення корзини.

Додати товар в корзину

POST /shopping/cart/(string: cart_uuid)/product/(string: product_uuid)/(int: quantity)
Query Parameters:
 
  • cart_uuid – ID корзини
  • product_uuid – ID Товару або код в форматі 000042915
  • quantity – Кількість
  • id_type – Вказує на пошук товару по ID або по коду. Допустимі значення uuid та code. За замовчуванням uuid

Якщо використовується метод POST кількість буде встановлено на передане значення. Якщо необхідно додати кількість до тих, що уже є в корзині, використовуйте метод PUT.

Додати товар в корзину

PUT /shopping/cart/(string: cart_uuid)/product/(string: product_uuid)/(int: quantity)
Query Parameters:
 
  • cart_uuid – ID корзини
  • product_uuid – ID Товару або код в форматі 000042915
  • quantity – Кількість
  • id_type – Вказує на пошук товару по ID або по коду. Допустимі значення uuid та code. За замовчуванням uuid

Якщо використовується метод POST кількість буде встановлено на передане значення. Якщо необхідно додати кількість до тих, що уже є в корзині, використовуйте метод PUT.

Видалити товар з корзини

DELETE /shopping/cart/(string: cart_uuid)/product/(string: product_uuid)
query cart_uuid:
 ID корзини
query product_uuid:
 ID Товару

Видалити корзину

DELETE /shopping/cart/(string: cart_uuid)
Query Parameters:
 
  • cart_uuid – ID корзини

При успішному виконанні метод верне 200 Success. У випадку, якщо параметр ID корзини вказано невірно, метод верне 404 Not Found.

Отримати корзину з товарами

GET /shopping/cart/(string: cart_uuid)

Приклад відповіді:

{
    "cart": {
        "products_count": 8,
        "name": "Незарезервированый товар по корзине  Корзина 7",
        "owner": {
          "uuid": "812D000C2999A7E611E576524555E66A",
          "name": "Контрагент [000003927]"
         },
        "products": [
            {
                "product": {
                    "default_image": "photo\f\b\q\h\b\e10e98e2.jpeg",
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EBAE141FA90",
                        "name": "KYB"
                    },
                    "name": "Амортизатор (передний) MB Sprinter 208-316/VW LT 28-35 96-",
                    "uuid": "A358000C2947F7AE11E23F6078EDBDF7",
                    "article": "335810"
                },
                "position_total": 65.42,
                "quantity": 2,
                "price": 32.71,
                "weight": 5.8
            },
            {
                "product": {
                    "default_image": "photo\o\u\a\y\m\1eae21cd.jpeg",
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EBAE141FA99",
                        "name": "LEMFORDER"
                    },
                    "name": "Сайлентблок рычага (заднего) MB Vito (W638) 96-03",
                    "uuid": "A358000C2947F7AE11E23F6086AE9F14",
                    "article": "26593 01"
                },
                "position_total": 35.4,
                "quantity": 10,
                "price": 3.54,
                "weight": 0.32
            },
            {
                "product": {
                    "default_image": null,
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EB9C240D5EE",
                        "name": "ELRING"
                    },
                    "name": "Прокладка крышки клапанов BMW 3 (E46/E90)/ 5 (E60/61) 2.0D",
                    "uuid": "A8700D63BDE901CC4DBBF781CBCE065B",
                    "article": "123.590"
                },
                "position_total": 10.19,
                "quantity": 1,
                "price": 10.19,
                "weight": 0.179
            },
            {
                "product": {
                    "default_image": "photo\e\u\h\g\g\50f77b67.jpeg",
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EB9C240D5C6",
                        "name": "4-MAX"
                    },
                    "name": "Аккумуляторная батарея Ecoline 120Ah/680A",
                    "uuid": "AC95580C2F17F70046FF56E78B933072",
                    "article": "0608-03-1007Q"
                },
                "position_total": 451.86,
                "quantity": 6,
                "price": 75.31,
                "weight": 33.42
            },
            {
                "product": {
                    "default_image": null,
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EB9C240D5C8",
                        "name": "AE"
                    },
                    "name": "Гидрокомпенсатор VW LT 2.4D/TD 78-93",
                    "uuid": "ACBB5861A3F46E444163AA765F4AA5B7",
                    "article": "FOL91"
                },
                "position_total": 3.32,
                "quantity": 1,
                "price": 3.32,
                "weight": 0
            },
            {
                "product": {
                    "default_image": "photo\e\i\n\c\k\d9b3b2e6.jpeg",
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EBD672594FD",
                        "name": "FAE"
                    },
                    "name": "Датчик давления масла Renault Kangoo 1.4/1.9DTi/Trafic 2.0-2.2D 89- (M14x1.5) 0.35 bar",
                    "uuid": "BEA497742AADC0504DB00E67702DF50E",
                    "article": "12370"
                },
                "position_total": 4.06,
                "quantity": 2,
                "price": 2.03,
                "weight": 0.039
            },
            {
                "product": {
                    "default_image": null,
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EB9C240D5C6",
                        "name": "4-MAX"
                    },
                    "name": "Термостат Peugeot Boxer 2.8HDI",
                    "uuid": "BFA9000C2947F7AE11E2452960F18587",
                    "article": "0212-02-0021"
                },
                "position_total": 10.02,
                "quantity": 3,
                "price": 3.34,
                "weight": 0
            },
            {
                "product": {
                    "default_image": null,
                    "brand": {
                        "uuid": "812C000C2999A7E611E55EB9C240D5C6",
                        "name": "4-MAX"
                    },
                    "name": "Фильтр топливный MB OM615-617",
                    "uuid": "BFA9000C2947F7AE11E2452960F185A0",
                    "article": "0218-03-0052"
                },
                "position_total": 9.18,
                "quantity": 6,
                "price": 1.53,
                "weight": 0
            }
        ],
        "currency_name": "EUR",
        "warehouse": {
            "uuid": "ACF9000C2947F7AE11E28A2B02C4AD32",
            "name": "Луцк"
        },
        "weight": 215.577,
        "uuid": "36e6e04d-4759-4ff5-a174-825158a14e99",
        "total": 589.45
    }
}

Зміна корзини

POST /shopping/cart/(string: cart_uuid)

Доступні параметри запиту

Параметр Опис
name Новий заголовок корзини
owner_uuid Змінити власника корзини, в рамках ваших контрагентів

У відповідь повертає оновлений обʼєкт корзини без товарів

Приклад відповіді:

{
    "cart": {}
}