digiom/api-moysklad

API for MoySklad

dev-main 2024-01-17 10:17 UTC

This package is auto-updated.

Last update: 2024-04-17 10:48:44 UTC


README

Данная библиотека предназначена для удобной работы с API МоегоСклада. Она содержит набор функций, позволяющий совершать базовые операции над сущностями (создание, чтение, изменение, удаление).

Начало работы

Основной класс, посредством которого осуществляется работа с SDK: Client

Для того чтобы начать работу, требуется создать экземпляр этого класса, передав в конструктор поля адрес хоста API, флаг принудительного соединения по https, а также логин в формате [имя пользователя]@[название компании] и пароль для доступа к API:

$api = new Client('api.moysklad.ru', true, array('login' => '[API_LOGIN]', 'password' => '[API_PASSWORD]'));

Работа с сущностями

Для доступа к эндпоинтам отдельных сущностей используется метод $api->entity(), который возвращает базовый клиент для сущностей. Этот объект позволяет получить клиент для работы с конкретной сущностью. Например, чтобы получить список всех контрагентов, достаточно выполнить следующий код:

$api->entity()->counterparty()->get();

Чтобы отправить запрос к API на создание сущности, достаточно создать объект класса, заполнить необходимые поля, и затем при помощи соответствующего клиента вызвать метод post(), передав в качестве параметра созданный объект:

$product = new Product();
$product->setName('Новый продукт');
$api->entity()->product()->create($product);

После выполнения кода и при успешном создании объект product будет заполнен полями, полученными из ответа API (id, href и др.).

Для изменения уже созданной сущности используется метод update() клиента сущности, где в качестве параметров выступают либо сущность с измененными полями (должен быть установлен id), либо id и сущность с измененными полями:

$product->setDescription('Описание продукта');
$api->entity()->product()->update($product);

Полностью аналогично производится работа с остальными методами. Работа с вложенными сущностями производится при помощи специальных методов клиентов сущностей (например, метод получения позиций документов getPositions(String, ApiParam...)).

Экспорт документов

Экспорт документов осуществляется с использованием шаблонов. Чтобы получить список доступных шаблонов для данного документа, нужно у соответствующего клиента вызвать цепочку методов metadata()->embeddedtemplate(). Например, получение списка шаблонов экспорта для отгрузки:

$templates = $api->entity()->demand()->metadata()->embeddedtemplate();

Для создания печатной формы по выбранному шаблону используется метод клиента документа export(). В самом простом виде вызов метода выглядит следующим образом:

$exportFile = new File('demandExport.pdf');
$api->entity()->demand()->export('{demand_id}', $templates->getRows()->get(0), $exportFile);

В результате вызова метода будет создан файл demandExport.pdf, содержащий экспортированную отгрузку с id = {demand_id} по первому доступному шаблону.

Дальнейшее знакомство

Список доступных в Remap API 1.2 методов и сущностей, а также накладываемые ограничения по работе с API можно узнать в документации по ссылке https://dev.moysklad.ru/doc/api/remap/1.2/