作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了事件 checkout_cart_product_add_before: http://markshust.com/2012/08/27/create-checkout_cart_product_add_before-observer-magento
然而,当我执行此操作时, getQuoteItem() 似乎不可用,因此我无法获取添加到购物车的产品数量。当我使用 _after 方法时,我可以使用:
public function checkStock2($observer) {
Mage::log("Check stock before");
$request = $observer->getQuoteItem();
Mage::log("q in order = " .$request['qty'] ."");
}
但是,当我之前时,我无法到达 getQuoteItem,因为它还不存在。有没有办法获取用户尝试添加到购物车的产品数量?
谢谢!
最佳答案
如果您实现了链接的观察者,您就会丢失所需的信息。您必须在您的dispatchEvent中添加请求,以便检查用户选择的内容:
public function addProduct($productInfo, $requestInfo=null)
{
$product = $this->_getProduct($productInfo);
$request = $this->_getProductRequest($requestInfo);
Mage::dispatchEvent('checkout_cart_product_add_before', array(
'product' => $product,
'request' => $request
));
return parent::addProduct($productInfo, $requestInfo);
}
然后您将能够通过以下方式检索观察者中的用户数量:
$observer->getEvent()->getRequest()->getQty();
->getRequest()
方法是指您的dispatchEvent 的“request”参数的神奇getter。
关于Magento checkout_cart_product_add_before 并获取添加的产品数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574104/
我创建了事件 checkout_cart_product_add_before: http://markshust.com/2012/08/27/create-checkout_cart_produc
我是一名优秀的程序员,十分优秀!