Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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;
 }