Оплата после заказа / Различные статусы заказа

Я настраиваю коммерческий веб-сайт drupal, и мне бы хотелось, чтобы функциональность позволяла администратору обрабатывать заказ и изменять его статус, а затем пользователь получает ссылку на электронную почту, которая перенаправляет его на страницу оплаты. Возможна ли такая вещь с коммерцией Drupal Eighter или Ubercart?

Примечание: uc_payafter не работает в 7.x

1 ответ

Решение

Я думаю, что вы можете сделать это с помощью комбинации Drupal Commerce и Rules и, возможно, некоторой настройки.

Насколько я понимаю, ваш сценарий выглядит так:

  1. Пользователь размещает заказ, но не платит.
  2. Администратор просматривает заказ и утверждает его к оплате.
  3. Пользователю отправляется электронное письмо с предложением оплатить.
  4. Оплаченный заказ помечен как завершенный.

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

Для этого вам нужно создать два новых статуса заказа. См. http://www.drupalcommerce.org/faq/order-states для получения информации о том, как это сделать. Давайте назовем эти статусы "Ожидание одобрения" и "Утверждено".

Остальное должно быть проще, без кодирования:

  1. Создайте страницу, информирующую пользователя о том, что его заказ будет рассмотрен и одобрен в ближайшее время.

  2. Создайте правило для добавления нашего нового статуса:

    • Событие: перед сохранением заказа
    • Состояние: Сравнить данные, без изменений статус заказа Корзина
    • Условие: сравнить данные, обновлен статус заказа.
    • Действие: Установите статус заказа в ожидании утверждения

  3. Создайте правило, чтобы пользователь не мог перейти к оформлению заказа:

    • Событие: Drupal инициализируется
    • Условие: сравнить данные, путь к странице содержит "оформить заказ"
    • Условие: сравнить данные, текущий статус заказа в ожидании утверждения
    • Действие: перенаправьте пользователя на информационную страницу, созданную на шаге 1

      Теперь, когда пользователь пытается оформить заказ, заказ помечается как ожидающий утверждения, и пользователь перенаправляется на информационную страницу. Администратор теперь может редактировать заказ и изменять его статус на Утверждено. Я бы посоветовал:

  4. Создайте представление всех заказов в статусе "Ожидает одобрения", включая ссылки "Изменить".

    Затем, чтобы завершить процесс:

  5. Создайте правило, информирующее пользователя о том, что его заказ был утвержден к оплате:

    • Событие: заказ был обновлен
    • Состояние: статус заказа подтвержден
    • Действие: Пользователь электронной почты

  6. Создайте правило, позволяющее пользователю платить:

    • Событие: Drupal инициализируется
    • Условие: сравнить данные, путь к странице содержит "оформить заказ"
    • Условие: сравнить данные, текущий статус заказа утвержден
    • Действие: Измените статус заказа на оформление заказа

Отсюда процесс оформления заказа будет продолжаться как обычно, пока не будет сделано.

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

Другие вопросы по тегам