0

好的,所以我自定义了 Mage_Checkout_OnepageController

  1. 我需要能够连接到 DAL 服务器并在那里保存某些东西。我得到了一切正确。它是 RESTful 的,所以我正在发送一个 POST 请求。这一切都很好。但是除了quoteData,项目详细信息等之外,我还需要发送一件事,另一件事是magento orderId

  2. 我知道 Magento 尚未在Mage_Checkout_OnepageController上创建订单 ID ,它在Mage_Checkout_Block_Onepage_Success上生成它。我有自己的X_Request_Block_Checkout_Success。在此文件中,以下代码;

    $order = Mage::getModel('sales/order')->loadByIncrementId(Mage::getSingleton('checkout/session')->getLastRealOrderId());
    $orderInfo['orderId'] = $order->getIncrementId();
    

但是在这个 Success.php 中,这次我无法获取到Mage_Checkout_OnepageController中得到的数据,即如下;(任何报价数据、送货地址等)

$jobSiteAddress = Mage::getSingleton('checkout/session')->getQuote()->getShippingAddress()->toArray();
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();

和其他一些事情,我希望你明白。

大问题

所以我的问题;有没有办法在Mage_Checkout_Block_Onepage_Success或我的Mage_Checkout_OnepageController中获取magento orderId和所有购物车数据

我试过了

在我的 OnePageController 我有;

$this->getOnepage()->getQuote()->save();

我尝试在此行之后获取 magento 订单 ID,但没有运气

如果我没有解释清楚,请告诉我

4

1 回答 1

0

所以,要清楚,在magento真正生成它之前你需要一个orderId吗?你能解释一下为什么需要它吗?为什么不在订单真正生成后执行此调用(magento 销售/订单事件可以清楚地执行此操作)

无论如何,我似乎很难获得下一个 orderId(如果 10 个客户同时下单,您无法确定下一个 increment_id,如果用户尚未付款,我认为您不想创建订单)但是您应该能够确定下一个 OrderIncrementId,因为它与客户历史记录相关联...

于 2012-11-08T20:12:28.620 回答