digiom / api-moysklad
API for MoySklad
Requires
- php: >=7.0
- ext-json: *
- digiom/psr7wp: dev-main
This package is auto-updated.
Last update: 2024-12-17 12:07:40 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/