Example #1
1
 /**
  * Set qty and custom price for quote item
  *
  * @param Item $item
  * @param Object $request
  * @param Product $candidate
  * @return void
  */
 public function prepare(Item $item, Object $request, Product $candidate)
 {
     /**
      * We specify qty after we know about parent (for stock)
      */
     $item->addQty($candidate->getCartQty());
     $customPrice = $request->getCustomPrice();
     if (!empty($customPrice)) {
         $item->setCustomPrice($customPrice);
         $item->setOriginalCustomPrice($customPrice);
     }
 }
Example #2
0
 /**
  * Set qty and custom price for quote item
  *
  * @param Item $item
  * @param \Magento\Framework\Object $request
  * @param Product $candidate
  * @return void
  */
 public function prepare(Item $item, Object $request, Product $candidate)
 {
     /**
      * We specify qty after we know about parent (for stock)
      */
     if ($request->getResetCount() && !$candidate->getStickWithinParent() && $item->getId() == $request->getId()) {
         $item->setData(CartItemInterface::KEY_QTY, 0);
     }
     $item->addQty($candidate->getCartQty());
     $customPrice = $request->getCustomPrice();
     if (!empty($customPrice)) {
         $item->setCustomPrice($customPrice);
         $item->setOriginalCustomPrice($customPrice);
     }
 }
Example #3
0
 /**
  * Prepares custom price and sets into a BuyRequest object as option of quote item
  *
  * @param array $info
  * @param Item $item
  * @return array
  */
 protected function setCustomPrice(array $info, Item $item)
 {
     $itemPrice = $this->parseCustomPrice($info['custom_price']);
     /** @var \Magento\Framework\DataObject $infoBuyRequest */
     $infoBuyRequest = $item->getBuyRequest();
     if ($infoBuyRequest) {
         $infoBuyRequest->setCustomPrice($itemPrice);
         $infoBuyRequest->setValue(serialize($infoBuyRequest->getData()));
         $infoBuyRequest->setCode('info_buyRequest');
         $infoBuyRequest->setProduct($item->getProduct());
         $item->addOption($infoBuyRequest);
     }
     $item->setCustomPrice($itemPrice);
     $item->setOriginalCustomPrice($itemPrice);
 }