Magento2 CE 2.2.0-devを使用して以下の新規インストールを使用し、デフォルトの「Luma」テーマも残しました。
MiGS、Braintree、PayPalなどの外部支払い方法(ゲートウェイ)に関して、Magentoはこれらのゲートウェイをそのままサポートしていますが、他の「チェックアウト」APIとともに使用できるAPIを提供しません。
そのため、MagentoのAPIを使用してチェックアウトアプリ/ページを構築する場合、SDK / APIを使用してこれらのサービスと手動で統合する必要があります。幸いなことに、Magentoが構築されたサービス-統合で。
これを理解するには、最も簡単なBraintreeを構成する必要がありました。
- https://www.braintreepayments.com/sandboxでサンドボックスアカウントを作成します
- Magento管理エリアにアクセスします。
- 「ストア」>「構成」>「販売」>「支払方法」>「Braintree」>「構成」。
- 「環境」が「サンドボックス」であることを確認し、「マーチャントID」、「公開キー」、および「秘密キー」を入力します。
- 設定を保存します。
- キャッシュのインデックスの再作成や更新が必要になる場合があります。
商品をカートに追加してチェックアウトに進むと、最後のステップでBraintreeの支払い方法を選択し、[注文]ボタンをクリックすると、次のAJAXリクエストが表示されます。
- カードを検証し、トランザクションを実行し、トランザクションステータスで応答するためのBraintree APIへの2つのリクエスト。
guest-carts/cartId/payment-information
MagentoのAPIドキュメントで説明されている通常のボディを使用したMagentoのAPIへのリクエスト。
その後、プロセスは、最後のリクエストがオーダーを含むJSONで応答するときに、成功ページへのリダイレクトで期待どおりに続行します entity_id
これにより、外部サービス(この例ではBraintree)への呼び出しは、Magentoではなくチェックアウトページによって実行されるため、独自のチェックアウトページ/アプリを開発する場合も同じことを行う必要があります。
注文ステータスの制御に関しては、さらに掘り下げて、MiGS、Braintree、PayPalなどの支払い方法を使用するとprocessing
、通常ではなくステータスのある注文が発生することがわかりました。pending
これは、支払い方法の構成またはオブザーバーのいずれか、構成のように見えますが、ここに詳細があります。
クラス:Magento \ Sales \ Model \ Order \ Payment
メソッド:Place()
かどうかをチェックするには、条件があるInitialization
方法のために必要とされるには、if ($methodInstance->isInitializeNeeded())
そのような場合、この方法は、initialize()
あなたが定義する実行され、あなたは両方を指定することができますされるstate
とstatus
。