magento - 应用于special_price 的目录价格规则

标签 magento catalog discount

关于 stackoverflow 的第一个问题...我很兴奋:)

目前,如果低于应用的目录价格规则,magento 将使用特价。如果目录价格规则使产品比特价便宜,则目录价格规则定义商店价格。

I am looking for an elegant way to make catalog price rules be applied to the special price (additionally). Maybe there is some store config for it? Maybe there is some neat observer way?

非常感谢!

最佳答案

适用于当前的 Magento 1.9.3.10。更新后刚刚在项目中测试过。约瑟夫尝试了另一种可能也有效的方法。

<小时/>

我很遗憾地说,我为自己解决了第一个真正的 stackoverflow 问题:

  1. 转到Mage_CatalogRule_Model_Resource_Rule
  2. 转到方法_getRuleProductsStmt
  3. 将此添加到方法的初始选择中,位于第一个原始 ->from 之前:

    $select->from(null, array('default_price' => new Zend_Db_Expr("CASE WHEN pp_default_special.value THEN pp_default_special.value ELSE pp_default_normal.value END")));

  4. 在第一次 join() 发生后添加此内容

    $specialPriceAttr  = Mage::getSingleton('eav/config')
                        ->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'special_price');
    $specialPriceTable = $specialPriceAttr->getBackend()->getTable();
    $specialPriceAttributeId= $specialPriceAttr->getId();
    $joinCondition2 = '%1$s.entity_id=rp.product_id AND (%1$s.attribute_id=' . $specialPriceAttributeId . ') 
                                                    AND %1$s.store_id=%2$s';
    $select->join(
            array('pp_default_special'=>$specialPriceTable),
            sprintf($joinCondition2, 'pp_default_special', Mage_Core_Model_App::ADMIN_STORE_ID), null
    );
    

它是如何工作的:

应用目录价格规则(通过后端或 cron)时,将填充数据库表catalogrule_product_price。上面的 SQL 魔术将 special_price (如果存在)作为列 default_value 连接到结果集,如果没有找到special_price,则连接常规价格。

结果已经过检查并且正在运行。

玩得开心!并且不要破解核心!

关于magento - 应用于special_price 的目录价格规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18120342/

相关文章:

javascript - 如何使用 AJAX 和 php 将多个文件上传到服务器

Magento 导入实体类型

directory - MEF 容器使用目录目录自动更新

android - 当 Google Play 控制台设备目录中未显示特定设备品牌/型号时,如何排除它?

php - 在 Woocommerce 中以编程方式应用优惠券

javascript - 计算并显示价格等级 Javascript 的折扣百分比

php - 在 magento 后端翻译自定义模块管理面板

css - 主页上的类别 TreeView / Accordion - Magento 1.9

php - 在 WooCommerce 中对购物车内容总额(不含税)应用折扣