随着购物车价格规则的增加,Magento的性能下降

随着购物车价格规则的增加,Magento的性能下降,magento,Magento,购物车价格规则导致“添加到购物车”和“结帐”按钮的速度明显减慢 我发现这个问题在两个地方得到了解决,有两种不同的解决方案: 我通过创建app/code/local/Mage/SalesRule/Model/Rule/Condition/Product.php的本地副本尝试了上述方法 并用以下代码重写验证程序函数: public function validate(Varien_Object $object) { if(!Mage::registry("rule_condition_p

购物车价格规则导致“添加到购物车”和“结帐”按钮的速度明显减慢

我发现这个问题在两个地方得到了解决,有两种不同的解决方案:

我通过创建app/code/local/Mage/SalesRule/Model/Rule/Condition/Product.php的本地副本尝试了上述方法 并用以下代码重写验证程序函数:

 public function validate(Varien_Object $object)
{
    if(!Mage::registry("rule_condition_product_".$object->getProductId()))
    {
        $product = Mage::getModel('catalog/product')
                    ->load($object->getProductId());
        Mage::register("rule_condition_product_".$object->getProductId(),$product);
    }

        $product = Mage::registry("rule_condition_product_".$object->getProductId());

        $product->setQuoteItemQty($object->getQty())
                ->setQuoteItemPrice($object->getPrice())
                ->setQuoteItemRowTotal($object->getRowTotal());

    return parent::validate($product);
}
业绩没有改善

另一个建议的解决方案是:

这建议重写product->load()函数,但我不清楚他们建议如何/在何处这样做。我认为它不是app/code/core/Mage/core/Model/Abstract.php的本地版本


有什么想法吗?

解决“添加到购物车”或“签出”页面性能低下的最佳方法是增强Magento使用的缓存机制。根据我的经验,实现超快签出页面的最佳方法是用外部缓存服务器(如服务器)替换内置的Magento缓存

的确,购物车和结帐相关的性能似乎随着附加的价格规则而恶化,这主要是由于Magento在该领域的架构设计。Magento为每个产品价格X客户群X价格规则X分层定价(以及更多)创建新记录。因此,如果一开始就有一个大目录,有几十个或几百个客户组,有几十个或几百个价格规则,那么价格表就会呈指数增长,结帐会在多个层面上受到影响。希望这能得到解决,但不太可能很快。他是你的朋友

另一个选项是允许添加到购物车或结帐,并在队列中记录交易,然后以生产者/消费者的方式处理实际订单。我对这个第一手资料很熟悉,对于非常大的事务性网站来说,这是一个很好的方法,但它也带来了一些挑战

如果您使用的是Magento 1.8.x.x CE或更高版本:内置Redis缓存选项。如果你在1.7。x.x和之前,你将需要,你可以考虑。< /P>