Magento显示购物车产品页面上的价格规则
问题描述:
我需要能够将产品页面上的“购物车价格规则”应用于产品页面上的价格,然后才能将产品添加到购物车。不使用'目录价格规则'的原因是它没有提供足够的功能。有问题的产品在同一页面上有相关产品,如果符合条件(例如添加了相关产品的数量x),则提供折扣。我需要将此价格更改显示给用户。Magento显示购物车产品页面上的价格规则
我一直无法找到Magento在购物车中应用这些规则的位置,因此无法开始尝试将它们添加到产品页面。任何反馈,以帮助得到这个运行非常感谢。
谢谢:)
答
你可以得到应用的产品页面上的购物车价格规则,下面的功能
public function getShoppingCartRules($product) {
$now = Mage::getModel('core/date')->date('Y-m-d');
$productData = new Varien_Object();
$data = array(
'product' => $product,
'qty' => 1,
'price' => $product->getFinalPrice(),
'base_row_total' => $product->getFinalPrice()
);
$productData->setData($data);
$allItems = new Varien_Object();
$allItems->setAllItems(array($productData));
$customerGroupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
$ruleCollection = Mage::getResourceModel('salesrule/rule_collection')
->addFieldToFilter('discount_amount', array("gt" => '0'))
->addFieldToFilter('coupon_type', array(1,2,3))
->setOrder('sort_order', 'DESC')
->addWebsiteGroupDateFilter(Mage::app()->getStore()->getWebsiteId(), $customerGroupId);
$ruleCollection->getSelect()
->where('from_date is null or from_date <= ?', $now)
->where('to_date is null or to_date >= ?', $now);
if ($ruleCollection->count()) {
if ($rule->getActions()->validate($productData) && $rule->validate($allItems)) {
$shoppingCartRules[] = $rule;
}
}
return $shoppingCartRules;
}
return null;
}
其中$产品是产品对象产品页面上已经存在。