PHPackages                             lapaygroup/metaship-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. lapaygroup/metaship-sdk

ActiveLibrary[API Development](/categories/api)

lapaygroup/metaship-sdk
=======================

SDK для работы с API V2 агрегатора MetaShip (https://metaship.ru)

0.5.2(10mo ago)15.2k3MITPHPPHP &gt;=5.5

Since May 13Pushed 10mo ago1 watchersCompare

[ Source](https://github.com/lapaygroup/metaship-sdk)[ Packagist](https://packagist.org/packages/lapaygroup/metaship-sdk)[ RSS](/packages/lapaygroup-metaship-sdk/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (14)Used By (0)

[![](https://camo.githubusercontent.com/eb9d201c67f874068d07e85a2d08c5b4970f4346eb664827f7ab3ca43b4200fa/68747470733a2f2f6c6170617967726f75702e72752f696d672f6c6170617967726f75702e737667)](https://lapaygroup.ru/)[![](https://camo.githubusercontent.com/0b6d493b09443a83019adfab8e0bec9f5301b27285500ff5df51bf86fe203b5c/68747470733a2f2f6c6170617967726f75702e72752f6d657461736869706c6f676f2e737667)](https://metaship.ru/)

[![Latest Stable Version](https://camo.githubusercontent.com/f7aa55a300d73106b90f36e1ae94e8fc6ee291118e51ec412f75ed06535433a1/68747470733a2f2f706f7365722e707567782e6f72672f6c6170617967726f75702f6d657461736869702d73646b2f762f737461626c65)](https://packagist.org/packages/lapaygroup/metaship-sdk)[![Total Downloads](https://camo.githubusercontent.com/f4cbb8b8b46570d3cb9dff3fbf749d88aaa9f476f61db71fc2bde00f5e19d842/68747470733a2f2f706f7365722e707567782e6f72672f6c6170617967726f75702f6d657461736869702d73646b2f646f776e6c6f616473)](https://packagist.org/packages/lapaygroup/metaship-sdk)[![License](https://camo.githubusercontent.com/c997a7e47067a922140367b559e8b6b65612326df02471fbeb5ffb26bebb9d36/68747470733a2f2f706f7365722e707567782e6f72672f6c6170617967726f75702f6d657461736869702d73646b2f6c6963656e7365)](https://packagist.org/packages/lapaygroup/metaship-sdk)[![Telegram Chat](https://camo.githubusercontent.com/6c64eaea27c4997454191c28ef0343772d3dea8171200341c0d8410295eea8f9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f74656c656772616d2d636861742d626c75652e7376673f6c6f676f3d74656c656772616d)](https://t.me/phpboxberrysdk)

SDK для [интеграции с программным комплексом MetaShip API V2](https://metaship.ru).
===================================================================================

[](#sdk-для-интеграции-с-программным-комплексом-metaship-api-v2)

Посмотреть все проекты или подарить автору кофе можно [тут](https://lapaygroup.ru/opensource).

[Документация к API V2](https://api.metaship.ru/doc/v2) MetaShip.

Содержание
==========

[](#содержание)

- [Changelog](#changelog)
- [Конфигурация](#configuration)
- [Отладка](#debugging)
- [Расчет офферов (тарифы)](#tariffs)
- [Список точек выдачи](#pvz-list)
- [Склады](#warehouses)
    - [Создание склада](#warehouse-create)
    - [Список складов](#warehouse-list)
    - [Информация о складе](#warehouse-info)
    - [Обновление склада](#warehouse-update)
    - [Удаление склада](#warehouse-delete)
- [Магазины](#shops)
    - [Создание магазина](#shop-create)
    - [Список магазинов](#shop-list)
    - [Информация о магазине](#shop-info)
    - [Обновление магазина](#shop-update)
    - [Удаление магазина](#shop-delete)
- [Заказы](#orders)
    - [Создание заказа](#order-create)
    - [Список заказов](#orders-list)
    - [Информация о заказе](#order-info)
    - [Удаление заказа](#order-delete)
    - [Редактирование заказа](#order-update)
    - [История статусов заказа](#order-statuses)
    - [Подробной информации о заказе](#order-details)
- [Партии](#batch)
    - [Создание партии](#batch-create)
    - [Список партий](#batch-list)
    - [Информация о партии](#batch-info)
    - [Обновление партии](#batch-update)
- [Документы](#docs)
    - [Получение этикетки заказа](#docs-label)
    - [Получение этикеток заказов из партии](#docs-parcel-labels)
    - [Получение АПП](#docs-app)

Changelog
=========

[](#changelog)

- 0.5.1 - Добавляет параметр options в метод getPvzList;
- 0.5.0 - Добавляет параметр shop\_id в метод getPvzList;
- 0.4.6 - Добавлены зависимости guzzle ^7.0 и psr/log ^2.0|^3.0;
- 0.4.5 - В OrderStatusHelper добавлен справочник наименований статусов MetaShip;
- 0.4.4 - Исправлена ошибка возврата пустого массива от API;
- 0.4.3 - Добавлено преобразование типов у объектов Order и Item;
- 0.4.2 - В JwtSaveFileHelper добавлена возможность задать свой путь к файлу при инициализации;
- 0.4.1 - Добавлено новое исключение MetaShipValidationException для обработки 400-х ошибок API;
- 0.4.0 - Добавлена методы для работа с партиями и документами;
- 0.3.0 - Подробное описание [тут](https://github.com/lapaygroup/metaship-sdk/releases/tag/0.3.0);
- 0.2.1 - Добавлен метод получения статусов заказа, добавлен OrderStatusHelper;
- 0.2.0 - Первая Alfa-версия SDK.

Установка
=========

[](#установка)

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

```
composer require lapaygroup/metaship-sdk

```

Конфигурация
============

[](#конфигурация)

Для работы с API необходимо получить токен и секретный ключ. Найти их можно в личном кабинете в разделе "Интеграция". С этими данными необходимо получить токен доступа в формате JWT и сохранить его. Токен живет 1 час с момента издания.

SDK позволяет сохранять JWT, для этого необходимо использовать Helper, который должен реализовывать [JwtSaveInterface](https://github.com/lapaygroup/metaship-sdk/blob/master/src/Helpers/JwtSaveInterface.php). В SDK встроен Helper для сохранения токена в временный файл [JwtSaveFileHelper](https://github.com/lapaygroup/metaship-sdk/blob/master/src/Helpers/JwtSaveFileHelper.php).
Если Helper не передан в конструктор клиента, будет использоваться [JwtSaveFileHelper](https://github.com/lapaygroup/metaship-sdk/blob/master/src/Helpers/JwtSaveFileHelper.php).

```
try {
    // Инициализация API клиента с таймаутом ожидания ответа 60 секунд
    $Client = new \LapayGroup\MetaShipSdk\Client('9e687410-62d5-5139-b712-37e7766922c6', '2091dcf8c89e12a9b8815b9e2d48d212fc9b4082d2e54a0ea4e5da260f5244ba20541d6b2e829133', 60, \LapayGroup\MetaShipSdk\Client::API_URI_TEST);
    $Client->getJwt();
    $jwt = $Client->getJwt(); // $jwt = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJPcGVuQVBJIiwiYXVkIjoiQTEyMjAxOSEiLCJhcGlrZXkiOiJBSlMxU0lTRHJrNmRyMFpYazVsZVQxdFBGZDRvcXNIYSIsImlzcyI6InVybjovL0FwaWdlZSIsInBhcnRuZXJJZCI6ImIyNzNlYzQ0LThiMDAtNDliMS04OWVlLWQ4Njc5NjMwZDk0OCIsImV4cCI6MTU5NzA4OTk1OCwiaWF0IjoxNTk3MDg2MzU4LCJqdGkiOiI4YTIyZmUzNy1mMzc0LTQ0NDctOGMzMC05N2ZiYjJjOGQ3MTkifQ.G_XQ6vdk7bXfIeMJer7z5WUFqnwlp0qUt6RxaCINZt3b97ZUwPMI1-1FNKQhFwmCHJGpTYyBJKHgtY3uJZOWDAszjPMIHrQrcnJLSzJisNiy6z3cMbpf-UgD-RgebuaYyEgZ81rekL5aUN6r5rqWHbxcxEGY22lTy9uEWwxF_-UdVLEW9O9Z9M9IMlL5_7ACVu-ID2n6zFk_QJnEumJcBSqb6JFh2TWvUPnjnUt5AOiD7gNRXKsBvoC6InSfGoMA461cxu-rAazhNq5fkqFSdrIUyz0kvAb3UI4hs_6xJy9tXPpXIQY7LQUZqQGp5BT8pasfhAJ_4CCATbqxIHmY9w
    $result = \LapayGroup\MetaShipSdk\Jwt::decode($jwt); // Получения информации из токена (payload)

    // Ранее полученный токен можно добавить в клиент
    $Client->setJwt($jwt);

    // Токен можно сохранять в файл используя Helper
    $jwtHelper = new \LapayGroup\MetaShipSdk\Helpers\JwtSaveFileHelper();
    // Можно задать путь до временного файла отличный от заданного по умолчанию
    $jwtHelper->setTmpFile('/tmp/saved_jwt.txt');

    $Client = new LapayGroup\MetaShipSdk\Client('9e687410-62d5-5139-b712-37e7766922c6', '2091dcf8c89e12a9b8815b9e2d48d212fc9b4082d2e54a0ea4e5da260f5244ba20541d6b2e829133', 60, \LapayGroup\MetaShipSdk\Client::API_URI_TEST, $jwtHelper);
    $jwt = $Client->getJwt(); // $jwt = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJPcGVuQVBJIiwiYXVkIjoiQTEyMjAxOSEiLCJhcGlrZXkiOiJBSlMxU0lTRHJrNmRyMFpYazVsZVQxdFBGZDRvcXNIYSIsImlzcyI6InVybjovL0FwaWdlZSIsInBhcnRuZXJJZCI6ImIyNzNlYzQ0LThiMDAtNDliMS04OWVlLWQ4Njc5NjMwZDk0OCIsImV4cCI6MTU5NzA4OTk1OCwiaWF0IjoxNTk3MDg2MzU4LCJqdGkiOiI4YTIyZmUzNy1mMzc0LTQ0NDctOGMzMC05N2ZiYjJjOGQ3MTkifQ.G_XQ6vdk7bXfIeMJer7z5WUFqnwlp0qUt6RxaCINZt3b97ZUwPMI1-1FNKQhFwmCHJGpTYyBJKHgtY3uJZOWDAszjPMIHrQrcnJLSzJisNiy6z3cMbpf-UgD-RgebuaYyEgZ81rekL5aUN6r5rqWHbxcxEGY22lTy9uEWwxF_-UdVLEW9O9Z9M9IMlL5_7ACVu-ID2n6zFk_QJnEumJcBSqb6JFh2TWvUPnjnUt5AOiD7gNRXKsBvoC6InSfGoMA461cxu-rAazhNq5fkqFSdrIUyz0kvAb3UI4hs_6xJy9tXPpXIQY7LQUZqQGp5BT8pasfhAJ_4CCATbqxIHmY9w

}

catch (\LapayGroup\MetaShipSdk\Exceptions\MetaShipException $e) {
    // Обработка ошибки вызова API MetaShip
    // $e->getMessage(); текст ошибки
    // $e->getCode(); http код ответа сервиса MetaShip
    // $e->getRawResponse(); // ответ сервера MetaShip как есть (http request body)
}

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

Отладка
=======

[](#отладка)

Для логирования запросов и ответов используется [стандартный PSR-3 логгер](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md). Ниже приведен пример логирования используя [Monolog](https://github.com/Seldaek/monolog).```
