8 use Magento\Catalog\Model\ProductFactory;
13 use Zend\Code\Exception\InvalidArgumentException;
73 if (!isset(
$info[
'qty'])) {
74 throw new InvalidArgumentException(
__(
'The qty value is required to update quote item.'));
76 $itemQty =
$info[
'qty'];
77 if (
$item->getProduct()->getStockItem()) {
78 if (!
$item->getProduct()->getStockItem()->getIsQtyDecimal()) {
79 $itemQty = (int)
$info[
'qty'];
81 $item->setIsQtyDecimal(1);
84 $itemQty = $itemQty > 0 ? $itemQty : 1;
85 if (isset(
$info[
'custom_price'])) {
88 $this->unsetCustomPrice(
$item);
91 if (empty(
$info[
'action']) || !empty(
$info[
'configured'])) {
92 $noDiscount = !isset(
$info[
'use_discount']);
93 $item->setQty($itemQty);
94 $item->setNoDiscount($noDiscount);
95 $item->getProduct()->setIsSuperMode(
true);
96 $item->getProduct()->unsSkipCheckRequiredOption();
114 $infoBuyRequest =
$item->getBuyRequest();
115 if ($infoBuyRequest) {
116 $infoBuyRequest->setCustomPrice($itemPrice);
118 $infoBuyRequest->setValue($this->serializer->serialize($infoBuyRequest->getData()));
119 $infoBuyRequest->setCode(
'info_buyRequest');
120 $infoBuyRequest->setProduct(
$item->getProduct());
122 $item->addOption($infoBuyRequest);
125 $item->setCustomPrice($itemPrice);
126 $item->setOriginalCustomPrice($itemPrice);
135 protected function unsetCustomPrice(
Item $item)
138 $infoBuyRequest =
$item->getBuyRequest();
139 if ($infoBuyRequest->hasData(
'custom_price')) {
140 $infoBuyRequest->unsetData(
'custom_price');
142 $infoBuyRequest->setValue($this->serializer->serialize($infoBuyRequest->getData()));
143 $infoBuyRequest->setCode(
'info_buyRequest');
144 $infoBuyRequest->setProduct(
$item->getProduct());
145 $item->addOption($infoBuyRequest);
148 $item->unsetData(
'custom_price');
149 $item->unsetData(
'original_custom_price');
elseif(isset( $params[ 'redirect_parent']))
foreach( $_productCollection as $_product)() ?>" class $info
update(Item $item, array $info)
__construct(ProductFactory $productFactory, FormatInterface $localeFormat, ObjectFactory $objectFactory, \Magento\Framework\Serialize\Serializer\Json $serializer=null)