示例#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);
     }
 }
示例#2
0
 /**
  * Tests that adding a quantity to an item with a parent item and an id will not change the quantity.
  */
 public function testAddQtyExistingParentItemAndId()
 {
     $existingQuantity = 2;
     $quantityToAdd = 3;
     $parentItemMock = $this->getMockBuilder('Magento\\Quote\\Model\\Quote\\Item')->setMethods(['addChild', '__wakeup'])->disableOriginalConstructor()->getMock();
     $this->model->setParentItem($parentItemMock);
     $this->model->setId(1);
     $this->model->setData('qty', $existingQuantity);
     $this->model->addQty($quantityToAdd);
     $this->assertEquals($existingQuantity, $this->model->getQty());
     $this->assertNull($this->model->getQtyToAdd());
 }
示例#3
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);
     }
 }