2

我在检索订单中使用的礼品卡代码和金额时遇到了困难。例如,在 中Mage/Sales/Model/Order/Pdf/Abstract.php,有一段代码适用于销售/订单模型。IE

($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 回答