tooyz / moysklad

Moysklad PHP JSON API library
MIT License
65 stars 57 forks source link

Добавление списка товаров при создании заказа покупателя #49

Closed AlexSolonin closed 5 years ago

AlexSolonin commented 5 years ago

Добрый день! В описании приведён пример создания заказа покупателя: $order = (new CustomerOrder($this->sklad))->buildCreation() ->addCounterparty($counterparty) ->addOrganization($organization) ->addPositionList($positions) ->execute(); уточнено, что мы можем добавить массив позиций ($positions). Но метод addPositionList требует в переменной $positions наличие сущности EntityList, а не массива. Я создаю эту сущность через new EntityList указывая массив из сущностей Product, которые я создаю через new Product, но я не знаю как указать количество(quantity) каждой сущности Product. А без количества сделка не создаётся.

Как мне добавить это количество к каждой сущности Product В EntityList? Можете привести нормальный пример создания заказа со списком товаров? Спасибо!

smadrom commented 5 years ago
$products = [
    ['id' => 123, 'quantity' => 2],
    ['id' => 321, 'quantity' => 4],
];

$positions = new EntityList($storage);

foreach ($products as $product)
{
    //$position = new Product($storage, ['quantity' => 111])
    $position = Product::query($storage)->byId($product['id']);
    $position->quantity = $product['quantity'];
    $positions->push($position);
}

->addPositionList($positions);
AlexSolonin commented 5 years ago

Спасибо большое! Теперь всё ясно! ))