我想将服装数据保存在购物车项目中,我已检查数据已保存在数据库中,但当我获取时,它将返回null
。
我有添加事件,用于将服装数据添加到购物车中。
Observer.php
public function checkoutCartProductAddAfter(Varien_Event_Observer $observer){
try {
$data = $this->_getRequest()->getPost();
$item = $observer->getEvent()->getQuoteItem();
$item->setData('customize_data', $data['customize_data']);
$item->setData('customize_image', $data['customize_image']);
$item->save();
}
catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
我想更改购物车页面中的图像,因此我创建了以下文件。
<?php
class ProductCustomizer_ProductCustomizer_Block_Checkout_Cart_Item_Renderer extends Mage_Checkout_Block_Cart_Item_Renderer{
public function getProductThumbnail()
{
$customize_data = $this->getItem()->getData('customize_data');
$customize_image = $this->getItem()->getData('customize_image');
Mage::log('customize_data');
Mage::log($customize_data);
Mage::log('customize_image');
Mage::log($customize_image);
if (!empty($customize_image)) {
return $customize_image;
} else {
return parent::getProductThumbnail();
}
}
}
我在 system.log 文件中收到以下日志
2017-01-02T06:38:29+00:00 DEBUG (7): customize_data
2017-01-02T06:38:29+00:00 DEBUG (7):
2017-01-02T06:38:29+00:00 DEBUG (7): customize_image
2017-01-02T06:38:29+00:00 DEBUG (7):
最佳答案
您无需在项目表中添加新列即可完成此操作,
Observer.php
public function checkoutCartProductAddAfter(Varien_Event_Observer $observer){
try {
$data = Mage::app()->getRequest()->getPost();
$item = $observer->getQuoteItem();
$additional_info = $item->getadditional_info();
$additional_info = unserialize($additional_info);
$additional_info['customize']['customize_data'] = $data['customize_data'];
$additional_info['customize']['customize_image'] = $data['customize_image'];
$item->setAdditionalInfo(serialize($additional_info));
$item->save();
}
catch (Exception $e) {
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
}
}
购物车页面:
class ProductCustomizer_ProductCustomizer_Block_Checkout_Cart_Item_Renderer extends Mage_Checkout_Block_Cart_Item_Renderer{
public function getProductThumbnail()
{
$additional_info = $this->getItem()->getData('additional_info');
$additional_info = unserialize($additional_info);
if(isset($additional_info['customize']) && $additional_info['customize']){
Mage::log('customize_data');
Mage::log($additional_info['customize']['customize_data']);
Mage::log('customize_image');
Mage::log($additional_info['customize']['customize_image']);
return $additional_info['customize']['customize_image'];
}
return parent::getProductThumbnail();
}
}
关于php - 如何在magento中的购物车中添加自定义数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41422438/