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

Parsing Domain Name From URL In PHP

To get Domain name from the url, we can use parse_url() php function. This would filter the domain name from the given url. $domain = str_ireplace ( 'www.' , '' , parse_url ( $url , PHP_URL_HOST )); This would return the google.com for both http://google.com and http://www.google.com

Help & Support System Against COVID-19 Virus.

 Help & Support System Against COVID-19 Virus. UP Police-112 - http://112.up.gov.in/hi/Pages/complaint.aspx Corona Helpline: 18001805145 / 1075  GB Nagar CCRoom: 18004192211. Delhi CC Room: 011-23490311 Gurugram: 0124-2316100 Haryana: 0172-2570070 *For Plasma*- Noida Police: https://docs.google.com/forms/d/e/1FAIpQLSfKhjiQG80eIbcr78VGUeIA4e1W