public function testSetProductWithQuoteAndStockItem() { $productMock = $this->generateProductMock(self::PRODUCT_ID, self::PRODUCT_TYPE, self::PRODUCT_SKU, self::PRODUCT_NAME, self::PRODUCT_WEIGHT, self::PRODUCT_TAX_CLASS_ID, self::PRODUCT_COST); $this->eventDispatcher->expects($this->once())->method('dispatch')->with('sales_quote_item_set_product', ['product' => $productMock, 'quote_item' => $this->model]); $isQtyDecimal = true; $this->stockItemMock->expects($this->any())->method('getStockId')->will($this->returnValue(99)); $this->stockItemMock->expects($this->once())->method('getIsQtyDecimal')->will($this->returnValue($isQtyDecimal)); $storeId = 15; $customerGroupId = 11; $quoteMock = $this->getMockBuilder('Magento\\Quote\\Model\\Quote')->disableOriginalConstructor()->setMethods(['getStoreId', 'getCustomerGroupId', '__wakeup'])->getMock(); $quoteMock->expects($this->any())->method('getStoreId')->will($this->returnValue($storeId)); $quoteMock->expects($this->once())->method('getCustomerGroupId')->will($this->returnValue($customerGroupId)); $this->model->setQuote($quoteMock); $productMock->expects($this->once())->method('setStoreId')->with($storeId); $productMock->expects($this->once())->method('setCustomerGroupId')->with($customerGroupId); $this->model->setProduct($productMock); $this->assertEquals($productMock, $this->model->getProduct()); $this->assertEquals(self::PRODUCT_ID, $this->model->getProductId()); $this->assertEquals(self::PRODUCT_TYPE, $this->model->getRealProductType()); $this->assertEquals(self::PRODUCT_SKU, $this->model->getSku()); $this->assertEquals(self::PRODUCT_NAME, $this->model->getName()); $this->assertEquals(self::PRODUCT_WEIGHT, $this->model->getWeight()); $this->assertEquals(self::PRODUCT_TAX_CLASS_ID, $this->model->getTaxClassId()); $this->assertEquals(self::PRODUCT_COST, $this->model->getBaseCost()); $this->assertEquals($isQtyDecimal, $this->model->getIsQtyDecimal()); }
/** * @param Item $item * @return string */ protected function buildItemName(Item $item) { // todo: the name must include the variant properties just like in Magento 1 return $item->getName(); }
/** * Push `addEcommerceItem' with quote item data to given tracker * * @param \Magento\Quote\Model\Quote\Item $item * @param \Henhed\Piwik\Model\Tracker $tracker * @return \Henhed\Piwik\Helper\Tracker */ public function addQuoteItem(Quote\Item $item, TrackerModel $tracker) { $tracker->addEcommerceItem($item->getSku(), $item->getName(), false, $item->hasCustomPrice() ? (double) $item->getCustomPrice() : (double) $item->getPriceInclTax(), (double) $item->getQty()); return $this; }