/** * Loads item together with its options (default load() method doesn't load options). * If we need to load only some of options, then option code or array of option codes * can be provided in $optionsFilter. * * @param int $id * @param null|string|array $optionsFilter * * @return $this */ public function loadWithOptions($id, $optionsFilter = null) { $this->load($id); if (!$this->getId()) { return $this; } $options = $this->_wishlOptionCollectionFactory->create()->addItemFilter($this); if ($optionsFilter) { $options->addFieldToFilter('code', $optionsFilter); } $this->setOptions($options->getOptionsByItem($this)); return $this; }
/** * Add options to items * * @return $this */ protected function _assignOptions() { $itemIds = array_keys($this->_items); /* @var $optionCollection \Magento\Wishlist\Model\Resource\Item\Option\Collection */ $optionCollection = $this->_optionCollectionFactory->create(); $optionCollection->addItemFilter($itemIds); /* @var $item \Magento\Wishlist\Model\Item */ foreach ($this as $item) { $item->setOptions($optionCollection->getOptionsByItem($item)); } $productIds = $optionCollection->getProductIds(); $this->_productIds = array_merge($this->_productIds, $productIds); return $this; }