/** * Register products source 'Related Products' for 'Add to Cart popup' module * * @return array */ protected function getSources() { $sources = parent::getSources(); $sources['REL'] = array('method' => 'getSourceRelatedProducts', 'position' => 100); return $sources; }
/** * Register products source 'Customers also bought...' for 'Add to Cart popup' module * * @return array */ protected function getSources() { $sources = parent::getSources(); $sources['PAB'] = array('method' => 'getSourceCustomerBought', 'position' => 200); return $sources; }
/** * Get list of targets where 'Add to Cart' popup should not be displayed * * @param boolean */ protected static function getAdd2CartPopupExcludedTargets() { $targets = parent::getAdd2CartPopupExcludedTargets(); $targets[] = 'amazon_checkout'; return $targets; }
/** * Return true if products list shoud be displayed in popup * * @return boolean */ protected function isProductsListEnabled() { $options = \XLite\Module\XC\Add2CartPopup\Core\Add2CartPopup::getInstance()->getSelectedSourcesOption(); return !empty($options); }
/** * Return products list * * @param \XLite\Core\CommonCell $cnd Search condition * @param boolean $countOnly Return items list or only its size OPTIONAL * * @return mixed */ protected function getData(\XLite\Core\CommonCell $cnd, $countOnly = false) { if (!isset($this->products)) { $productIds = $this->getExcludedProductIds(); $methods = \XLite\Module\XC\Add2CartPopup\Core\Add2CartPopup::getInstance()->getActiveSources(); foreach ($methods as $method) { $products = \XLite\Module\XC\Add2CartPopup\Core\Add2CartPopup::getInstance()->{$method}($this->getProductId(), $productIds, static::PARAM_MAX_PRODUCT_COUNT); if ($products) { foreach ($products as $product) { $this->products[] = $product; $productIds[] = $product->getProductId(); if (static::PARAM_MAX_PRODUCT_COUNT <= count($this->products)) { break; } } } if (static::PARAM_MAX_PRODUCT_COUNT <= count($this->products)) { break; } } } return $countOnly ? count($this->products) : $this->products; }
/** * Check if widget is visible * * @return boolean */ protected function isVisible() { return parent::isVisible() && \XLite\Module\XC\Add2CartPopup\Core\Add2CartPopup::isAdd2CartPopupEnabled(); }
/** * Return options list * * @param \XLite\Core\CommonCell $cnd Search condition * @param boolean $countOnly Return items list or only its size OPTIONAL * * @return array|integer */ protected function getData(\XLite\Core\CommonCell $cnd, $countOnly = false) { $options = \XLite\Module\XC\Add2CartPopup\Core\Add2CartPopup::getInstance()->getSourcesOptions(); return $countOnly ? count($options) : $options; }