/** * @param \Magento\Sales\Model\Order\Item $orderItem * @param array $response * @return void */ protected function assertOrderItem(\Magento\Sales\Model\Order\Item $orderItem, array $response) { $this->assertEquals($orderItem->getId(), $response['item_id']); $this->assertEquals($orderItem->getOrderId(), $response['order_id']); $this->assertEquals($orderItem->getProductId(), $response['product_id']); $this->assertEquals($orderItem->getProductType(), $response['product_type']); $this->assertEquals($orderItem->getBasePrice(), $response['base_price']); $this->assertEquals($orderItem->getRowTotal(), $response['row_total']); }
/** * Retrieve tracking variables for an order item * * @param \Magento\Sales\Model\Order\Item $item The order item * * @return array */ private function getOrderItemVariables($item) { $variables = []; if (!$item->isDummy()) { $itemId = $item->getId(); $prefix = "order.items.{$itemId}"; $variables[$prefix . '.sku'] = $item->getSku(); $variables[$prefix . '.product_id'] = $item->getProductId(); $variables[$prefix . '.qty'] = $item->getQtyOrdered(); $variables[$prefix . '.price'] = $item->getBasePrice(); $variables[$prefix . '.row_total'] = $item->getRowTotal(); $variables[$prefix . '.label'] = $item->getName(); $variables[$prefix . '.salesrules'] = $item->getAppliedRuleIds(); if ($product = $item->getProduct()) { $categoriesId = $product->getCategoryIds(); if (count($categoriesId)) { $variables[$prefix . '.category_ids'] = implode(",", $categoriesId); } } } return $variables; }
/** * @param \Magento\Sales\Model\Order\Item $item * @return $this */ public function addItem(\Magento\Sales\Model\Order\Item $item) { $item->setOrder($this); if (!$item->getId()) { $this->setItems(array_merge($this->getItems(), [$item])); } return $this; }
/** * Initialize creation data from existing order Item * * @param \Magento\Sales\Model\Order\Item $orderItem * @param int $qty * @return \Magento\Quote\Model\Quote\Item|string|$this */ public function initFromOrderItem(\Magento\Sales\Model\Order\Item $orderItem, $qty = null) { if (!$orderItem->getId()) { return $this; } $product = $this->_objectManager->create('Magento\\Catalog\\Model\\Product')->setStoreId($this->getSession()->getStoreId())->load($orderItem->getProductId()); if ($product->getId()) { $product->setSkipCheckRequiredOption(true); $buyRequest = $orderItem->getBuyRequest(); if (is_numeric($qty)) { $buyRequest->setQty($qty); } $item = $this->getQuote()->addProduct($product, $buyRequest); if (is_string($item)) { return $item; } if ($additionalOptions = $orderItem->getProductOptionByCode('additional_options')) { $item->addOption(new \Magento\Framework\DataObject(['product' => $item->getProduct(), 'code' => 'additional_options', 'value' => serialize($additionalOptions)])); } $this->_eventManager->dispatch('sales_convert_order_item_to_quote_item', ['order_item' => $orderItem, 'quote_item' => $item]); return $item; } return $this; }
/** * @param \Magento\Sales\Model\Order\Item $item * @return $this */ public function addItem(\Magento\Sales\Model\Order\Item $item) { $item->setOrder($this); if (!$item->getId()) { $this->getItemsCollection()->addItem($item); } return $this; }
/** * Declare order item instance * * @param \Magento\Sales\Model\Order\Item $item * @return $this */ public function setOrderItem(\Magento\Sales\Model\Order\Item $item) { $this->_orderItem = $item; $this->setOrderItemId($item->getId()); return $this; }
/** * Check if no dummy order item can be refunded * * @param \Magento\Sales\Model\Order\Item $item * @param array $invoiceQtysRefundLimits * @return bool */ protected function _canRefundNoDummyItem($item, $invoiceQtysRefundLimits = []) { if ($item->getQtyToRefund() < 0) { return false; } if (isset($invoiceQtysRefundLimits[$item->getId()])) { return $invoiceQtysRefundLimits[$item->getId()] > 0; } return true; }
/** * @param \Magento\Sales\Model\Order\Item $orderItem * @return array */ public function getCreditmemoData(\Magento\Sales\Model\Order\Item $orderItem) { $data = [$orderItem->getId() => $orderItem->getQtyToRefund()]; foreach ($this->observerManager->getObservers() as $observer) { if (is_callable([$observer, 'getCreditmemoData'])) { $params = new DataObject(['order_item' => $orderItem, 'credit_memo' => $data]); $data = $observer->getCreditmemoData($params); } } return $data; }
/** * @param \Magento\Sales\Model\Order\Item $orderItem * @return array */ public function getCreditmemoData(\Magento\Sales\Model\Order\Item $orderItem) { $data = [$orderItem->getId() => $orderItem->getQtyToRefund()]; return $data; }
/** * Retrieve * * @param \Magento\Sales\Model\Order\Item $item * @return \Magento\Sales\Model\Quote\Item */ public function itemToQuoteItem(\Magento\Sales\Model\Order\Item $item) { $quoteItem = $this->_quoteItemFactory->create()->setStoreId($item->getOrder()->getStoreId())->setQuoteItemId($item->getId())->setProductId($item->getProductId())->setParentProductId($item->getParentProductId()); $this->_objectCopyService->copyFieldsetToTarget('sales_convert_order_item', 'to_quote_item', $item, $quoteItem); return $quoteItem; }