src/models/ShopOrder.php
public function addShopOrderItems($items = [])
    {
        /**
         * @var ShopOrderItem[] $items
         * @var ShopOrderItem   $currentBasket
         */
        foreach ($items as $item) {
            //Если в корзине которую необходимо добавить продукт такой же который уже есть у текущего пользователя, то нужно обновить количество.
            if ($currentBasket = $this->getShopOrderItems()->andWhere(['shop_product_id' => $item->shop_product_id])->one()) {
                $currentBasket->quantity = $currentBasket->quantity + $item->quantity;
                $currentBasket->save();

                $item->delete();
            } else {
                $item->shop_order_id = $this->id;
                $item->save();
            }
        }

        return $this;
    }
public function addShopOrderItems($items = [])
    {
        /**
         * @var ShopOrderItem[] $items
         * @var ShopOrderItem   $currentBasket
         */
        foreach ($items as $item) {
            //Если в корзине которую необходимо добавить продукт такой же который уже есть у текущего пользователя, то нужно обновить количество.
            if ($currentBasket = $this->getShopOrderItems()->andWhere(['shop_product_id' => $item->shop_product_id])->one()) {
                $currentBasket->quantity = $currentBasket->quantity + $item->quantity;
                $currentBasket->save();

                $item->delete();
            } else {
                $item->shop_order_id = $this->id;
                $item->save();
            }
        }

        return $this;
    }
Добавить в заказ еще позиции

@param array $items
@return $this