/** * 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\\Sales\\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()); }
/** * 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); } }