Нормально ли это, когда Drupal Commerce находится в состоянии ОЖИДАНИЯ после завершения платежа PayPal?


Я тестирую drupal commance и настраиваю учетную запись продавца/покупателя в песочнице PayPal. Когда я завершаю платеж с помощью тестовых учетных записей, статус заказа говорит "В ожидании", это то, что он должен делать после успешной оплаты?

Я бы предположил, что там будет написано "ОПЛАЧЕНО". Я вижу, что есть и другие параметры статуса заказа, такие как проверка завершена. Не следует ли сказать это вместо "В ожидании"?

Author: Patoshi パトシ, 2013-05-31

3 answers

Я считаю, что это экспорт правил, предложенных Райаном. Вес равен 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
Author: EricJ, 2013-07-22 04:05:32

Заказы не столько "застревают" здесь, сколько размещаются здесь, чтобы вы могли определить, что с ними делать. Когда вы создаете коммерческий сайт Drupal, вам следует подумать о том, что должно произойти с заказом после завершения процесса оформления заказа/получения оплаты, и либо внедрить ручной процесс, либо какую-либо форму правил или автоматизации на основе кода для этого. Drupal Commerce оставляет это здесь, потому что мы не делаем никаких предположений о типе продукта, который продает коммерческий сайт, или бизнес-процессы, связанные с принятием заказа от оформления заказа до окончательного выполнения.

WPS PayPal и связанные с ними платежные шлюзы также представляют собой особый случай, поскольку вы фактически не можете использовать событие "При первой полной оплате заказа" для управления статусом заказа. Поскольку эти заказы, возможно, не завершили процесс оформления заказа, когда их уведомления об оплате поступают на сайт, маршрутизатор оформления заказа по-прежнему зависит от того, находятся ли эти заказы в состоянии заказа на оформление заказа, чтобы завершите процесс оформления заказа после того, как платеж будет обработан.

Вместо этого, если вам необходимо обновить статус заказа на основе квитанции об оплате для PayPal WPS, вам следует использовать условие "Сравнение баланса заказа" в сочетании с событием "Завершение процесса оформления заказа", чтобы обновить статус заказа в этом событии, если платеж был получен. Кроме того, вы можете использовать условие "Сравнение данных", чтобы проверить статус заказа в событии "При первой полной оплате заказа". и обновите статус заказа, если заказ еще не находится в статусе заказа на оформление заказа.

 8
Author: Ryan Szrama, 2013-06-04 19:27:09

На самом деле это нормально для торговли Drupal из коробки. Когда заказ будет полностью оплачен, скажем, с помощью Paypal. Пользователь перенаправляется обратно в /checkout/#/complete (# для заказа #)

 1
Author: Patoshi パトシ, 2013-06-01 15:28:05