0

我的任务是为 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 的魔法函数和它的繁琐结构一直是具有挑战性的——至少是这样。

4

1 回答 1

1

我认为你需要得到报价。像这样的东西应该工作:

$quote = Mage::getSingleton('checkout/session')->getQuote();
$items = $quote->getAllVisibleItems();

foreach ($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

}

如果您仍然需要订单,请告诉我..

于 2012-12-06T13:53:22.370 回答