出于某种原因,我的可配置产品在购物车页面上出现两次“延期交货”消息。我将错误消息跟踪到此Mage代码:
if ($this->getBackorders() == Mage_CatalogInventory_Model_Stock::BACKORDERS_YES_NOTIFY) {
if (!$this->getIsChildItem()) {
$result->setMessage(
Mage::helper('cataloginventory')->__('This product is not available in the requested quantity. %s of the items will be backordered.', ($backorderQty * 1))
);
} else {
$result->setMessage(
Mage::helper('cataloginventory')->__('"%s" is not available in the requested quantity. %s of the items will be backordered.', $this->getProductName(), ($backorderQty * 1))
);
}
}
我收到了这些消息。这就像它为同一产品检查两次,一次是可配置的,一次是简单的。
我认为这是一个配置问题,而不是我需要更改的代码中的内容。什么会导致这种奇怪的行为?
答案 0 :(得分:0)
你重写了Mage_Model_CatalogInventory_Observer类吗?你用的是什么版本?
答案 1 :(得分:0)
我是这样做的。 preg_match
message['text']
已暂停并控制它。这是你的代码
$i=0;
foreach ($messages as $message):
$txt= $message['text'] ;
$re='(backordered)'; # Word 3
if (preg_match_all ("/".$re."/is", $txt, $matches))
{ if($i == 0){?>
<p class="item-msg <?php echo $message['type'] ?>">* <?php echo $this->escapeHtml($message['text']); ?></p>
<?php }
}
else
{ ?>
<p class="item-msg <?php echo $message['type'] ?>">* <?php echo $this->escapeHtml($message['text']) ?></p>
<?php }
$i++;
endforeach;