Создание заказов

Передача заказов в пункт

POST /api/take_pkgs

Передает в систему Glavpunkt.ru данные об отгружаемых заказах, при этом формируется электронная накладная.

Метод позволяет создавать следующие виды заказов:

  1. Выдача в ПВЗ

  2. Курьерская доставка

  3. Выдача по РФ (с отгрузкой только в Санкт-Петербурге)

  4. Выдача Почтой РФ

Пример запроса

{
  login : "userlogin",       // логин интернет-магазина
  token : "token", // token для авторизации
  comments_client : "комментарий к накладной",
  punkt_id : "Moskovskaya-A16", // Пункт отгрузки заказов, если вы сами привозите их на ПВЗ
  pickup_id : 123, // Добавить заказы в заявку на забор (см /api/pickup_create)
  orders : [
    { // Заказ на выдачу в ПВЗ Санкт-Петербурга
      serv  : 'выдача',
      sku   : "ТEST-1",
      price : 123
    },
    { // Заказ на выдачу в ПВЗ Москвы
      serv  : 'выдача',
      sku   : "ТEST-2",
      price : 123,
      dst_punkt_id: "Msk-Avtozavodskaya-M6" // Пункт в Москве, в котором надо выдать заказ
    },
    { // Перемещение с услугой примерчной
      serv  : 'выдача',
      sku   : "ТEST-22",
      price : 123,
      weight: 1,
      primerka: 1,
      dst_punkt_id: "Sennaya-M3"
    },
    { // Заказ на курьерскую доставку
      serv : 'курьерская доставка',
      sku  : "ТEST-2",
      barcode : "830467",
      is_prepaid : 1,
      price : 1000,
      buyer_phone : "79001112233",
      weight: 1,
      delivery: { // Параметры курьерской доставки
        city : 'SPB', // либо 'Санкт-Петербург'
        address: "ул. Маяковского д.9",
        date: "25.11.2016",
        time: "с 10 до 18"
      }
    },
    { // Заказ на выдачу по РФ
      serv : 'выдача по РФ',
      sku  : "ТEST-3",
      barcode : "830467",
      price : 5000,
      buyer_phone : "79001112233",
      weight: 1,
      delivery_rf: { // Параметры выдачи по РФ
        city_id: 'AMR',
        pvz_id: 'RF27141'
      },
      client_delivery_price: 100,
      parts: [
        {name: "Война и мир, Л.Н.Толстой, том 1", 'price': 1500},
        {name: "Война и мир, Л.Н.Толстой, том 2", 'price': 1400},
        {name: "Война и мир, Л.Н.Толстой, том 3", 'price': 1300}
      ]
    },
    { // Заказ на доставку Почтой России
      serv : 'почта',
      sku  : "ТEST-4",
      price : 5000,
      buyer_phone : "79001112233",
      weight: 1,
      pochta: {
        address: '123098, Россия, москва Рогова, дом 12, корпус 2, строение 1'
      }
    },
    { // Заказ с указанием номенклатуры (товаров)
      serv : 'выдача',
      sku  : "ТEST-5",
      price : 4200, // стоимость должна совпадать с суммарной стоимостью товаров в нем!
      is_prepaid : 0,
      buyer_phone : "79001112233",
      weight: 1,
      partial_giveout_enabled: 1,// Если нужна частичная выдача
      insurance_val: 4200,
      parts: [
        {name: "Война и мир, Л.Н.Толстой, том 1", 'price': 1500},
        {name: "Война и мир, Л.Н.Толстой, том 2", 'price': 1400},
        {name: "Война и мир, Л.Н.Толстой, том 3", 'price': 1300}
      ]
    }
  ]
}

Пример запроса с использованием Php + Curl

<?php
$data = json_encode([
  'login' => "userlogin", // логин интернет-магазина
  'token' => "token", // token для авторизации
  'comments_client' => "комментарий к накладной",
  'punkt_id' => "Moskovskaya-A16", // Пункт отгрузки заказов, если вы сами привозите их на ПВЗ
  'pickup_id' => 123, // Добавить заказы в заявку на забор (см /api/pickup_create)
  'orders' => [
      [ // Заказ на выдачу в ПВЗ Санкт-Петербурга
          'serv' => 'выдача',
          'sku' => 'ТEST-PKG-1',
          'price' => 123
      ],
      [ // Заказ на выдачу в ПВЗ Москвы
          'serv' =>
              'выдача',
          'sku' => "ТEST-PKG-2",
          'price' => 123,
          'dst_punkt_id' => "Msk-Avtozavodskaya-M6", // Пункт в Москве, в котором надо выдать заказ
          'weight' => 1
      ],
      [ // Перемещение с услугой примерочной
          'serv' => 'выдача',
          'sku' => "ТEST-PKG-2-2",
          'price' => 123,
          'weight' => 1,
          'primerka' => 1,
          'dst_punkt_id' => "Sennaya-M3",
          'parts' => [
              [
                  'name' => "Футболка 1", 'price' => 1100
              ],
              [
                  'name' => "Футболка 2", 'price' => 1200
              ],
              [
                  'name' => "Футболка 3", 'price' => 1300
              ]
          ]
      ],
      [ // Заказ на курьерскую доставку
          'serv' =>
              'курьерская доставка',
          'sku' => "ТEST-PKG-2-3",
          'barcode' => "830467",
          'is_prepaid' => 1,
          'price' => 1000,
          'buyer_phone' => "79001112233",
          'buyer_fio' => "Иванов И.И",
          'weight' => 1,
          'delivery' => [ // Параметры курьерской доставки
              'city' =>
                  'SPB', // либо 'Санкт-Петербург'
              'address' => "ул. Маяковского д.9",
              'date' => "25.02.2019",
              'time' => "с 10 до 18"
          ]
      ],
      [ // Заказ на выдачу по РФ
          'serv' =>
              'выдача по РФ',
          'sku' => "ТEST-PKG-3",
          'barcode' => "830467",
          'price' => 5000,
          'buyer_phone' => "79001112233",
          'buyer_fio' => "Сидоров А.А",
          'weight' => 1,
          'delivery_rf' => [ // Параметры выдачи по РФ
              'city_id' =>
                  'AMR',
              'pvz_id' => 'RF27141'
          ],
          'client_delivery_price' => 100,
          'parts' => [
              [
                  'name' => "Брюки 1", 'price' => 1100
              ],
              [
                  'name' => "Брюки 2", 'price' => 1200
              ],
              [
                  'name' => "Брюки 3", 'price' => 1300
              ]
          ]
      ],
      [ // Заказ на доставку Почтой России
          'serv' =>
              'почта',
          'sku' => "ТEST-PKG-4",
          'price' => 5000,
          'buyer_phone' => "79001112233",
          'weight' => 1,
          'pochta' => [
              'address' =>
                  '123098, Россия, москва Рогова, дом 12, корпус 2, строение 1'
          ]
      ],
      [ // Заказ с указанием номенклатуры (товаров)
          'serv' => 'выдача',
          'sku' => "ТEST-PKG-5",
          'price' => 4200, // стоимость должна совпадать с суммарной стоимостью товаров в нем!
          'is_prepaid' => 0,
          'buyer_phone' => "79001112233",
          'weight' => 1,
          'partial_giveout_enabled' => 1,// Если нужна частичная выдача
          'parts' => [
              [
                  'name' => "Война и мир, Л.Н.Толстой, том 1", 'price' => 1500
              ],
              [
                  'name' => "Война и мир, Л.Н.Толстой, том 2", 'price' => 1400
              ],
              [
                  'name' => "Война и мир, Л.Н.Толстой, том 3", 'price' => 1300
              ]
          ]
      ]
  ]
  ]);

  $ch = curl_init();

  // set url
  curl_setopt($ch, CURLOPT_URL, "https://glavpunkt.ru/api/take_pkgs");

  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Content-Type: application/json',
      'Content-Length: ' . strlen($data))
  );

  // return JSON
  $result = curl_exec($ch);
  curl_close($ch);

Пример запроса Curl из командной строки

$ curl --header "Content-Type: application/json"  \
--request POST  \
--data '{"login":"userlogin","token":"token","comments_client":"комментарий к накладной","punkt_id":"Moskovskaya-A16","orders":[{"serv":"выдача","sku":"TEST-PKG-CURL-3","price":100}]}'  \ https://glavpunkt.ru/api/take_pkgs

Справочник параметров заказа

Название параметра

Описание

Возможные значения

Обязательный?

serv

Тип заказа

выдача“, „курьерская доставка“, „выдача по РФ“, „почта

Да

sku

Номер заказа

Произвольная строка длиной до 100 символов

Да, должен быть уникальным

price

Цена заказа / оценочная стоимость (если заказ предоплачен)

Положительное число

Да

insurance_val

Оценочная стоимость (если не указан,то используется значение price)

Положительное число

Нет

primerka

Услуга примерочной на пункте выдачи

1 - да, 0 - нет

Нет. Доступно только для пунктов: Озерки, Купчино2, Чернышевская, Сенная

client_delivery_price

Стоимость доставки для клиента. Используется для расчета стоимости к оплате клиентом

Положительное число (по-умолчанию „0“)

Нет

weight

Вес заказа

Вес в кг (до 20 кг)

Обязательно для следующих типов заказов: „курьерская доставка“,“выдача по РФ“ и заказов на перемещение

barcode

Штрих-код заказа

Произвольная строка длиной до 100 символов

Нет

is_prepaid

Признак, что заказ предоплачен

1“ если заказ предоплачен, „0“ - не предоплачен (по-умолчанию „0“)

Нет

buyer_fio

ФИО клиента

Произвольная строка длиной до 255 символов

Обязательно для заказов с типом „курьерская доставка“, „почта“, „выдача по РФ

buyer_phone

Телефон клиента

Указывайте телефон, на который клиент сможет получить SMS. Пример: 79001112233

Обязательно для заказов с типом „курьерская доставка“, „почта“, „выдача по РФ

comment

Комментарий к заказу

Произвольная строка длиной до 255 символов

Нет

dst_punkt_id

ID пункта назначения в случае перемещения заказа

См. Список ПВЗ в Спб и Мск

Нет

items_count

Количество мест в заказе

Не более 20 мест (по-умолчанию „1“)

Нет

partial_giveout_enabled

Разрешить выдачу заказа по частям. Требуется передать состав заказа в поле parts. См. parts-params

1“ если заказ можно выдавать частично (по-умолчанию „0“)

Нет

delivery

Параметры курьерской доставки

См. courier-params

Обязательно для заказа: „курьерская доставка

delivery_rf

Доступно только для заказов, отгружаемых на ПВЗ в г. Санкт-Петербург. Параметры выдачи заказа по РФ

См. rf-params

Обязательно для заказа: „выдача по РФ

pochta

Доступно только для заказов, отгружаемых на ПВЗ в г. Санкт-Петербург. Параметры выдачи заказа почтой России

См. pochta-params

Обязательно для заказа: „почта

Название параметра

Описание

Возможные значения

Обязательный?

city

Код населенного пункта для доставки.

Для доставки по Спб указать «SPB», для Москвы - «MSK». Указание названия города возможно, но для повышения точности рекомендуем передавать его код.

См. Города России для услуги курьерская доставка

Да

address

Адрес доставки

Подробный адрес доставки

Да

date

Дата доставки. По воскресеньям доставки нет.

dd.mm.yyyy

Да, если доставка по СПб, Мск и их областям. Для остальных регионов не обязательно.

time

Временной интервал доставки

Допустимые форматы: «с 10 до 18», «10:00-18:00», «с 10:00 до 18:00». Для СПб минимальный интервал доставки 3ч, для Мск 5ч. Рамки: от 10 до 18.

Все значения, выходящие за рамки «10:00-18:00», будут сужены до этого диапазона.

Да, если доставка по Спб, Мск и их областям. Для остальных регионов не обязательно.

18_21

Доставить в вечерний интервал. Стоимость доставки возрастает на 50%. Доступно только для заказов с доставкой «По Петербургу» (не включая область)

1“ если необходимо, „0“ - если не требуется (по-умолчанию „0“)

Нет

Название параметра

Описание

Возможные значения

Обязательный?

city_id

Код города доставки

См Города для услуги выдача РФ

Да

pvz_id

Код пункта выдачи в указанном городе

См Список пунктов для выдачи по РФ

Да

Название параметра

Описание

Возможные значения

Обязательный?

address

Максимально подробный адрес. Рекумендуем в начале адреса указывать почтовый индекс.

Россия, Москва Рогова, дом 12, корпус 2, строение 1

Да

Название параметра

Описание

Возможные значения

Обязательный?

name

Наименование товара

Война и мир, Л.Н.Толстой, том 1

Да

price

Стоимость товара

100

Да

barcode

Штрих-код

Нет

num

Количество товара (по-умолчанию „1“). Используется для расчета итоговой стоимости заказа.

1

Нет

если заказы сохранены успешно

{
   result : "ok",
   docnum : 2123, // номер накладной
   pkgs : { "номер-заказа" : id, "номер-заказа2": id2, ... }

}

если произошла ошибка

{
   result  : "error",
   message : "сообщение об ошибке"
}

POST /api/append_pkgs

Дополняет существующую накладную (созданную с помощью /api/take_pkgs) дополнительными заказами.

arrival_move_id - это номер накладной, возвращаемый в параметре docnum при создании накладной с помощью /api/take_pkgs

Параметры заказов orders см в POST /api/take_pkgs

Пример запроса

{
  login : "userlogin",       // логин интернет-магазина
  token : "xxxx_token_xxxx", // token для авторизации
  arrival_move_id: 777777    // ID существующей накладной поступления
  orders : [
    { // Заказ на выдачу в ПВЗ Санкт-Петербурга
      serv  : 'выдача',
      sku   : "ТEST-1",
      price : 123
    },
    { // Заказ на выдачу в ПВЗ Москвы
      serv  : 'выдача',
      sku   : "ТEST-2",
      price : 123,
      dst_punkt_id: "Msk-Avtozavodskaya-M6" // Пункт в Москве, в котором надо выдать заказ
    }
  ]
}

Удаление черновика накладной поступления

POST /api/delete_move

Пример запроса

{
  login : "userlogin",       // логин интернет-магазина
  token : "xxxx_token_xxxx", // token для авторизации
  id: 777777    // ID существующей накладной поступления (не принятой)
}

Формирование заказов из товаров на складе

POST /api/take_pkgs_from_goods

Метод позволяет сформировать заказ из товаров, находящихся на складе Glavpunkt.ru При этом формируется электронная накладная.

Параметры метода такие же, как в /api/take_pkgs. Единственное отличие, в массиве заказа надо указывать обязательное поле goods. Поле price сверяется с суммой, равной стоимости передаваемых товаров.

Пример запроса

{
  login : "userlogin",       // логин интернет-магазина
  token : "xxxx_token_xxxx", // token для авторизации
  comments_client : "создание заказов из товаров",
  punkt_id : "Moskovskaya-A16", // Пункт, где надо сформировать заказы
  orders : [
    {
      serv  : 'выдача',
      sku   : "ТEST-1",
      price : 200, // Общая стоимость всех товаров в заказе, с учетом количества
      goods: [
        {
          good_id: 123, // ID товара
          count: 1 // Кол-во товара
        },
        {
          good_sku: "123", // артикул товара (sku)
          count: 1 // Кол-во товара
        }
      ]
    },
    {
      serv  : 'выдача',
      sku   : "ТEST-2",
      price : 500,
      goods: [
        {
          good_id: 124,
          count: 2
        },
        {
          good_id: 125,
          count: 3
        }
      ]
    }
  ]
}

Для получения остатков товаров на складе, см. Получить товары, находящиеся в Главпункте

Ответ

если заказы сформированы успешно

{
   result : "ok",
   docnum : 2123 // номер накладной
}

если произошла ошибка

{
   result  : "error",
   message : "сообщение об ошибке"
}

Удаление заказа из накладной поступления

POST /api/delete_pkg

Пример запроса, используя ваш номер заказа

{
  login : "userlogin",       // логин интернет-магазина
  token : "xxxx_token_xxxx", // token для авторизации
  sku: "sku123"
}

Пример запроса, используя ID заказа в системе Главпункт

{
  login : "userlogin",       // логин интернет-магазина
  token : "xxxx_token_xxxx", // token для авторизации
  pkgId: 777777
}