web-dev-qa-db-ja.com

DrupalコマースがPaypalでの支払いが完了した後、コマースがPENDINGステータスでスタックするのは正常ですか?

drupalカンマをテストして、Paypalサンドボックスの販売者/購入者のアカウントをセットアップします。テストアカウントで支払いを完了すると、注文のステータスに「保留中」と表示されます成功した支払いの後に行うには?

私はそれが有料と言うだろうと想像します。チェックアウト完了などの他の注文ステータスオプションがあるようです。保留中の代わりにそれを言うべきではありませんか?

3

これらはライアンが提案したルールの輸出品だと思います。重みは、既存のルールの後で評価するために1です。

ルール#1

{ "rules_update_the_order_status_on_checkout_completion_if_payment_" : {
    "LABEL" : "Update the order status on checkout completion (if payment complete)",
    "PLUGIN" : "reaction rule",
    "WEIGHT" : "1",
    "TAGS" : [ "Commerce Checkout" ],
    "REQUIRES" : [ "commerce_payment", "commerce_order", "commerce_checkout" ],
    "ON" : [ "commerce_checkout_complete" ],
    "IF" : [
      { "commerce_payment_order_balance_comparison" : { "commerce_order" : [ "commerce_order" ], "value" : "0" } }
    ],
    "DO" : [
      { "commerce_order_update_status" : { "commerce_order" : [ "commerce_order" ], "order_status" : "processing" } }
    ]
  }
}

ルール#2

{ "rules_order_paid_in_full_order_state_to_processing" : {
    "LABEL" : "Order paid in full: Order state to processing",
    "PLUGIN" : "reaction rule",
    "WEIGHT" : "1",
    "REQUIRES" : [ "commerce_cart", "commerce_order", "commerce_payment" ],
    "ON" : [ "commerce_payment_order_paid_in_full" ],
    "IF" : [
      { "NOT commerce_order_is_cart" : { "commerce_order" : [ "commerce_order" ] } }
    ],
    "DO" : [
      { "commerce_order_update_status" : { "commerce_order" : [ "commerce_order" ], "order_status" : "processing" } }
    ]
  }
}
5
EricJ

注文はここで「スタック」されているのではなく、何を処理するかを決定するためにここに配置されています。 Drupal Commerceサイトを構築する場合、チェックアウトプロセスが完了した後/支払いが受領された後に注文に何が必要かを検討し、手動プロセスまたは何らかの形式のルールを実装する必要がありますDrupal Commerceは、Commerceサイトが販売する製品のタイプやチェックアウトからの注文に関連するビジネスプロセスについては何も想定していないため、ここに残します。最終的な履行まで完了。

Paypal WPSと関連する支払いゲートウェイも少し特別なケースですが、実際には「注文が最初に全額支払われたとき」イベントを使用して注文ステータスを操作することはできません。これらの注文は、支払い通知がサイトに到着したときにチェックアウトプロセスを完了していない可能性があるため、チェックアウトルーターは、支払いが処理された後にチェックアウトプロセスを完了するために、これらの注文がチェックアウト注文ステータスにあることに依存します。

代わりに、Paypal WPSの支払い領収書に基づいて注文ステータスを更新する必要がある場合は、「注文残高比較」条件を「チェックアウトプロセスの完了」イベントと組み合わせて使用​​して、支払いの代わりにそのイベントの注文ステータスを更新する必要があります受け取りました。さらに、「データ比較」条件を使用して、「注文が最初に全額支払われたとき」イベントで注文ステータスを確認し、注文がまだチェックアウト注文ステータスでない場合は注文ステータスを更新できます。

7
Ryan Szrama

実際、これはDrupal Commerceの通常の状態です。注文が完全に支払われたら、Paypalで言います。ユーザーは/ checkout /#/ complete (にリダイレクトされます。 #は注文用です)

1