Ми використовуємо Magento EE 1.13.0.2 за допомогою стандартного способу оплати на веб-сайті PayPal . На жаль, неможливо встановити статус замовлення для оплачених платежів PayPal у зворотній частині.
Нам потрібно встановити статус замовлення, коли замовлення було здійснено успішно (а не частково). Підручники для зміни статусу замовлення PayPal здаються застарілими, неправильними або некрасивими хаками.
З того, що я зібрав:
- оновлення платежів здійснюватиметься через PayPal IPN.
- Існує метод,
Mage_Paypal_Model_Ipn::_registerPaymentCapture()
відповідальний за "Процес завершеного платежу (повного або часткового)". - У
Mage_Paypal_Model_Ipn::_registerTransaction()
запиті від PayPal аналізується і стан платежу порівнюється зMage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED
.
Якщо чесно, я не впевнений, що робити з цією інформацією. Я можу переписати Mage_Paypal_Model_Ipn::_registerTransaction()
і просто додати свій код:
// paid
case Mage_Paypal_Model_Info::PAYMENTSTATUS_COMPLETED:
$this->_registerPaymentCapture(true);
// my code here
break;
Звичайно, спостерігачеві за подіями (наприклад, для одного із замовлень або державних подій) було б набагато приємніше, але я не впевнений, чи існує 100% надійний спосіб зловити цю разову подію, коли замовлення виплачується повністю через PayPal .
Будь-які ідеї?
Оновлення
Ми вирішили змінити потік статусу замовлення і більше не потрібно змінювати статус. Я залишу питання відкритим на деякий час, якщо хтось захоче відповісти на нього.