我的任务是为 Magento CE 编写自定义付款方式,并在过去几周内对其进行了修改。虽然我是一位经验丰富的开发人员,但这是我第一次认真接触 php 和 Magento 本身。
请注意这是一个网络支付网关,所以我正在使用
public function getOrderPlaceRedirectUrl() { ... }
在我的付款方式模型中成功将客户重定向到外部 url。
让我呆了一整天的问题是如何检索结帐购物车内容、运输详细信息和辅助费用(税金、折扣等)。此信息需要发送到付款方式 API。
我在付款方式模型中使用的代码是这样的:
$order_id = Mage::getSingleton("checkout/session")->getLastRealOrderId();
$order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
$oBillingAddress = $order->getBillingAddress(); //this works ok
$total = number_format($order->getBaseGrandTotal(), 2, '', ''); //this too
/* The following code won't work */
$oShippingAddress = $order->getShippingAddress(); // is unset!?
$oShippingAddress->getSameAsBilling(); //HOW can I check this?
$amount = array();
$quantity = array();
$sku = array();
$description = array();
$cart_items = $order()->getAllVisibleItems();
foreach ($cart_items as $item) {
$amount[] = number_format($item->getPrice(), 2, '', ''); //ok
$quantity[] = $item->getQtyToInvoice(); // is empty...
$sku[] = $item->getSku(); // nothing either??
$description[] = $item->getName(); //this is working
}
请,Magento 的巫师,告诉我在这里做错了什么?
Magento dev 一直非常令人沮丧,主要是因为它缺乏简单的文档。我敢肯定它是非常可定制的,什么不是,但是滥用 php 的魔法函数和它的繁琐结构一直是具有挑战性的——至少是这样。