0

ご注文後、お支払い方法を変更する必要があります。注文ID($ orderID)、注文オブジェクト($ order)、適切な支払いオブジェクトなどがあります。

$ service-> retrievePaymentType()支払いをMage_Sales_Model_Order_Paymentの形式で返します

これはすべて、Mage_Checkout_Model_Type_Onepageの拡張機能で発生します

誰かが私がこれをどうやってやるのか知っていますか?

    $order = Mage::getModel('sales/order')->load($orderID);

    $service = Mage::getModel('sales/service_quote', $this->getQuote());

    // Update Saved Order Payment Method

    // $order->getPaymentsCollection()->clear();

    $order->setPayment($service->retrievePaymentType());

    $order->getPaymentsCollection()->save();

    $order->save();

前もって感謝します!

4

1 に答える 1

1

残念ながら、Magento仕様ではない直接SQLクエリを実行する必要がありましたが、それで作業は完了します。誰かがコードを欲しがっているなら、私にコメントを残してください、そして私はそれを掘り起こします。

でもありがとう!

編集:

私は実際にこれをMagentoAPIで動作させることができました:

    // The payment type I want to change the target order to
    $service = Mage::getModel('sales/service_quote', $this->getQuote()); 


    $payment = $service->retrievePaymentType();

    $paymentData = $payment->getData();
    $oldPayment = $order->getAllPayments();
    $oldPayment = $oldPayment[0];

    foreach ($paymentData as $n => $v) {
         $oldPayment->setData($n,$v);
    }

少しハックですが、かなり効果的です。

于 2012-12-18T19:35:08.720 に答える