0

出于某种原因,我的可配置产品在购物车页面上出现了两次“延期交货”消息。我追查到这个法师代码的错误信息:

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))
        );
    }
}

我收到了每一条消息。这就像它对同一个产品检查两次,一次用于可配置产品,一次用于简单产品。

我认为这是一个配置问题,而不是我需要更改的代码中的内容。什么会导致这种奇怪的行为?

4

2 回答 2

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;  
于 2015-03-29T15:50:46.480 回答
0

你重写了 Mage_Model_CatalogInventory_Observer 类吗?你用的是什么版本?

于 2013-06-18T01:57:55.693 回答