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

#
Оплата товара, только после подтверждения заказа
То есть: пользователь оформляет заказ, выбирает способ оплаты и на этом делаем паузу. Смотрим заказы , подтверждаем наличие и даем разрешение продолжение на оплату.

Не нашел на форуме, может не там смотрел, подскажите пожалуйста.
#
Re: Оплата товара, только после подтверждения заказа
Подскажите пожалуйста как сделать???
Выбор безналичная оплата например робокасса, списание средств производить позже, только после подтверждения товара на складе, ручками. Что делать? новую платежную систему??

#
Re: Оплата товара, только после подтверждения заказа
Тут идея такая - от базового класса хендлеров п/с создается класс-потомок с расширенными обработчиками.
На базе этого класса потомка создается новая платежная система, с названием типа "Оформление заказа по умолчанию", id этой системы подставляется в ТДС на последнем шаге оформления заказа (т.е. шаг, фактически, пропускается, и сразу происходит оформление).
К стандартным статусам заказов мы добавляем еще один - "Представлен к оплате", id этого статуса протаскиваем в параметры ТДС ИМ, чтобы не хардкодить.
В классе-потомке мы добавляем логику для обработки изменений статусов заказа - если статус изменился с любого другого на "Представлен к оплате" и при этом у нас активным обработчиком п/с указан "Оформление заказа по умолчанию", то мы отправляем пользователю письмо со ссылкой на оплату (там ссылка на корзину и guid заказа).
Ну и дальше пользователь возвращается в стандартный процесс выбора способа оплаты (п/с по умолчанию из выбора, естественно, исключается) и платит.

Делал такую логику для 5 и 6 версий системы.
В виде отдельного решения, к сожалению, не оформлено, и скорее всего не будет - корзина вообще очень индивидуальная штука.
Могу продать свои наработки вместе с помощью по их установке, дорого.
В качестве побочного эффекта у вас будут разные окончания url для разных шагов корзины (это полезно для Яндекс.Метрики)
Стучитесь в аську или в почту.
Заказов не беру. Консультирую редко.
#
Re: Оплата товара, только после подтверждения заказа
Пробовал решить задачу повесив обработчик на событие onBeforeChangedOrder, и не получилось тк я не нашел возможности дотянуться до статуса заказа до изменения. Вот бы разработчики внедрили функцию getOrderBeforeChanged()...

#
Re: Оплата товара, только после подтверждения заказа
d-ze, а зачем вам это событие? Насколько я помню, в имеющемся событии передается, в том числе, исходное состояние заказа, отдельным параметром.
Заказов не беру. Консультирую редко.
#
Re: Оплата товара, только после подтверждения заказа
Вроде как тут видно:

public function changedOrder($mode)
{
   Core_Event::notify('Shop_Payment_System_Handler.onBeforeChangedOrder', $this, array($mode));
   if (in_array($mode, array('changeStatusPaid', 'edit'))){
      if ($this->_shopOrderBeforeAction->paid != $this->_shopOrder->paid){
...

..что передаются объект класса Shop_Payment_System_Handler и маленький массив.
Конечно объект содержит в себе _shopOrderBeforeAction и _shopOrder но они protected.
Есть функция:

   public function getShopOrder()
   {
      return $this->_shopOrder;
   }

но нету getOrderBeforeAction(), вот я о чем.
А вопрос между тем остаеться нерешенным (
Могли бы вы подсказать как корректно оформить потомок класса Shop_Payment_System_Handler
так что бы на его основе можно было бы создать обработчик платежной системы?
Понятно что внутри должно быть, но не понятно как обозвать файл и где его расположить...
#
Re: Оплата товара, только после подтверждения заказа
Вопрос снят.
Авторизация