evgeek / moysklad Goto Github PK
View Code? Open in Web Editor NEWMoySklad (МойСклад) PHP SDK для JSON API 1.2
License: MIT License
MoySklad (МойСклад) PHP SDK для JSON API 1.2
License: MIT License
Привет, при обработке заказа:
$order = Customerorder::make($ms->api(), ['id' => 'тут uuid'])->get();
выдает такую ошибку:
Cannot modify readonly property Evgeek\Moysklad\Api\Record\AbstractUnknownRecord::$type
vendor/evgeek/moysklad/src/Api/Record/AbstractRecord.php:96
Ломается на моменте обработки массив attributes
(Дополнительные поля) заказа. Массив поля если что, выглядит так:
[
"meta" => [
"href" => "https://online.moysklad.ru/api/remap/1.2/entity/customerorder/metadata/attributes/тут uuid",
"type" => "attributemetadata",
"mediaType" => "application/json",
],
"id" => "тут uuid",
"name" => "Название",
"type" => "boolean",
"value" => false,
]
Привет!
Заметил, что в классе Meta
есть метод state
и он возвращает метадату статуса только для заказа (customerorder). Думаю можно было бы добавить вторым параметром в этом методе переменную entity
, со значением по умолчанию "customerorder". Это даст возможность создавать метадату статуса для любой сущности с помощью этого метода.
Привет, МойСклад поменял url с online.moysklad.ru на api.moysklad.ru.
Подробнее тут.
Доброго дня! Библиотеку установил, классы подключаются, вроде все нормально, а вот как дальше - разобраться сложновато.
Первый вопрос технический - будет ли работать на локалке (OpenServer) php 8.1 (просто может и не стоит на локалке пробовать, вот в чем вопрос, и все это работает только по https ?)
Но попробовал, вот так
$ms = new \Evgeek\Moysklad\MoySklad(['my_token_here']);
$product = $ms->entity()->product()->limit(10);
получаю объект, но в нем по сути ничего нет, множество полей разных. Приведите пожалуйста какой то простейший пример, как получить, например, номер заказа, или контаргентов, ну то есть хоть увидеть работает или нет)) Дальше уже сам надеюсь разберусь.
Заранее благодарен!
Здравствуйте. У меня такой вопрос в рамках ваше проекта как я могу быстро переходить по адресам получаемым в meta.
Какой мне использовать для этого метод или писать свой?
Привет!
В версии 0.10 появилось много изменений в классе Meta
, есть пара моментов с ними:
state
, но об этом нет информации в Upgrade guide, а также нет примера в документации, как правильно передавать родителя.attributemetadata
, используется только для сущности модификации, хотя атрибуты также есть у CustomerOrder например.Здравствуйте, поступила задача получить количество продаж каждого товара. Необходимую мне информацию нашел в разделе «История» у каждого товара. Скажите, через какой метод я могу получить историю или может у вас уже есть метод который сможет мне предоставить информацию о количестве проданных товаров?
Добрый день!
Хотелось бы какой-то более удобный и наглядный способ для обновления сущностей.
Сейчас процесс для добавления нового счета к контрагенту выглядит так:
$contragent = $ms->query()->entity()->method('counterparty')->limit(100)->filter(.....)->expand('accounts')->get()->rows[0];
$contragent->accounts = $ms->query()->entity()->method('counterparty')->byId($contragent->id)->method('accounts')->get();
$contragent->accounts->rows[] = ['accountNumber' => $number, 'bankName' => $bankname, 'bic' => $bic];
$contragent = $ms->query()->entity()->method('counterparty')->byId($counterparty->id)->update($contragent);
Из самого очевидного - зачем нам ещё раз формировать url запроса к сущности, если он у нас лежит в meta->url? хотелось бы просто взять его и отправить запрос либо напрямую от сущности типа $contragent->update()
Либо, что могло бы пригодиться при работе со всякими доп справочниками и доп полями - обращение по url
типа $ms->queryByUrl($contragent->accounts->meta->url)->get()
Когда я хочу скачать документ, он выдает ошибку InvalidArgumentException
$ms->query()
->endpoint('entity')
->method('customerorder')
->byId($orderID)
->method('export')
->send('POST',
[
"template" => [
"meta" => [
"href"=> "https://api.moysklad.ru/api/remap/1.2/entity/customerorder/metadata/customtemplate/45f9e4cd-ecb8-4e26-9876-343ee4c8afe7",
"type"=> "customtemplate",
"mediaType" => "application/json"
]
],
"extension" => "xls"
])
Evgeek\Moysklad\Formatters\StdClassFormat.php
try {
$encodedContent = json_decode($content, false, 512, JSON_THROW_ON_ERROR);
} catch (Throwable) {
$this->throwContentIsNotValidJsonObject($content);
}
на самом деле $content — это содержимое файла,
но здесь он просит JSON
Есть ли другой способ скачать документы?
Проблема!!! Составление запроса правильное, но при вызове метода get() - пустота! Где-то по пути теряются данные.
Как найти все модификации для определенного цвета, например?
$variants = UnknownObject::collection($ms, ['entity', 'variant'], 'variant')
->filter('https://api.moysklad.ru/api/remap/1.2/entity/variant/metadata/characteristics/63567822-c3a4-11eb-0a80-001f0022de58', '=', "бежевый")
->get();
Установка
$ composer require evgeek/moysklad
Это куда надо писать? Куда файлы копировать? В общем, очень непонятно описано и как пользоваться не понятно...
Я пытался написать множественное обновление товаров и модифицкаций, и для этого использовать метод send(HttpMethod::POST, [[<item>]])
. При отправке запроса с множественным действием я получал ошибку на уровне ApiClient. Хотелось бы иметь возможность отправлять запросы с множественными действиями (создание/обновление). По запросу все выполнял как требуется и передавал к item meta
если этот объект необходимо редактировать.
Здравствуйте. Список товаров я получил.
$products = $ms->query() ->entity() ->product() ->order('name') ->limit(3) ->get();
Тут выдает предупреждение:
foreach ($products as $product) { var_dump($product->name); }
Warning: Undefined property: stdClass::$name in /moysklad/index.php on line 20 NULL
->order('moment','desc') - так работает
->order('moment,desc') - так не использует порядок сортировки, отправляет как order=moment,desc,asc
Тогда вопрос, как указывать несколько сортировок? через массив?
я скопировал все классы у продукта на получение и вроде создания категорий
категории я отдельно получаю но вот создаются они исключительно в корне
$productfolder = $this->ms
->query()
->entity()
->productfolder()
// ->debug()
->create(['name' => $cro->get('pagetitle'), 'pathName' => 'Товары']);
ЗЫ
вы уж извините что я так много вопросов создаю
Добрый день!
может ли библиотека работать с вебхуками?
Если да, то можно примеры?
Привет, при обработке массива tags
(Группы контрагентов) у контрагента выдает такую ошибку:
Evgeek\Moysklad\Formatters\RecordFormat::convertToStdClass():
Argument #1 ($content) must be of type Evgeek\Moysklad\Api\Record\AbstractRecord|array, string given, called in vendor/evgeek/moysklad/src/Formatters/RecordFormat.php on line 118
Массив tags
если что, выглядит вот так:
['Название группы']
Пытаюсь получить остаток для отгрузки, но не получается сформировать запрос тк operation.id заменяется на operation_id в конструкторе
Помогите
$demandstock = $ms
->query()
->fromUrl("https://online.moysklad.ru/api/remap/1.2/report/stock/byoperation?operation.id=0bf54c31-9d12-11ee-0a80-153f00149905", true)
->get();
Как получить "Ассортимент" с остатками по складу
Здравствуйте!
Мне нужно разработать интеграцию между АмоCRM и моим складом.
Сможете помочь в этом вопросе?
Моя почта [email protected]
Доброго времени!
Можно ли при помощи Конструктор запросов сделать запрос к Vendor API?
Смотрю что везде жестко прописан базовый URL только к Json Api.
Теперь точно по существу. Работа с сущностями по типу - "companysettings/pricetype". Api отдает json. По коду я получаю вот такую ошибку:
Fatal error: Uncaught TypeError: Evgeek\Moysklad\Formatters\StdClassFormat::encode(): Return value must be of type stdClass, array returned in /vendor/evgeek/moysklad/src/Formatters/StdClassFormat.php:31
vendor/evgeek/moysklad/src/Http/ApiClient.php(39): Evgeek\Moysklad\Formatters\StdClassFormat::encode('[ {\n "meta" : ...')vendor/evgeek/moysklad/src/Api/Builders/Builder.php(40): Evgeek\Moysklad\Http\ApiClient->send(Object(Evgeek\Moysklad\Http\Payload))vendor/evgeek/moysklad/src/Api/Traits/Actions/GetTrait.php(27): Evgeek\Moysklad\Api\Builders\Builder->apiSend(Object(Evgeek\Moysklad\Enums\HttpMethod))
Привет, эта строчка вызывает ошибку, т.к. в $payload
нет свойства url
, думаю вместо него должно быть path
moysklad/src/Http/ApiClient.php
Line 85 in 1e208a0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.