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;
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
Post a Comment