Download the PHP package eljump/moysklad without Composer

On this page you can find all versions of the php package eljump/moysklad. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package moysklad

Moysklad PHP

SensioLabsInsight

Библиотека для сервиса "Мой склад" JSON API 1.1. Некоторые примеры можно найти в "tests". Все ещё далека от завершения.

В данном форке изменен базовый поддомен по умолчанию (с 'online' на 'api'), а так же есть изменения в маршрутах (с '1.1' на '1.2'). Возможны ошибки

Установка

composer require eljump/moysklad

Запуск тестов:
1) composer global require phpunit/phpunit
2) cd tests
3) composer update
4) Отредактировать Config.php
5) phpunit --configuration="./phpunit.xml" <ИЛИ> npm run test

Класс MoySklad

Используется для авторизации, явно передается параметром в большинство компонентов т.к. возможно использование нескольких аккаунтов моегосклада одновременно.

$sklad = MoySklad::getInstance($login, $password);

Сущности

Основной объект библиотеки

Можно, например, сделать так

Или так

$product->transformToClass(Counterparty::class);

Или не сделать. Большая часть логики делегирована другим классам.

Получение сущностей

Получение всех сущностей:

$list = Product::query($sklad)->getList();

Можно добавить параметры запроса. Описание параметров в описании класса QuerySpecs.

Фильтрация. Описание методов FilterQuery в комментариях.

Поиск по строке. К Query-объекту можно прицепить expand для получения связей с указанными названиями

$searchedList = Product::query($sklad)->withExpand(Expand::create(['owner']))->search("трусы");

Функции выше возвращают объект EntityList.

Получение по id.

$product = Product::query($sklad)->byId("12345-654321-123456-54321");

Создание, обновление

Некоторым сущностям нужно указать связи при создании. Например для customerorder нужно указание counterparty и organization, и опционально массив позиций

Для обновления то-же самое

$product->buildUpdate()->addCountry($country)->execute();

Удаление

$product->delete();

Связи

Чаще всего сущность полученная через api имеет какие-то связи

$product->relations;

Зная что, к примеру, у продукта есть связанный employee, но не зная название этого поля можно получить его так

$employee = $product->relations->find(Employee::class)

Так как связи обычно приходят в формате meta-объекта для получения полного объекта можно сделать так

$group = $product->relations->group->fresh()

А если связь - массив объектов типо такого, то на нем можно сделать операции описанные в разделе "Получение сущностей"

$products = $order->relationListQuery("positions")->getList()

Список сущностей

EntityList - обертка для массива для работы с апи

Например получение assortment и превращение элементов в нужный тип

$differentProductsAndStuff = Assortment::query($sklad)->getList()->transformItemsToMetaClass();

Или массовое создание сущностей

Можно превратить в массив

$el->toArray();

Работа с картинками

Прицепление изображений к сущности

или

Скачивание изображения

Specs

Классы для конфигурации различных действий

В метод create передаются поля конфигурации

LinkingSpecs используется для описания связывания сущности и других сущностей учавствующих в обновлении/создании первой

Имеет следующие поля:

name - имя, которое получит новая связь. Если не указано - будет использоваться имя сущности в моемскладе

multiple - связь будет массивом сущностей, то есть можно указать несколько связей с одинаковым именем

fields - взять только указанные поля для создания связи

excludedFields - взять все поля, кроме указанных

Пример добавления доп. поля к контрагенту

QuerySpecs конфигурация EntityQuery и RelationQuery объектов

Поля:

limit - количество результатов в одном отправляемом запросе (100 по умолчанию)

offset - сдвиг результатов

maxResults - максимальное возвращаемое количество результатов

expand - возможность получить результат с указанными связями (Expand объект)

updatedFrom - объекты, момент обновления которых меньше или равен значению, указанному в параметре (CommonDate объект)

updatedTo - объекты, момент обновления которых меньше или равен значению, указанному в параметре (CommonDate объект)

updatedBy - В выборку попадут все объекты, автором последних изменений которых является пользователь с uid, указанным в значении параметра.

Публикации

Документные сущности поддерживают публикации

Получение

Создание

Удаление

Получение публикации по id

Печать документов

Документные сущности поддерживают печать

Создание

При создании запроса на печать можно передать либо AbstractTemplate либо EntityList<AbstractTemplate>

Получение стандартных шаблонов

Получение пользовательских шаблонов

Получение стандартного шаблона по id

Получение пользовательского шаблона по id

Отчеты

Содержат статические методы для получения отчетов.

Некоторым можно указать особые поисковые запросы типо CounterpartyReportQuerySpecs

Аудит

История событий системы

Получить последние 5 контекстов по заказам покупателей

Получить события по контексту

Получить события по сущности

Получить список фильтров

Отладка

Статический класс RequestLog содержит ограниченную историю запросов/ответов в апи.

Можно получить последний запрос/ответ

Или все

По умолчанию для ограничения потребления памяти хранится 50 последних запросов, по достижению лимита старые запросы удаляются. Изменить лимит можно так:

Для остановки логирования можно вызвать

Другие библиотеки


All versions of moysklad with dependencies

PHP Build Version
Package Version
Requires php Version >=7.2
guzzlehttp/guzzle Version ^6.5
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package eljump/moysklad contains the following files

Loading the files please wait ....