![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/Ecombricks/InventoryCheckout/Plugin/Model/ |
<?php /** * Copyright © eComBricks. All rights reserved. * See COPYING.txt for license details. */ namespace Ecombricks\InventoryCheckout\Plugin\Model; /** * Cart model plugin */ class Cart { /** * Stock state * * @var \Ecombricks\InventoryCatalogInventory\Api\StockStateInterface */ protected $stockState; /** * Constructor * * @param \Ecombricks\InventoryCatalogInventory\Api\StockStateInterface $stockState * @return void */ public function __construct( \Ecombricks\InventoryCatalogInventory\Api\StockStateInterface $stockState ) { $this->stockState = $stockState; } /** * Around suggest items qty * * @param \Magento\Checkout\Model\Cart $subject * @param \Closure $proceed * @param array $data * @return array */ public function aroundSuggestItemsQty( \Magento\Checkout\Model\Cart $subject, \Closure $proceed, $data ) { $quote = $subject->getQuote(); foreach ($data as $itemId => $item) { if (!isset($item['qty'])) { continue; } $qty = (float) $item['qty']; if ($qty <= 0) { continue; } $quoteItem = $quote->getItemById($itemId); if (empty($quoteItem)) { continue; } $product = $quoteItem->getProduct(); if (empty($product)) { continue; } $productId = $product->getId(); $sourceCode = $quoteItem->getSourceCode(); $data[$itemId]['before_suggest_qty'] = $qty; $data[$itemId]['qty'] = $this->stockState->suggestSourceQty($productId, $sourceCode, $qty); } return $data; } }