/** * Returns suggested quantities for items. * Can be used to automatically fix user entered quantities before updating cart * so that cart contains valid qty values * * The $data is an array of ($quoteItemId => (item info array with 'qty' key), ...) * * @param array $data * @return array */ public function suggestItemsQty($data) { foreach ($data as $itemId => $itemInfo) { if (!isset($itemInfo['qty'])) { continue; } $qty = (double) $itemInfo['qty']; if ($qty <= 0) { continue; } $quoteItem = $this->getQuote()->getItemById($itemId); if (!$quoteItem) { continue; } $product = $quoteItem->getProduct(); if (!$product) { continue; } $data[$itemId]['before_suggest_qty'] = $qty; $data[$itemId]['qty'] = $this->stockState->suggestQty($product->getId(), $qty, $product->getStore()->getWebsiteId()); } return $data; }
public function testSuggestQty() { $this->assertEquals($this->qty, $this->stockState->suggestQty($this->productId, $this->qty, $this->websiteId)); }