* @since 100.0.2 */ class Item extends \Magento\Quote\Model\Quote\Item\AbstractItem { /** * Quote address model object * * @var \Magento\Quote\Model\Quote\Address */ protected $_address; /** * @var Quote */ protected $_quote; /** * @inheritdoc */ protected function _construct() { $this->_init(\Magento\Quote\Model\ResourceModel\Quote\Address\Item::class); } /** * @inheritdoc */ public function beforeSave() { parent::beforeSave(); if ($this->getAddress()) { $this->setQuoteAddressId($this->getAddress()->getId()); } return $this; } /** * Declare address model * * @param \Magento\Quote\Model\Quote\Address $address * @return $this */ public function setAddress(\Magento\Quote\Model\Quote\Address $address) { $this->_address = $address; $this->_quote = $address->getQuote(); return $this; } /** * Retrieve address model * * @return \Magento\Quote\Model\Quote\Address */ public function getAddress() { return $this->_address; } /** * Retrieve quote model instance * * @return Quote */ public function getQuote() { return $this->_quote; } /** * Import quote item. * * @param \Magento\Quote\Model\Quote\Item $quoteItem * @return $this */ public function importQuoteItem(\Magento\Quote\Model\Quote\Item $quoteItem) { $this->_quote = $quoteItem->getQuote(); $this->setQuoteItem( $quoteItem )->setQuoteItemId( $quoteItem->getId() )->setProductId( $quoteItem->getProductId() )->setProduct( $quoteItem->getProduct() )->setStoreId( $quoteItem->getStoreId() )->setSku( $quoteItem->getSku() )->setName( $quoteItem->getName() )->setDescription( $quoteItem->getDescription() )->setWeight( $quoteItem->getWeight() )->setPrice( $quoteItem->getPrice() )->setCost( $quoteItem->getCost() ); if (!$this->hasQty()) { $this->setQty($quoteItem->getQty()); } $this->setQuoteItemImported(true); return $this; } /** * @inheritdoc * @since 101.1.1 */ public function getOptionByCode($code) { if ($this->getQuoteItem()) { return $this->getQuoteItem()->getOptionBycode($code); } return null; } }