*/ class Mage_Checkout_Helper_Cart extends Mage_Core_Helper_Url { /** * XML path for redirect to cart value */ const XML_PATH_REDIRECT_TO_CART = 'checkout/cart/redirect_to_cart'; /** * Maximal coupon code length according to database table definitions (longer codes are truncated) */ const COUPON_CODE_MAX_LENGTH = 255; /** * Retrieve cart instance * * @return Mage_Checkout_Model_Cart */ public function getCart() { return Mage::getSingleton('checkout/cart'); } /** * Retrieve url for add product to cart * * @param Mage_Catalog_Model_Product $product * @param array $additional * @return string */ public function getAddUrl($product, $additional = array()) { $routeParams = array( Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->_getHelperInstance('core') ->urlEncode($this->getCurrentUrl()), 'product' => $product->getEntityId(), Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey() ); if (!empty($additional)) { $routeParams = array_merge($routeParams, $additional); } if ($product->hasUrlDataObject()) { $routeParams['_store'] = $product->getUrlDataObject()->getStoreId(); $routeParams['_store_to_url'] = true; } if ($this->_getRequest()->getRouteName() == 'checkout' && $this->_getRequest()->getControllerName() == 'cart') { $routeParams['in_cart'] = 1; } return $this->_getUrl('checkout/cart/add', $routeParams); } /** * Return helper instance * * @param string $helperName * @return Mage_Core_Helper_Abstract */ protected function _getHelperInstance($helperName) { return Mage::helper($helperName); } /** * Retrieve url for remove product from cart * * @param Mage_Sales_Quote_Item $item * @return string */ public function getRemoveUrl($item) { $params = array( 'id' => $item->getId(), Mage_Core_Controller_Front_Action::PARAM_NAME_BASE64_URL => $this->getCurrentBase64Url() ); return $this->_getUrl('checkout/cart/delete', $params); } /** * Retrieve shopping cart url * * @return unknown */ public function getCartUrl() { return $this->_getUrl('checkout/cart'); } /** * Retrieve current quote instance * * @return Mage_Sales_Model_Quote */ public function getQuote() { return Mage::getSingleton('checkout/session')->getQuote(); } /** * Get shopping cart items count * * @return int */ public function getItemsCount() { return $this->getCart()->getItemsCount(); } /** * Get shopping cart summary qty * * @return decimal */ public function getItemsQty() { return $this->getCart()->getItemsQty(); } /** * Get shopping cart items summary (inchlude config settings) * * @return decimal */ public function getSummaryCount() { return $this->getCart()->getSummaryQty(); } /** * Check qoute for virtual products only * * @return bool */ public function getIsVirtualQuote() { return $this->getQuote()->isVirtual(); } /** * Checks if customer should be redirected to shopping cart after adding a product * * @param int|string|Mage_Core_Model_Store $store * @return bool */ public function getShouldRedirectToCart($store = null) { return Mage::getStoreConfigFlag(self::XML_PATH_REDIRECT_TO_CART, $store); } }