我无法检索礼品卡代码和订单上使用的金额。例如,在Mage/Sales/Model/Order/Pdf/Abstract.php
中,有一段代码与销售/订单模型一起使用。即。
($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();
但这些不会返回任何东西。有什么想法吗?
答案 0 :(得分: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";
}
应该可以正常工作。