Skip to content

fazer/boxberry-sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation




Latest Stable Version Total Downloads License Telegram Chat

Посмотреть все проекты или поддержать автора можно тут.

Обратите внимание, что теперь у BoxBerry несколько API адресов:

По умолчанию API выбирает api.boxberry.de, для смены адреса необходимо при инициализации клиента вторым параметром передать нужный адрес.

Пример:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client(120, 'https://api.boxberry.ru/json.php');
$bbClient->setToken('main', 'bb_api_token');

Содержание

Changelog
Установка
Настройка токенов
Отладка
Создание заказа
Удаление заказа
Статусы заказа
Услуги в заказе
Список ПВЗ
Расчет тарифа
Полная информация о ПВЗ
Информация о заказе
Список городов
Почтовые индексы с КД
Проверка почтового индекса
Список городов с КД
Список точек приема посылок
Список созданных заказов
Список доставляющихся заказов
Заявка на забор
Список заказов не добавленных в акт
Создание акта передачи посылок
Список созданных актов передачи посылок

Changelog

  • 0.3.0 - Реализованы основные функции API сервисов BoxBerry;
  • 0.4.0 - Реализованы основные функции API справка API;
  • 0.5.0 - Реализованы все функции API BoxBerry;
  • 0.5.1 - Понижена минимальная требуемая версия PHP до 5.5;
  • 0.6.0 - Добавлено логирование запросов и ответов к API;
  • 0.6.1 - Доработка логирования;
  • 0.6.2 - Поддержка разных адресов API;
  • 0.7.0 - Описание можно посмотреть тут;
  • 0.7.1 - Исправлена поломанная совместимость с PHP 5.5/5.6.

Установка


Для установки можно использовать менеджер пакетов Composer

composer require wildtuna/boxberry-sdk

Настройка токенов


API клиент позволяет использовать несколько токенов и переключатсья между ними.
При добавлении токенов последний добавленный становися выбранным.

Добавление токенов при инициализации:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client();
$bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
$bbClient->setToken('another', 'another_bb_api_token');

Переключение токенов:

<?php
$bbClient->setCurrentToken('main');
$bbClient->setCurrentToken('another');

Отладка


Для логирования запросов и ответов используется стандартный PSR-3 логгер. Ниже приведен пример логирования используя Monolog.

<?php
    use Monolog\Logger;
    use Monolog\Handler\StreamHandler;
    
    $log = new Logger('name');
    $log->pushHandler(new StreamHandler('log.txt', Logger::INFO));
    
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'token');
    $bbClient->setCurrentToken('main');
    $bbClient->setLogger($log);
    $result = $bbClient->getCityList();
    

В log.txt будут следующие строки:

[2019-07-19 13:09:58] name.INFO: BoxBerry API request: token=TOKEN&method=ListCities [] []
[2019-07-19 13:09:58] name.INFO: BoxBerry API response: [{"Code":"172","Name":"\u0413\u0435\u043b\u0435\u043d\u0434\u0436\u0438\u043a","ReceptionLaP":"1","DeliveryLaP":"1","Reception":"1","ForeignReceptionReturns":"1","Terminal":"1","Kladr":"2300000300000","Region":"\u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440\u0441\u043a\u0438\u0439","CountryCode":"643",.......

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


Создание нового заказа в ЛК BB. Заказы бывают двух видов, до ПВЗ и курьерская доставка до двери. Если заказ в ПВЗ, то адрес доставки заполнять не требуется. Подробнее можно прочитать тут, функция ParselCreate.

Входные параметры:
Объект \WildTuna\BoxberrySdk\Entity\Order

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client();
$bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
$bbClient->setCurrentToken('main'); // Указываем клиенту использовать ключ main для запросов

try {
    $order = new \WildTuna\BoxberrySdk\Entity\Order();
    $order->setDeliveryDate('2019-05-10'); // Дата доставки от +1 день до +5 дней от текущий даты (только для доставки по Москве, МО и Санкт-Петербургу)
    $order->setOrderId('9999999'); // ID заказа в ИМ
    $order->setPalletNum(1); // Номер паллета
    $order->setBarcode('12345678'); // ШК заказа
    $order->setValuatedAmount(1000); // Объявленная стоимость
    $order->setPaymentAmount(1300); // Сумма к оплате
    $order->setDeliveryAmount(300); // Стоимость доставки
    $order->setComment('Тестовый заказ'); // Комментарий к заказу
    // $order->setVid(\WildTuna\BoxberrySdk\Entity\Order::PVZ); // Тип доставки (1 - ПВЗ, 2 - КД, 3 - Почта России)
    // $order->setPvzCode(61831); // Код ПВЗ
    // $order->setPointOfEntry('010'); // Код пункта поступления
    $order->setVid(\WildTuna\BoxberrySdk\Entity\Order::COURIER); // Тип доставки (1 - ПВЗ, 2 - КД, 3 - Почта России)
    
    $customer = new \WildTuna\BoxberrySdk\Entity\Customer();
    $customer->setFio('Иванов Петр Николаевич'); // ФИО получателя
    $customer->setPhone('79995556677'); // Контактный номер телефона
    $customer->setSecondPhone('79995556677'); // Дополнительный номер телефона
    $customer->setEmail('[email protected]'); // E-mail для оповещений
    
    $customer->setIndex(115551); // Почтовый индекс получателя (не заполянется, если в ПВЗ)
    $customer->setCity('Москва'); // (не заполянется, если в ПВЗ)
    $customer->setAddress('Москва, ул. Маршала Захарова, д. 3а кв. 1'); // Адрес доставки (не заполянется, если в ПВЗ)
    $customer->setTimeFrom('10:00'); // Время доставки от
    $customer->setTimeTo('18:00'); // Время доставки до
    $customer->setTimeFromSecond('10:00'); // Альтернативное время доставки от
    $customer->setTimeToSecond('18:00'); // Альтернативное время доставки до
    $customer->setDeliveryTime('С 10 до 19, за час позвонить'); // Время доставки текстовый формат
    
    // Поля ниже заполняются для организации (не обязательные)
    //$customer->setOrgName('ООО Ромашка'); // Наименование организации
    //$customer->setOrgAddress('123456 Москва, Красная площадь дом 1'); // Арес организации
    //$customer->setOrgInn('7731347089'); // ИНН организации
    //$customer->setOrgKpp('773101001'); // КПП организации
    //$customer->setOrgRs('40702810500036265800'); // РС организации
    //$customer->setOrgKs('30101810400000000225'); // КС банка
    //$customer->setOrgBankName('ПАО Сбербанк'); // Наименование банка
    //$customer->setOrgBankBik('044525225'); // БИК банка
    
    $order->setCustomer($customer);
    
    // Создаем места в заказе
    $place = new \WildTuna\BoxberrySdk\Entity\Place();
    $place->setWeight(1000); // Вес места в граммах
    $place->setBarcode('1234567890'); // ШК места
    $order->setPlaces($place);
    
    // Создаем товары
    $item = new \WildTuna\BoxberrySdk\Entity\Item();
    $item->setId(1); // ID товара в БД ИМ'
    $item->setName('Тестовый товар 1'); // Название товара
    $item->setAmount(100); // Цена единицы товара
    $item->setQuantity(10); // Количество
    $item->setVat(20); // Ставка НДС
    $item->setUnit('шт'); // Единица измерения
    $order->setItems($item);
    $order->setSenderName('ООО Ромашка'); // Наименование отправителя
    $order->setIssue(\WildTuna\BoxberrySdk\Entity\Order::TOI_DELIVERY_WITH_OPENING_AND_VERIFICATION); // вид выдачи (см. константы класса)

    // Для отправления Почтой России необходимо заполнить дополнительные параметры
    $russianPostParams = new \WildTuna\BoxberrySdk\Entity\RussianPostParams();
    $russianPostParams->setType(\WildTuna\BoxberrySdk\Entity\RussianPostParams::PT_POSILKA); // Тип отправления (см. константы класса)
    $russianPostParams->setFragile(true); // Хрупкая посылка
    $russianPostParams->setStrong(true); // Строгий тип
    $russianPostParams->setOptimize(true); // Оптимизация тарифа
    $russianPostParams->setPackingType(\WildTuna\BoxberrySdk\Entity\RussianPostParams::PACKAGE_IM_MORE_160); // Тип упаковки (см. константы класса)
    $russianPostParams->setPackingStrict(false); // Строгая упаковка

    // Габариты тарного места (см) Обязательны для доставки Почтой России.
    $russianPostParams->setLength(10); 
    $russianPostParams->setWidth(10);
    $russianPostParams->setHeight(10);
    
    $order->setRussianPostParams($russianPostParams);
    $result = $bbClient->createOrder($order);
    
    /*
     array(
       'track'=>'DUD15224387', // Трек-номер BB
       'label'=>'URI' // Ссылка на скачивание PDF файла с этикетками
     );
     */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Удаление заказа


Удаление заказа в ЛК BB, если он не проведен в акте.

Входные параметры:

  • order_id (string) - трек-номер / номер ИМ

Выходные параметры:
(boolead) - true успешно удален, false - не удален

Примеры вызова:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client();
$bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
$bbClient->setCurrentToken('main'); // Указываем клиенту использовать ключ main для запросов

try {
    $order = new \WildTuna\BoxberrySdk\Entity\Order();
    $result = $bbClient->deleteOrder('DUD15224387'); 
    
    if ($result) {
        // Заказ удален
    } else {
        // Заказ не удален, некорректный ответ сервера BB
    }
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Статусы заказа


Возвращает статусы заказа по трек-номеру BB или номеру заказа ИМ.

Входные параметры:

  • order_id (string) - трек-номер / номер ИМ
  • all (boolean) - true - полная информация, false - краткая информация (по умолчанию false)

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client();
$bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
$bbClient->setCurrentToken('main'); // Указываем клиенту использовать ключ main для запросов

try {
    $bbClient->getOrderStatuses('DUD15086277');
    /*
     Array
     (
         [0] => Array
             (
                 [Date] => 2019-05-01T00:56:12
                 [Name] => Принято к доставке
                 [Comment] =>
             )
     
         [1] => Array
             (
                 [Date] => 2019-05-01T00:56:13
                 [Name] => Передано на сортировку
                 [Comment] =>
             )
     
         [2] => Array
             (
                 [Date] => 2019-05-03T08:43:56
                 [Name] => Передан на доставку до пункта выдачи
                 [Comment] =>
             )
     
         [3] => Array
             (
                 [Date] => 2019-05-04T06:47:48
                 [Name] => Передан на доставку до пункта выдачи
                 [Comment] =>
             )
     
         [4] => Array
             (
                 [Date] => 2019-05-04T11:48:01
                 [Name] => Поступило в пункт выдачи
                 [Comment] => Москва (115478, Москва г, Каширское ш, д.24, строение 7)
             )
     
     )
    */
    
    $bbClient->getOrderStatuses('DUD15086277', true);
    /*
     Array
     (
         [statuses] => Array
             (
                 [0] => Array
                     (
                         [Date] => 30.04.2019 15:35
                         [Name] => Загружен реестр ИМ
                         [Comment] =>
                     )
     
                 [1] => Array
                     (
                         [Date] => 01.05.2019 00:56
                         [Name] => Принято к доставке
                         [Comment] =>
                     )
     
                 [2] => Array
                     (
                         [Date] => 01.05.2019 00:56
                         [Name] => Передано на сортировку
                         [Comment] =>
                     )
     
                 [3] => Array
                     (
                         [Date] => 03.05.2019 08:43
                         [Name] => Передан на доставку до пункта выдачи
                         [Comment] =>
                     )
     
                 [4] => Array
                     (
                         [Date] => 04.05.2019 06:47
                         [Name] => Передан на доставку до пункта выдачи
                         [Comment] =>
                     )
     
                 [5] => Array
                     (
                         [Date] => 04.05.2019 11:48
                         [Name] => Поступило в пункт выдачи
                         [Comment] => Москва (115478, Москва г, Каширское ш, д.24, строение 7)
                     )
     
             )
     
         [PD] =>
         [sum] => 5843
         [Weight] => 1.58
         [PaymentMethod] => Касса
     )
     */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Услуги в заказе


Возвращает информацию о услугах по трек-номеру BB или номеру заказа ИМ.

Входные параметры:

  • order_id (string) - трек-номер / номер ИМ

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client();
$bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
$bbClient->setCurrentToken('main'); // Указываем клиенту использовать ключ main для запросов

try {
    $bbClient->getOrderServices('DUD15086277');
    /*
     Array
     (
         [0] => Array
             (
                 [Name] => Пост_Базовый расчет
                 [Sum] => 150,36
                 [Date] => 2019-05-03T00:00:00
                 [PaymentMethod] => Эквайринг
             )
     
         [1] => Array
             (
                 [Name] => Пост_Выдача со вскрытием и проверкой комплектности
                 [Sum] => 19
                 [Date] => 2019-05-03T00:00:00
                 [PaymentMethod] => Эквайринг
             )
     
         [2] => Array
             (
                 [Name] => Пост_Извещение Вайбер и СМС
                 [Sum] => 2
                 [Date] => 2019-05-03T00:00:00
                 [PaymentMethod] => Эквайринг
             )
     
         [3] => Array
             (
                 [Name] => Пост_Страховой сбор
                 [Sum] => 10,75
                 [Date] => 2019-05-03T00:00:00
                 [PaymentMethod] => Эквайринг
             )
     
         [4] => Array
             (
                 [Name] => Эквайринг
                 [Sum] => 64,5
                 [Date] => 2019-05-03T00:00:00
                 [PaymentMethod] => Эквайринг
             )
     
     )
     */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список ПВЗ


Для получения списка ПВЗ нужно использовать метод $bbClient->getPvzList.

Входные параметры:

  • $prepaid (boolean) - false с возможностью оплаты при получении, true работающие с любым типом посылок (по умолчанию false)
  • $short (boolean) - краткая информация о ПВЗ с датой последнего изменения (по умолчанию false)
  • $city_code (integer) - позволяет выбрать ПВЗ только в заданном городе BoxBerry (по умолчанию null)

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php
$bbClient = new \WildTuna\BoxberrySdk\Client();
$bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
$bbClient->setCurrentToken('main'); // Указываем клиенту использовать ключ main для запросов

try {
    $result = $bbClient->getPvzList(); // С возможностью оплаты при получении
    /*Array
      (
          [0] => Array
              (
                  [Code] => 78031
                  [Name] => Санкт-Петербург Комендантский_7803_С
                  [Address] => 197227, Санкт-Петербург г, Комендантская пл, д.8, литер А, оф. 5Н
                  [Phone] => +7(812)930-09-15
                  [WorkSchedule] => пн-вс: 10.00-21.00
                  [TripDescription] => Метро  -  "Комендантский проспект".
      Примерное расстояние от метро до отделения - 400 метров.
      Жилой дом.
      Вход через магазин "Цветы".
      Цокольный этаж.
                  [DeliveryPeriod] => 1
                  [CityCode] => 116
                  [CityName] => Санкт-Петербург
                  [TariffZone] => 2
                  [Settlement] => Санкт-Петербург
                  [Area] => Санкт-Петербург
                  [Country] => РОССИЯ
                  [OnlyPrepaidOrders] => No
                  [AddressReduce] => Комендантская пл, д.8, литер А, оф. 5Н
                  [Acquiring] => Yes
                  [DigitalSignature] => No
                  [TypeOfOffice] => СПВЗ
                  [NalKD] => No
                  [Metro] => Комендантский проспект
                  [VolumeLimit] => 0.48
                  [LoadLimit] => 15
                  [GPS] => 60.005783,30.258888
              )
      
          [1] => Array
              (
                  [Code] => 78041
    */
    
    $result = $bbClient->getPvzList(true, true); // Краткая информация о всех ПВЗ с датой последнего изменения
    /*Array
      (
          [0] => Array
              (
                  [CityCode] => 116
                  [Code] => 78031
                  [UpdateDate] => 2019-04-17 13:25:22
              )
      
          [1] => Array
              (
                  [CityCode] => 116
                  [Code] => 78041
                  [UpdateDate] => 2019-04-24 15:06:46
              )
      
          [2] => Array
              (
                  [CityCode] => 116
                  [Code] => 78051
                  [UpdateDate] => 2019-04-25 15:37:24
              )
    */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Расчет тарифа


Для расчета тарифа на доставку нужно использовать метод $bbClient->calcTariff.

Входные параметры:
Объект \WildTuna\BoxberrySdk\Entity\CalculateParams

Выходные параметры:
Объект \WildTuna\BoxberrySdk\Entity\TariffInfo

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $calcParams = new \WildTuna\BoxberrySdk\Entity\CalculateParams();
    $calcParams->setWeight(1000);
    $calcParams->setPvz(61831);
    $calcParams->setAmount(1250.60);
    
    $result = $bbClient->calcTariff($calcParams);
    
    /*
       WildTuna\BoxberrySdk\Entity\TariffInfo Object
       (
           [price:WildTuna\BoxberrySdk\Entity\TariffInfo:private] => 176.25
           [price_base:WildTuna\BoxberrySdk\Entity\TariffInfo:private] => 168
           [price_service:WildTuna\BoxberrySdk\Entity\TariffInfo:private] => 8.253
           [delivery_period:WildTuna\BoxberrySdk\Entity\TariffInfo:private] => 2
       )
     */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Полная информация о ПВЗ


Для получения информации о ПВЗ нужно использовать метод $bbClient->pointDetails.
Если передан $photo=true, то в результирующем массиве будет ключ photos, который содержит массив фотографий в base64.

Входные параметры:

  • $point_id (integer) - код ПВЗ
  • $photo (boolean) - возврат фото ПВЗ (по умолчанию false)

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->pointDetails(61831); // Без фото
    $result = $bbClient->pointDetails(61831, true); // С фото
    
    /*
     Array
     (
         [CityCode] => 44
         [Reception] => 1
         [IssuanceBoxberry] => 1
         [Name] => Ростов-на-Дону Максима Горького_6183_С
         [Organization] => Общество с ограниченной ответственностью "Атлант"
         [ZipCode] => 344022
         [Country] => РОССИЯ
         [Area] => Ростовская обл
         [CityName] => Ростов-на-Дону
         [Settlement] => Ростов-на-Дону
         [Metro] =>
         [Street] => Максима Горького
         [House] => 285
         [Structure] =>
         [Housing] =>
         [Apartment] =>
         [Address] => 344022, Ростов-на-Дону г, Максима Горького ул, д.285
         [AddressReduce] => Максима Горького ул, д.285
         [GPS] => 47.231912,39.737686
         [TripDescription] => Остановка: Театральный.
     Примерное расстояние от остановки до Отделения  -  200 метров.
     Жилой 9-ти этажный дом.
     Отдельный вход со стороны дороги. 1 этаж.
         [Phone] => 8-800-222-80-00
         [ForeignOnlineStoresOnly] => 0
         [PrepaidOrdersOnly] => 0
         [Acquiring] => 1
         [DigitalSignature] => 0
         [TypeOfOffice] => 2
         [ReceptionLaP] => 1
         [DeliveryLaP] => 1
         [LoadLimit] => 15
         [VolumeLimit] => 0.48
         [EnablePartialDelivery] => 1
         [EnableFitting] => 1
         [fittingType] => 1
         [WorkShedule] => пн-вс: 10.00-19.00
         [WorkMoBegin] => 10:00
         [WorkMoEnd] => 19:00
         [WorkTuBegin] => 10:00
         [WorkTuEnd] => 19:00
         [WorkWeBegin] => 10:00
         [WorkWeEnd] => 19:00
         [WorkThBegin] => 10:00
         [WorkThEnd] => 19:00
         [WorkFrBegin] => 10:00
         [WorkFrEnd] => 19:00
         [WorkSaBegin] => 10:00
         [WorkSaEnd] => 19:00
         [WorkSuBegin] => 10:00
         [WorkSuEnd] => 19:00
         [LunchMoBegin] =>
         [LunchMoEnd] =>
         [LunchTuBegin] =>
         [LunchTuEnd] =>
         [LunchWeBegin] =>
         [LunchWeEnd] =>
         [LunchThBegin] =>
         [LunchThEnd] =>
         [LunchFrBegin] =>
         [LunchFrEnd] =>
         [LunchSaBegin] =>
         [LunchSaEnd] =>
         [LunchSuBegin] =>
         [LunchSuEnd] =>
         [TerminalCode] => 50
         [TerminalName] => Ростов-на-Дону Каширская_6101
         [TerminalOrganization] => ООО "Боксберри Юг"
         [TerminalCityCode] => 44
         [TerminalCityName] => Ростов-на-Дону
         [TerminalAddress] => 344091, Ростов-на-Дону г, Каширская ул, д.9/53а
         [TerminalPhone] => 8-800-222-80-00
         [CourierDelivery] => 0
         [CountryCode] => 643
         [AddressInfo] =>
         [Terminal] => 0
         [TransType] => 1
         [InterRefunds] => 1
         [ExpressReception] => 0
         [extraCode] => 6183
         [TemporaryWorkSchedule] =>
     )
     */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Информация о заказе


Позволяет получить ссылку на файл печати этикеток, список штрих-кодов коробок в посылке через запятую (,), список штрих-кодов выгруженных коробок в посылке через запятую (,) . Обязательно наличие параметра (код отслеживания заказа).
Внимание! сервис работает только с посылками созданными в api.boxberry.de.

Входные параметры:

  • order_id (string) - трек-номер / номер ИМ

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getOrderInfo('DUD15086277');
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список городов


Позволяет получить список городов, в которых есть пункты выдачи и список городов, в которых есть курьерская доставка.

Входные параметры:

  • $all (boolean) - false - список городов, в которых есть ПВЗ, true список городов, в которых осуществляется доставка + в которых есть ПВЗ (по умолчанию false)

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getCityList();
    /*
     Array
     (
         [0] => Array
             (
                 [Code] => 172
                 [Name] => Геленджик
                 [ReceptionLaP] => 1
                 [DeliveryLaP] => 1
                 [Reception] => 1
                 [ForeignReceptionReturns] => 1
                 [Terminal] => 1
                 [Kladr] => 2300000300000
                 [Region] => Краснодарский
                 [CountryCode] => 643
                 [UniqName] => Геленджик
                 [District] =>
                 [Prefix] => г
             )
     
         [1] => Array
             (
                 [Code] => 04626
                 [Name] => Долгопрудный
                 [ReceptionLaP] => 1
                 [DeliveryLaP] => 1
                 [Reception] => 1
                 [ForeignReceptionReturns] => 1
                 [Terminal] => 0
                 [Kladr] => 5000002900000
                 [Region] => Московская
                 [CountryCode] => 643
                 [UniqName] => Долгопрудный
                 [District] =>
                 [Prefix] => г
             )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Почтовые индексы с КД


Возвращает список почтовых индексов, для которых возможна курьерская доставка.

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getZipList();
    /*
     Array
     (
         [0] => Array
             (
                 [Zip] => 187033
                 [City] =>
                 [Region] =>
                 [Area] =>
                 [ZoneExpressDelivery] => 1
                 [ExpressDelivery] => Да
             )
     
         [1] => Array
             (
                 [Zip] => 655001
                 [City] => Абакан
                 [Region] =>
                 [Area] => Хакасия
                 [ZoneExpressDelivery] => 1
                 [ExpressDelivery] => Да
             )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Проверка почтового индекса


Проверка возможности курьерской доставки в заданном индексе.

Входные параметры:

  • $index (integer) - Почтовый индекс

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->checkZip(115551);
    /*
     Array
     (
         [ExpressDelivery] => 1
         [ZoneExpressDelivery] => 2
     )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список городов с КД


Список городов, в которых осуществляется курьерская доставка.

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getCourierCities();
    /*
     Array
     (
         [0] => Array
             (
                 [City] => Абакан
                 [Region] =>
                 [Area] => Хакасия
                 [DeliveryPeriod] => 7.00
             )
     
         [1] => Array
             (
                 [City] => Авдулово
                 [Region] => Данковский
                 [Area] => Липецкая
                 [DeliveryPeriod] =>
             )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список точек приема посылок


Список точек приема посылок.

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getPointsForParcels();
    /*
     Array
     (
         [0] => Array
             (
                 [Code] => 04854
                 [Name] => Санкт-Петербург Терминал
                 [City] => Санкт-Петербург
             )
     
         [1] => Array
             (
                 [Code] => 82010
                 [Name] => Симферополь Караимская_8201
                 [City] => Симферополь
             )

     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список созданных заказов


Позволяет получить список созданных через API посылок.
Если не указывать диапазоны дат, то будет возвращен последний созданный заказ.

Выходные параметры:

  • $from (string) - период от (дата в любом формате)
  • $to (string) - период до (дата в любом формате)

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getOrderList();
    /*
     Array
     (
         [0] => Array
             (
                 [track] => DUD15191668
                 [label] =>
                 [date] => 2019.05.06 15:32:51
                 [send] => 1
                 [barcode] => DUD8133818
                 [imid] => 8133818
             )
     
     )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список доставляющихся заказов


Получает информацию по заказам, которые фактически переданы на доставку в BoxBerry, но они еще не доставлены получателю.

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getOrdersInProgress();
    /*
     Array
     (
         [0] => Array
             (
                 [ID] => 4194177
                 [Status] => На отделении-получателе
                 [Price] => 0
                 [Delivery_sum] => 0
                 [Payment_sum] => 3289
             )
    
         [1] => Array
             (
                 [ID] => 1178452
                 [Status] => В пути на терминал
                 [Price] => 0
                 [Delivery_sum] => 0
                 [Payment_sum] => 2600
             )

     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Заявка на забор


Создание заявки на забор заказов.

Входные параметры: Объект \WildTuna\BoxberrySdk\Entity\Intake - параметры заявки

Выходные параметры:
integer - номер заявки в системе BB

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $intake = new \WildTuna\BoxberrySdk\Entity\Intake();
    $intake->setZip(105005);
    $intake->setCity('Москва');
    $intake->setStreet('Бауманская ул.');
    $intake->setHouse(56);
    $intake->setCorpus(5);
    $intake->setBuilding('в');
    $intake->setFlat(4);
    $intake->setContactPerson('Иванов Иван Иванович');
    $intake->setContactPhone('79095556677');
    $intake->setTakingDate('2019-05-07');
    $intake->setPlaces(2);
    $intake->setVolume(5);
    $intake->setWeight(5);
    $intake->setComment('Примечание к заявке');
    
    $intake_num = $bbClient->createIntake($intake); // $intake_num = 54851
    
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список заказов не добавленных в акт


Позволяет получить список всех трекинг кодов посылок которые есть в кабинете но не были сформированы в акт.

Входные параметры:

  • $arr (bool) - true в виде массива, false в виде строки (по умолчанию false)

Выходные параметры:
array|string - массив трек-номеров или строка трек-номеров разделенная запятой

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $tracknums = $bbClient->getOrdersNotAct(); // строкой $tracknums = 'XXXXXX,XXXXXX,XXXXXX';
    
    $tracknums = $bbClient->getOrdersNotAct(true); // массивом
    /*
     array(
         'XXXXXX',
         'XXXXXX',
         'XXXXXX'
     );
     */
}

catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Создание акта передачи посылок


Создание акта передачи посылок в BoxBerry.
Внимание! сервис работает только с заказами созданными через API ЛК.

Выходные параметры:
Массив трек-номеров заказов

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $tracknums = ['DUD15086277', 'DUD15086278', 'DUD15086279', 'DUD15086280'];
    $result = $bbClient->createOrdersTransferAct($tracknums);
    /*
     Array
     (
        'id' => Номер акта,
        'label' => 'URI',
        'sticker' => 'URI' // Ссылка на этикетки
     )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

Список созданных актов передачи посылок


Позволяет получить список созданных через API актов передачи заказов.
Если не указывать диапазоны дат, то будет возвращен последний созданный акт.
Внимание! сервис работает только с актами созданными через API ЛК.

Выходные параметры:

  • $from (string) - период от (дата в любом формате)
  • $to (string) - период до (дата в любом формате)

Выходные параметры:
Ассоциативный массив данных

Примеры вызова:

<?php

try {
    $bbClient = new \WildTuna\BoxberrySdk\Client();
    $bbClient->setToken('main', 'bb_api_token'); // Заносим токен BB и присваиваем ему ключ main
    $bbClient->setCurrentToken('main');
    
    $result = $bbClient->getActsList();
    /*
     Array
     (
         [0] => Array
             (
                'track'=>'XXXXXX,XXXXXX,XXXXXX', // список трекинг кодов посылок в акте,
                'label'=>'URI', // ссылка на скачивание акта, если доступна,
                'date'=>'2019.05.07' // дата создания посылки в формате YYYY.MM.DD HH:MM:SS.
             )
     
     )
     */
}
catch (\WildTuna\BoxberrySdk\Exception\BoxBerryException $e) {
    // Обработка ошибки вызова API BB
    // $e->getMessage(); текст ошибки 
    // $e->getCode(); http код ответа сервиса BB
    // $e->getRawResponse(); // ответ сервера BB как есть (http request body)
}

catch (\Exception $e) {
    // Обработка исключения
}

About

SDK для работы с API BoxBerry (https://api.boxberry.ru)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • PHP 100.0%