gpt4 book ai didi

php - $_product 不包含所有需要的数据 (minmal_price)

转载 作者:搜寻专家 更新时间:2023-10-31 22:03:00 25 4
gpt4 key购买 nike

编辑:基本上,我的问题是我需要在类别 View 中获取可配置产品的 minimal_price。以前,这是通过使用

$_product = $this->getProduct();

$_product->getMinimalPrice();

但是,它不再起作用了。我注意到,当它仍然有效时,倾销 $_product 将包含“minimal_price”。现在,情况不再如此了。有谁知道可能是什么原因吗?

旧的:我目前正在为一个非常奇怪的错误而苦苦挣扎。我更新到 magento 1.9 但并非一切都按预期工作。类别页面变得非常慢。所以我再次降级到 1.8,这在我们的测试开发服务器上运行良好,但现在可配置产品的价格不会再显示在类别站点上。即使在干净的 magento 安装 1.7(使用相同的数据库!)上,它也不起作用。

我发现,首先,price.phtml 在 Magento 1.9 中发生了变化,并添加了两个调用,这导致加载时间增加:

$_convertedFinalPrice = $_store->roundPrice($_store->convertPrice($_product->getFinalPrice()));
$_specialPriceStoreLabel = $this->getProductAttribute('special_price')->getStoreLabel();

我的主要问题是不再显示价格。我注意到以下几点:

当我转储 $_product->debug(); 时,它不再包含 minimal_price。这很可能是 getMinimalPrice() 不再工作的原因。

奇怪的是,就像我在另一个测试开发站点上所说的那样,它仍在工作并且 $_product->debug(); 仍然包含 minimal_price。

有人能解释为什么在一个页面上仍然包含 minimal_price,但在另一个网站上却没有吗?

谢谢

最佳答案

我更深入地研究了 Magento 的代码并跟踪了 Magento 如何加载产品列表的产品。查看产品列表时,产品集合是由模型Mage_Catalog_Model_Layer加载的,它通过向集合的SQL添加连接来为集合中的产品添加最低价格和其他东西,但我还没有找到一个模型做同样的事情单个产品而不是集合的东西。

Because I don’t want to use a direct SQL query, I checked out the CatalogIndex module, but that module seems not to be working at all because all its indexing tables are empty or even corrupted.

$data_grouped = Mage::getModel("catalogindex/data_grouped"); $minimal = $data_grouped->getMinimalPrice(array($_product->getId()), Mage::app()->getStore());

looked good at first but it gives me the following error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'catalog_product_index_price.value' in 'field list'

The CatalogIndex module is either deprecated or I’m just too stupid to enable it.

However, I have now created a workaround in my price.phtml template, which uses the same method to retrieve the minimal price and tax percents as the product list does: At the beginning of the template I added the following:

$this->setProduct(Mage::getModel("catalog/product")->getCollection() ->addAttributeToSelect(Mage::getSingleton("catalog/config")->getProductAttributes()) ->addAttributeToFilter("entity_id", $this->getProduct()->getId()) ->setPage(1, 1) ->addMinimalPrice() ->addFinalPrice() ->addTaxPercents() ->load() ->getFirstItem() );

which may not be the perfect solution, but it does the job and it does it a little cleaner than iterating over all child products and finding the minimal price that way.

关于php - $_product 不包含所有需要的数据 (minmal_price),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24558731/

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