今天,我们的一位客户在Magento ver中报告了以下问题。1.5.1.0,我们尝试复制但无法复制问题。深入研究代码后,我们发现以下行导致了问题-:
$simple_sku = $simpleOption->getProduct($product)->getSku();</code>
问题是,为什么会导致问题,为什么我们不能复制问题,然后我们的一位技术负责人说,可能是客户篮子中的产品已被删除或禁用。我们进入了sales_flat_quote表,发现该表中很少有SKU在主产品表中不存在。为了证明是这种情况,我们直接在sales_flat_quote表中更改了购物篮的SKU,发现了同样的错误,瞧!
Call to a member function getSku() on a non-object in
app/code/core/Mage/Catalog/Model/Product/Type/Configurable.php
这是主要原因之一,我们始终要求我们的客户将Magento升级到最新版本,因为此问题已在1.6.1.0中修复。无论如何要纠正此问题,我们将Configurable.php复制到app / code / local / Mage / Catalog / Model / Product / Type /中,并将其更改为如下所示:
//$simple_sku = $simpleOption->getProduct($product)->getSku();
$optionProduct = $simpleOption->getProduct($product);
if ($optionProduct) {
$simple_sku = $simpleOption->getProduct($product)->getSku();
}
希望本文对您有所帮助。请留下您的评论,让我们知道您的想法?谢谢。