Files
stemcell/app/code/Stemcell/Checkout/Observer/ApplyCustomerDiscount.php
T
2026-09-15 10:26:34 +08:00

46 lines
1.3 KiB
PHP

<?php
namespace Stemcell\Checkout\Observer;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\App\RequestInterface;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Psr\Log\LoggerInterface;
class ApplyCustomerDiscount implements ObserverInterface
{
private RequestInterface $request;
public function __construct(
RequestInterface $request
) {
$this->request = $request;
}
/**
* @param \Magento\Quote\Model\Quote\Item $item
* @return $this
*/
protected function getDiscountPercent(\Magento\Quote\Model\Quote\Item $item)
{
$cartData = $this->request->getParam('cart');
if (isset($cartData[$item->getId()]['customer_discount_percent'])) {
$discount = floatval($cartData[$item->getId()]['customer_discount_percent']);
$item->setCustomerDiscountPercent($discount);
}
return $this;
}
public function execute(Observer $observer)
{
/* @var $cart \Magento\Checkout\Model\Cart */
$cart = $observer->getCart();
$logger = ObjectManager::getInstance()->get(LoggerInterface::class);
foreach ($cart->getItems() as $item) {
/* @var $item \Magento\Quote\Model\Quote\Item */
$this->getDiscountPercent($item);
}
}
}