Moysklad api php примеры

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

PHP SDK для Moysklad JSON API 1.2

License

evgeek/moysklad

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

SDK для работы с API v1.2 сервиса «Мой Склад»

Лёгкая и универсальная библиотека, позволяющий работать с API 1.2 и PHP 8.1+ .

Находится в разработке, версии до v1.0.0 могут не обладать обратной совместимостью. Список изменений можно найти в Changelog. Инструкция по обновлению для версий, не поддерживающих обратную совместимость — Upgrade guide.

composer require evgeek/moysklad
use Evgeek\Moysklad\Api\Record\Objects\Entities\Product; use Evgeek\Moysklad\MoySklad; $ms = new MoySklad(['token']); //Конструктор запросов $product = $ms->query() ->entity() ->product() ->byId('25cf41f2-b068-11ed-0a80-0e9700500d7e') ->get(); //Active Record $product = Product::make($ms); $product->id = '25cf41f2-b068-11ed-0a80-0e9700500d7e'; $product->get(); //Или $product = Product::make($ms, ['id' => '25cf41f2-b068-11ed-0a80-0e9700500d7e'])->get();

Библиотека предоставляет два подхода к работе с API — конструктор запросов (Query) и объектный (Record). Подходы полностью совместимы и взаимозаменяемы.

Позволяет при помощи fluent-цепочки методов собрать абсолютно любой запрос к API Моего Склада.

$products = $ms->query() ->entity() ->product() ->order('name') ->limit(3) ->get(); foreach ($products as $product) < var_dump($product->name); >

Подход, основанный на концепции Active Record. Каждая сущность Моего Склада представлена отдельным классом, набор сущностей — коллекцией. Намного более лаконичный, хоть и менее универсальный, чем конструктор запросов, способ взаимодействия с API.

Product::collection($ms) ->eachGenerator(function (Product $product) < $product->name = mb_strtoupper($product->name); $product->update(); >);

Из прочих плюсов — возможность расширять объекты сущностей собственными методами и автоподсказки свойств для IDE с глубокой вложенностью.

Публичные методы тщательно документированы: описание, примеры кода, ссылки на документацию API.

comment

Буду рад видеть ваши идеи, пожелания и вопросы в issues.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

License

cdekmarketteam/moysklad

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

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

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

Для того, чтобы начать работу, требуется создать экземпляр этого класса, передав в конструктор поля:

  • адрес хоста API ( online.moysklad.ru )
  • флаг принудительного соединения по https
  • логин в формате [имя пользователя]@[название компании] и пароль или готовый token для доступа к API:
use MoySklad\ApiClient; $api = new ApiClient('host', true, [ 'login' => 'your_login', 'password' => 'your_password', ]); //or $api = new ApiClient('host', true, [ 'token' => 'your_token', ]);

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

$counterpartyList = $api->entity()->counterparty()->getList(); $counterparty = $api->entity()->counterparty()->get('id');

Список возможных фильтров:

  • EntityFilter — фильтр по сущности, можно назначить нескольким полям
  • Limit — лимит для пагинации, максимальное значение 1000
  • Offset — позиция начала отображения
  • Order — сортировка, может быть назначена по нескольким полям
  • Search — фильтр поиска, который принимает только значение
  • StandardFilter — стандартный фильтр поле|значение, можно назначить нескольким полям Работа с фильтрами:
use MoySklad\Util\Param\Limit; use MoySklad\Util\Param\Offset; use MoySklad\Util\Param\Order; use MoySklad\Util\Param\Search; use MoySklad\Util\Param\EntityFilter; use MoySklad\Util\Param\StandardFilter; $params = [ Limit::eq(50), Offset::eq(10), Order::asc('name'), Order::desc('date'), Search::eq('some interesting thing'), EntityFilter::eq('product', $product), EntityFilter::neq('pricetype', $pricetype), StandardFilter::eq('region_id', $regionId), StandardFilter::gte('created', $createdDate), StandardFilter::like('name', 'ame'), ]; $counterpartyList = $api->entity()->counterparty()->getList($params);

Массив фильтров передается аргументом при вызове методов клиентов сущностей, там где это возможно.

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

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

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

Для изменения уже созданной сущности используются метод editById() или editByEntity() клиента сущности:

$product->name = 'new name'; $product = $api->entity()->product()->update($product);

Работа с вложенными сущностями производится при помощи специальных методов клиентов сущностей. Например, метод получения аккаунтов или аккаунта контрагента:

$counterpartyAccountsList = $api->entity()->counterparty()->getAccountsList('counterparty_id'); $counterpartyAccount = $api->entity()->counterparty()->getAccount('counterparty_id', 'account_id');

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

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

$counterparty = $api->entity()->counterparty()->get('id'); $addressCity = $counterparty->legalAddressFull->city; // null $counterparty->legalAddressFull->fetch(); $addressCity = $counterparty->legalAddressFull->city; // название города

Метод fetch() есть у каждой сущности, его можно использовать и для простого обновления сущности.

Список доступных методов и сущностей, а также накладываемые ограничения по работе с API можно узнать в Moysklad API 1.2 Doc

Источник

Читайте также:  Java arraylist map entry
Оцените статью