gpt4 book ai didi

magento - 将动态价格从详细页面传递到 magento 中的购物车

转载 作者:行者123 更新时间:2023-12-02 22:02:53 25 4
gpt4 key购买 nike

我是 magento 的初学者。我需要将动态价格从详细页面传递到购物车。

现在,当我传递动态价格时,它不会在购物车中更新,而是被产品的原始价格取代。

任何帮助将不胜感激。在这一行中,我得到了价格值。 $price=$this->getRequest()->getParam('price_custom');索引 Controller .php

public function cartAction()
{
if ($this->getRequest()->getParam('cart')){
if ($this->getRequest()->getParam('cart') == "delete"){
$id = $this->getRequest()->getParam('id');
if ($id) {
try {
Mage::getSingleton('checkout/cart')->removeItem($id)
->save();
} catch (Exception $e) {
Mage::getSingleton('checkout/session')->addError($this->__('Cannot remove item'));
}
}
}
}

if ($this->getRequest()->getParam('product')) {
$cart = Mage::getSingleton('checkout/cart');
$params = $this->getRequest()->getParams();
$related = $this->getRequest()->getParam('related_product');
$price=$this->getRequest()->getParam('price_custom');
$productId = (int) $this->getRequest()->getParam('product');


if ($productId) {
$product = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($productId);
try {

if (!isset($params['qty'])) {
$params['qty'] = 1;
}

$cart->addProduct($product, $params);




if (!empty($related)) {
$cart->addProductsByIds(explode(',', $related));
}

$cart->save();

Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
Mage::getSingleton('checkout/session')->setCartInsertedItem($product->getId());

$img = '';
Mage::dispatchEvent('checkout_cart_add_product_complete', array('product'=>$product, 'request'=>$this->getRequest()));

$photo_arr = explode("x",Mage::getStoreConfig('mdlajaxcheckout/default/mdl_ajax_cart_image_size', Mage::app()->getStore()->getId()));

$img = '<img src="'.Mage::helper('catalog/image')->init($product, 'image')->resize($photo_arr[0],$photo_arr[1]).'" width="'.$photo_arr[0].'" height="'.$photo_arr[1].'" />';
$message = $this->__('%s was successfully added to your shopping cart.', $product->getName());
Mage::getSingleton('checkout/session')->addSuccess('<div class="mdlajax-checkout-img">'.$img.'</div><div class="mdlajax-checkout-txt">'.$message.'</div>');
}
catch (Mage_Core_Exception $e) {
if (Mage::getSingleton('checkout/session')->getUseNotice(true)) {
Mage::getSingleton('checkout/session')->addNotice($e->getMessage());
} else {
$messages = array_unique(explode("\n", $e->getMessage()));
foreach ($messages as $message) {
Mage::getSingleton('checkout/session')->addError($message);
}
}
}
catch (Exception $e) {
Mage::getSingleton('checkout/session')->addException($e, $this->__('Can not add item to shopping cart'));
}

}
}
$this->loadLayout();
$this->_initLayoutMessages('checkout/session');

$this->renderLayout();
}

观察者.php

class Mdl_Ajaxcheckout_Model_Observer
{
public function modifyPrice(Varien_Event_Observer $obs)
{
// Get the quote item
$item = $obs->getQuoteItem();

// Ensure we have the parent item, if it has one
$item = ( $item->getParentItem() ? $item->getParentItem() : $item );

// Load the custom price
$price =$item->getRequest()->getParam('price_custom');
// Set the custom price
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
// Enable super mode on the product.
$item->getProduct()->setIsSuperMode(true);
}



}

请建议。

最佳答案

您必须在 get_final_price 上为自定义价格创建观察者

请检查下面的链接

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method

在价格上应用折扣。我认为这是帮助。如果您还有问题,请告诉我。

关于magento - 将动态价格从详细页面传递到 magento 中的购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16587164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com