0

なんらかの理由で、構成可能な製品の「バックオーダー」メッセージがカート ページに 2 回表示されます。エラー メッセージを次の 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))
        );
    }
}

私はそれらのメッセージのそれぞれを取得しています。同じ製品を 2 回チェックしているようなものです。1 回は構成可能で、もう 1 回はシンプルです。

これは構成の問題であり、コード内で変更する必要があるものではないと考えています。この奇妙な動作の原因は何ですか?

4

2 に答える 2

0

これが私がそれをした方法です。入荷待ちで、それを制御しますpreg_matchmessage['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 に答える