Magento 我如何为我的自定义付款方式检索购物车内容、装运详细信息和辅助费用(税收、折扣等)?

Magento 我如何为我的自定义付款方式检索购物车内容、装运详细信息和辅助费用(税收、折扣等)?,magento,payment-gateway,shopping-cart,checkout,magento-1.7,Magento,Payment Gateway,Shopping Cart,Checkout,Magento 1.7,我的任务是为Magento CE编写一个自定义付款方法,并在过去几周内对其进行了修改。虽然我是一名经验丰富的开发人员,但这是我第一次认真学习php和Magento本身 请注意,这是一个网络支付网关,所以我使用 public function getOrderPlaceRedirectUrl() { ... } 在我的付款方式模型中,成功地将客户重定向到外部url 让我困了一整天的问题是如何检索结帐购物车的内容、运输细节和辅助费用(税收、折扣等)。此信息需要发送到付款方式API 我在付款方式模型

我的任务是为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
}
求你了,魔法师们,告诉我我做错了什么


MagentoDev一直非常令人沮丧,主要是因为它缺乏直接的文档。我确信它是非常可定制的,但php神奇功能的滥用和它繁琐的结构一直是一个挑战——至少。

我认为你需要获得报价。像这样的方法应该会奏效:

$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

}

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

看一看@还有…您正在加载订单详细信息(Mage::getModel('sales/order')),在付款成功之前不应创建该详细信息是的,我已经查看了这些信息,但我看不到有关检索购物车内容的任何信息。但是,我承认我正在使用订单详细信息-您会推荐哪种方法?在您的第三方支付文档中,如何接受这些信息?如果您查看Nope中的
authorize(Varien\u Object$payment,$amount)
,它仍然不起作用。项目集合在签出时返回为空,并且它也会丢失账单详细信息。为了澄清,getOrderPlaceRedirectUrl返回我的控制器的url,然后收集购物车信息并将其卷曲到外部网站。您好,抱歉,很长时间没有检查stackoverflow。这是因为外部站点正在呼叫您,所以基本上您没有会话。通常情况下,支付网关会发布您发送给您的orderId。所以$orderId=$this->getRequest()->getParam('order\u id)$订单=Mage::getModel('sales/order')->load($orderId)$order->getAllItems();------------让我知道,如果这仍然是一个问题,我可以给你发送一些适当的代码。