私は 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 の魔法の機能の乱用と扱いにくい構造は、少なくとも挑戦的でした。