2

注文で使用したギフトカードのコードと金額を取得できません。たとえばMage/Sales/Model/Order/Pdf/Abstract.php、 には、Sales/Order モデルで機能するコードがあります。すなわち

($order instanceof Mage_Sales_Model_Order) is true in the PDF example

また

$order = Mage::getModel('sales/order')->load($orderID); in another example

印刷された請求書 PDF の合計セクションには、使用されたギフト カードと使用されたクーポン コードが表示されます。クーポンコードは で取得できます$order->getCouponCode()

からギフトカードのコードと金額を取得するにはどうすればよい$orderですか? 私はもう試した

$order->getGiftcertCode();
$order->getGiftcertAmount();

しかし、これらは何も返しません。何か案は?

4

1 に答える 1

3

これを行うにはいくつかの方法があると思いますが、私はこれまでその必要がなかったので、Magento データベースの sales_flat_order テーブルを見るだけで、さまざまなギフトを参照するために使用できるフィールドがいくつかあることがわかります。カードの金額:

base_gift_cards_amount
gift_cards_amount
base_gift_cards_invoiced
gift_cards_invoiced
base_gift_cards_refunded
gift_cards_refunded

これらには、次の呼び出しでアクセスできます。

$order->getBaseGiftCardsAmount();
$order->getGiftCardsAmount();
$order->getBaseGiftCardsInvoiced();
$order->getGiftCardsInvoiced();
$order->getBaseGiftCardsRefunded();
$order->getGiftCardsRefunded();

あなたが使いたいのはおそらく$order->getGiftCardsAmount()

ギフト カードの詳細を取得するために、シリアル化された配列として上記の表の「gift_cards」列に格納されます。したがって、その配列を取得するには、呼び出します

$cards = unserialize($order->getGiftCards());

print_r $cards を実行すると、次のように表示されます。

Array
(
    [0] => Array
         (
             [i] => 1
             [c] => {{Gift Card Code}}
             [a] => {{Gift Card Amount}}
             [ba] => {{Gift Card Base Amount}}
         )

)

それで

foreach ($cards as $card) {
    echo "Code: " . $card['c'] . "\n";
    echo "Amount: " . $card['a'] . "\n";
}

うまくいくはずです。

于 2012-06-28T03:07:25.693 に答える