Оплата после заказа / Различные статусы заказа
Я настраиваю коммерческий веб-сайт drupal, и мне бы хотелось, чтобы функциональность позволяла администратору обрабатывать заказ и изменять его статус, а затем пользователь получает ссылку на электронную почту, которая перенаправляет его на страницу оплаты. Возможна ли такая вещь с коммерцией Drupal Eighter или Ubercart?
Примечание: uc_payafter не работает в 7.x
1 ответ
Я думаю, что вы можете сделать это с помощью комбинации Drupal Commerce и Rules и, возможно, некоторой настройки.
Насколько я понимаю, ваш сценарий выглядит так:
- Пользователь размещает заказ, но не платит.
- Администратор просматривает заказ и утверждает его к оплате.
- Пользователю отправляется электронное письмо с предложением оплатить.
- Оплаченный заказ помечен как завершенный.
Коммерческий уже администратор редактировать статус заказа. Затем вы можете поймать это событие в правиле, которое отправляет платежное электронное письмо. Самой большой проблемой будет вмешательство в процесс оформления заказа, чтобы пользователь не платил сразу после размещения заказа.
Для этого вам нужно создать два новых статуса заказа. См. http://www.drupalcommerce.org/faq/order-states для получения информации о том, как это сделать. Давайте назовем эти статусы "Ожидание одобрения" и "Утверждено".
Остальное должно быть проще, без кодирования:
Создайте страницу, информирующую пользователя о том, что его заказ будет рассмотрен и одобрен в ближайшее время.
Создайте правило для добавления нашего нового статуса:
- Событие: перед сохранением заказа
- Состояние: Сравнить данные, без изменений статус заказа Корзина
- Условие: сравнить данные, обновлен статус заказа.
- Действие: Установите статус заказа в ожидании утверждения
Создайте правило, чтобы пользователь не мог перейти к оформлению заказа:
- Событие: Drupal инициализируется
- Условие: сравнить данные, путь к странице содержит "оформить заказ"
- Условие: сравнить данные, текущий статус заказа в ожидании утверждения
- Действие: перенаправьте пользователя на информационную страницу, созданную на шаге 1
Теперь, когда пользователь пытается оформить заказ, заказ помечается как ожидающий утверждения, и пользователь перенаправляется на информационную страницу. Администратор теперь может редактировать заказ и изменять его статус на Утверждено. Я бы посоветовал:
Создайте представление всех заказов в статусе "Ожидает одобрения", включая ссылки "Изменить".
Затем, чтобы завершить процесс:
Создайте правило, информирующее пользователя о том, что его заказ был утвержден к оплате:
- Событие: заказ был обновлен
- Состояние: статус заказа подтвержден
- Действие: Пользователь электронной почты
Создайте правило, позволяющее пользователю платить:
- Событие: Drupal инициализируется
- Условие: сравнить данные, путь к странице содержит "оформить заказ"
- Условие: сравнить данные, текущий статус заказа утвержден
- Действие: Измените статус заказа на оформление заказа
Отсюда процесс оформления заказа будет продолжаться как обычно, пока не будет сделано.
Обратите внимание, что если в любой момент пользователь нажимает кнопку "Отмена" в процессе оформления заказа, заказ возвращается в состояние "Корзина покупок", и администратор должен будет снова подтвердить его. Если вы не хотите, чтобы это происходило, вы можете добавить ссылку "отменить", чтобы элегантно "исчезнуть".