gpt4 book ai didi

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

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

关于 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/

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