Skip to main content

How to create Guest Wishlist For Magento

Add to wishlist without customer login


Add three tables

CREATE TABLE `wishlist` (
`wishlist_id` INT(11) NOT NULL AUTO_INCREMENT,
`customer_id` INT(11) NULL DEFAULT NULL,
`shared` INT(11) NULL DEFAULT NULL,
`sharing_code` VARCHAR(50) NULL DEFAULT NULL,
`updated_at` TIMESTAMP NULL DEFAULT NULL,
`cookie` VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (`wishlist_id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=0
;


CREATE TABLE `wishlist_item` (
`wishlist_item_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Wishlist item ID',
`wishlist_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Wishlist ID',
`product_id` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'Product ID',
`store_id` SMALLINT(5) UNSIGNED NULL DEFAULT NULL COMMENT 'Store ID',
`added_at` TIMESTAMP NULL DEFAULT NULL COMMENT 'Add date and time',
`description` TEXT NULL COMMENT 'Short description of wish list item',
`qty` DECIMAL(12,4) NOT NULL COMMENT 'Qty',
PRIMARY KEY (`wishlist_item_id`),
INDEX `IDX_WISHLIST_ITEM_WISHLIST_ID` (`wishlist_id`),
INDEX `IDX_WISHLIST_ITEM_PRODUCT_ID` (`product_id`),
INDEX `IDX_WISHLIST_ITEM_STORE_ID` (`store_id`)
)
COMMENT='Wishlist items'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=0
;

CREATE TABLE `wishlist_item_option` (
`option_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Option Id',
`wishlist_item_id` INT(10) UNSIGNED NOT NULL COMMENT 'Wishlist Item Id',
`product_id` INT(10) UNSIGNED NOT NULL COMMENT 'Product Id',
`code` VARCHAR(255) NOT NULL COMMENT 'Code',
`value` TEXT NULL COMMENT 'Value',
PRIMARY KEY (`option_id`)
)
COMMENT='Wishlist Item Option Table'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=3
;


..........................................................................
After That :

edit - app/code/core/Mage/Wishlist/controllers/IndexController.php

Replace these functions:
protected $_skipAuthentication = true;

 public function skipAuthentication()
    {
        $this->_skipAuthentication = true;
        return $this;
    }


 protected function _getWishlist($wishlistId = null)
    {
        $wishlist = Mage::registry('wishlist');
        if ($wishlist) {
            return $wishlist;
        }

        try {
            if (!$wishlistId) {
                $wishlistId = $this->getRequest()->getParam('wishlist_id');
            }
            $customerId = Mage::getSingleton('customer/session')->getCustomerId();
            /* @var Mage_Wishlist_Model_Wishlist $wishlist */
            $wishlist = Mage::getModel('wishlist/wishlist');
            if ($wishlistId) {
                $wishlist->load($wishlistId);
            } else {
                $wishlist->loadByCustomer($customerId, true);
            }

            if (!$wishlist->getId() ) {
                $wishlist = null;
                Mage::throwException(
                    Mage::helper('wishlist')->__("Requested wishlist doesn't exist")
                );
            }

            Mage::register('wishlist', $wishlist);
        } catch (Mage_Core_Exception $e) {
            Mage::getSingleton('wishlist/session')->addError($e->getMessage());
            return false;
        } catch (Exception $e) {
            Mage::getSingleton('wishlist/session')->addException($e,
                Mage::helper('wishlist')->__('Wishlist could not be created.')
            );
            return false;
        }

        return $wishlist;
    }

Solved :)

Comments

Popular posts from this blog

How to add tab in Customer Information in Magento Admin

Step 1) Override the file /app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tabs.php, Inside _beforeToHtml() method, add the following code: $ this -> addTab ( 'Custom' , array (      'label'   = > Mage :: helper ( 'customer' ) -> __ ( 'Custom' ) ,      'class'   = >     'ajax' ,      'url'     = >     $ this -> getUrl ( '*/*/custom' , array ( '_current' = > true ) ) , ) ) ; Step 2)  Override the file /app/code/core/Mage/Adminhtml/controllers/CustomerController.php, Add the following code: public function customAction() { $this->_initCustomer(); $this->getResponse()->setBody( Mage::app()->getLayout()->createBlock('core/template')->setTemplate('custom/customer/tab/custom.phtml')->setCustomerId(Mage::registry('current_customer')->getId())         ->setUseAjax(true)-...

get directory paths, get Base URLs, get URLs in static block, get secure URL in Magento

1) Get Directory paths  Mage::getBaseDir()  //output : /var/www/html/magento Mage::getBaseDir('app')  //output : /var/www/html/magento/app Mage::getBaseDir('media') //output : /var/www/html/magento/media Mage::getBaseDir(‘design’) => Get design directory path Mage::getBaseDir(‘code’) => Gives code directory file path Mage::getBaseDir(‘lib’) => Gives lib directory file path Mage::getBaseDir(‘skin’) => Gives skin directory file path Mage::getBaseDir(‘var’) => Gives var directory file path Mage::getBaseDir(‘cache’) => Gives cache directory file path Mage::getBaseDir(‘log’) => Gives log directory file path       2) Get Base URL  Mage::getBaseUrl() => Get base url path e.g. http://yourwebsite.com/  Mage::getBaseUrl('media') => Get MEDIA folder path e.g. http://yourwebsite.com/media/  Mage::getBaseUrl('js') => Get JS folder path e.g. http://yourwebsite.com/js/  Mage::getBaseUrl('skin') => Get...