tooyz/moysklad

Получение списка товаров из Заказа покупателя

Closed this issue · 1 comments

Как получить товары которые хранятся в заказе покупателя?

В заказе храняться не товары, а позиции в которых есть ссылка на ассортимент, он же товар или его модификация.

В идеале используя экспанд это должно выглядеть вот так:

$customerOrder = CustomerOrder::query($storage, QuerySpecs::create([
    'maxResults' => 1,
    'expand' => Expand::create(['positions', 'positions.assortment']),
]))->byId('...');


foreach ($customerOrder->relations->positions as $position)
{
    $position->assortment->id...
}

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

$customerOrder = CustomerOrder::query($storage)->byId('...');

$customerPositionList = $customerOrder->relationListQuery('positions')->getList();

foreach ($customerPositionList as $position)
{
    $assortment = $position->relations->fresh('assortment');
    $assortment->id...
}

На фоне всей этой красоты рекомендую вам не использовать в данный момент времени данную библиотеку, по крайней мере пока нет нормальной поддержки от людей которые в этом заинтересованы. Берите любой http клиент и читайте доку моего склада, это сначала не так удобно будет, но избавит вас от головой боли допила либы.