/** * Get item * * @return \XLite\Model\OrderItem */ public function getItem() { if (!isset($this->item)) { // Initialize order item from request param item_id if (is_numeric(\XLite\Core\Request::getInstance()->item_id)) { $item = \XLite\Core\Database::getRepo('XLite\\Model\\OrderItem')->find(\XLite\Core\Request::getInstance()->item_id); if ($item && $item->getProduct() && $item->hasAttributeValues()) { $this->item = $item; } } } if (!isset($this->item) && \XLite\Core\Request::getInstance()->productId) { // Initialize order item from productId param $product = \XLite\Core\Database::getRepo('XLite\\Model\\Product')->find(\XLite\Core\Request::getInstance()->productId); if ($product) { $this->item = new \XLite\Model\OrderItem(); $this->item->setProduct($product); $this->item->setAttributeValues($product->prepareAttributeValues()); } } if (!isset($this->item)) { // Order item was not initialized: set to false to prevent re-initialization $this->item = false; } return $this->item; }
/** * Get order item entity * * @return \XLite\Model\OrderItem */ public function getEntity() { if (is_null($this->orderItem)) { $this->orderItem = $this->getParam(self::PARAM_ORDER_ITEM); } if (is_null($this->orderItem) && $this->getParam(self::PARAM_PRODUCT_ID)) { $product = \XLite\Core\Database::getRepo('XLite\\Model\\Product')->find($this->getParam(self::PARAM_PRODUCT_ID)); if ($product) { $this->orderItem = new \XLite\Model\OrderItem(); $this->orderItem->setProduct($product); $this->orderItem->setAttributeValues($product->prepareAttributeValues()); } } return $this->orderItem; }
/** * {@inheritDoc} */ public function setProduct(\XLite\Model\Product $product = NULL) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setProduct', array($product)); return parent::setProduct($product); }