0

わかりましたので、Mage_Checkout_OnepageController をカスタマイズしました

  1. DAL サーバーに接続して、そこに特定のものを保存できるようにする必要があります。私はすべてを正しくしました。RESTfulなので、POSTリクエストを送信しています。それはすべてうまくいきます。しかし、quoteData、アイテムの詳細などとは別に、もう1つ送信する必要があるのは、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とすべてのカート データを取得する方法はありますか

私は試した

My OnePageController には、次のようなものがあります。

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

この行の後に magento オーダー ID を取得しようとしましたが、うまくいきませんでした

明確に説明していない場合はお知らせください

4

1 に答える 1

0

SO、明確にするために、magentoが実際に生成する前にorderIdが必要ですか? なぜそれが必要なのかもっと説明できますか?注文が実際に生成された後にこの呼び出しを行わないのはなぜですか (magento の販売/注文イベントは明らかにこれを行うことができます)

とにかく、次のorderIdを取得するのは難しいようです(10人の顧客が同時に注文した場合、次のincrement_idを確認することはできません。ユーザーがまだ支払いをしていない場合、注文を作成したくないと思います)しかし、顧客履歴にリンクされているため、次の OrderIncrementId を特定できるはずです...

于 2012-11-08T20:12:28.620 に答える