/** * Verify fields in quote item * * @param \Magento\Quote\Model\Quote\Address\Item $item * @param array $expectedItemData * @return $this */ protected function verifyItem($item, $expectedItemData) { foreach ($expectedItemData as $key => $value) { $this->assertEquals($value, $item->getData($key), 'item ' . $key . ' is incorrect'); } return $this; }
/** * @param Item|AddressItem $item * @param array $data * @return OrderItemInterface */ public function convert($item, $data = []) { $options = $item->getProductOrderOptions(); if (!$options) { $options = $item->getProduct()->getTypeInstance()->getOrderOptions($item->getProduct()); } $orderItemData = $this->objectCopyService->getDataFromFieldset('quote_convert_item', 'to_order_item', $item); if (!$item->getNoDiscount()) { $data = array_merge($data, $this->objectCopyService->getDataFromFieldset('quote_convert_item', 'to_order_item_discount', $item)); } $orderItem = $this->orderItemFactory->create(); $this->dataObjectHelper->populateWithArray($orderItem, array_merge($orderItemData, $data), '\\Magento\\Sales\\Api\\Data\\OrderItemInterface'); $orderItem->setProductOptions($options); if ($item->getParentItem()) { $orderItem->setQtyOrdered($orderItemData[OrderItemInterface::QTY_ORDERED] * $item->getParentItem()->getQty()); } return $orderItem; }
/** * Remove item * * @param Address $address * @param AddressItem|Item $item * @return $this */ protected function _removeItem($address, $item) { if ($item instanceof Item) { $address->removeItem($item->getId()); if ($address->getQuote()) { $address->getQuote()->removeItem($item->getId()); } } elseif ($item instanceof AddressItem) { $address->removeItem($item->getId()); if ($address->getQuote()) { $address->getQuote()->removeItem($item->getQuoteItemId()); } } return $this; }