1

サイトでの各購入を追跡するための簡単なコードを追加しました。すべての製品には、カテゴリに基づいてさまざまなタイプのルールがあり、製品価格の事前定義された割合を差し引きます。

しかし、カートに構成可能な製品がある場合、元の製品価格と、注文の詳細の製品詳細の選択されたオプションの価格の両方が表示されます。カートに口紅があり、選択した色が「RED」の場合、口紅の価格が変わります。しかし、注文の詳細に元の口紅の価格と赤い口紅の価格が表示されています.

注文成功ページにコードを追加しました。

$orders = Mage::getModel('sales/order')->getCollection()
     ->setOrder('created_at','DESC')
     ->setPageSize(1)
     ->setCurPage(1);
$orderId = $orders->getFirstItem()->getEntityId();

$order = Mage::getModel('sales/order')->load($orderId);
$items = $order->getAllItems();

foreach ($items as $itemId => $item)
{
            $pid = $item->getProductId();
        $product = Mage::getModel('catalog/product')->load($pid);
        $_finalPrice = $product->getFinalPrice();

        echo $price = Mage::helper('core')->currency($_finalPrice,true,false);
                // Some Code
}

私も試してみました

$tempmain = Mage::getModel('sales/order')->load(Mage::getSingleton('checkout/session')->getLastOrderId());
    $temp = $tempmain->getAllItems();

    $total = $tempmain->getGrandTotal();
    foreach ($temp as $itemId => $item)
    {
              $pid = $item->getProductId();
            $product = Mage::getModel('catalog/product')->load($pid);
            $_finalPrice = $product->getFinalPrice();

            echo $price = Mage::helper('core')->currency($_finalPrice,true,false);
                    // Some Code
        }

同じ結果で。

注文明細で「赤」の口紅の価格だけを取得するにはどうすればよいですか?

前もって感謝します。

これは、入手可能なすべてのリップスティックとその値の詳細です。 ここに画像の説明を入力 フロント エンドのリップスティックの色として「Tango」を選択すると ここに画像の説明を入力 、成功ページで両方の製品の価格が表示されます。 ここに画像の説明を入力 注文の詳細は次のとおりです。スクリーン ショット: ここに画像の説明を入力

4

2 に答える 2

2

フロントオフィスで、顧客が構成可能な製品をカートに追加して注文すると、(データベースに) 2 行 (2 つの quote_items と 2 つの order_item) が表示されます。

Magento は構成可能な製品と、ユーザーの選択に対応するリンクされた単純な製品 (およびマスター構成可能な製品にリンクされている) を保存する必要があるため、これは正常です。

注文の詳細を表示するとき、Magento は製品に親 ID があるかどうかを確認することでその違いを処理します。一部の order_item を無視するために同じことを行うことができます:

foreach($items as $item){
    if ($item->getParentProductId() {
         continue; // ignoring simple product associated to master order item (configurable)
    }
    // your code

}
于 2012-11-26T23:13:47.587 に答える
0

あなたが何をしようとしているのかは 100% わかりませんが、注文成功ページにいる場合は、これが現在の注文情報を取得する方法です (db の最後の注文が常に現在の注文であるとは限りません)。 2 人のユーザーがミリ秒間隔で購入した場合の成功ページ)

これをSuccess.phtmlに追加してみてください

$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$items = $order->getItemsCollection();


foreach($items as $item){
  if ($item->getParentItem()) {
       continue;
  }
  echo Mage::helper('core')->currency($item->getPrice(),true,false); 
}
于 2012-11-26T13:08:12.800 に答える