Способ оплаты Magento - можно захватить через платежный шлюз, но вернуть деньги и отменить проделанную работу - PullRequest
0 голосов
/ 20 июня 2011

Надеюсь, что кто-то здесь может дать мне представление о том, что идет не так в способе оплаты, над которым я работаю для Magento.

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

Это делается в пространстве имен модели / modulename / model / standard.php, которое расширяет Mage_Payment_Model_Method_Abstract Имя функции: capture

В этом классе у меня также есть функции void, cancel и refund.но они новее называются.Я пытался вставить некоторые методы Mage :: Log () в эти методы, но ничего не происходит, когда заказ отменен или оформлено кредитное примечание (из представления счета-фактуры).

Так что кто-нибудь может дать мне несколько советово том, что я пропустил - очевидно, что-то я где-то забыл, но я действительно не вижу, где.

standard.php class:

class Namespace_Module_Model_Standard extends Mage_Payment_Model_Method_Abstract
{

const PAYMENT_TYPE_AUTH = 'AUTHORIZATION';
const PAYMENT_TYPE_SALE = 'SALE';

protected $_code = 'module';
protected $_isGateway               = true;
protected $_canAuthorize            = false;    
protected $_canCapture              = true;
protected $_canCapturePartial       = true;
protected $_canRefund               = true;
protected $_canRefundInvoicePartial = true;
protected $_canVoid                 = true;
protected $_canUseInternal          = true; 
protected $_canUseCheckout          = true;
protected $_canUseForMultishipping  = true;
protected $_canSaveCc               = false;

//this function is not called when order is cancelled
public function cancel(Varien_Object $payment)
{
    Mage::Log('order canceled');

    return $this;
}
//same with this function - not called when creditmemo is made
public function refund(Varien_Object $payment, $amount)
{

    Mage::Log('refund');
    return $this;
}
//but this is called, when invoice is being made
public function capture(Varien_Object $payment, $amount)
{

    return $this;
}
}

1 Ответ

0 голосов
/ 16 сентября 2014

Надеюсь, это кому-нибудь поможет!

Для кредитового авизо: Вы должны создать кредитовое авизо из счета-фактуры, учитывая, что счет-фактура генерируется из платежа, а не создается администратором. В разделе «Просмотр заказа (страница)»> «Счета (вкладка)»> «Выбрать счет из списка»> «Кредитовое авизо (кнопка)»> «Новое кредитовое авизо для счета (страница)» Вы должны увидеть две кнопки «Возврат в автономном режиме» и «Возврат». Кнопка «Возврат» активирует методы класса модели вашего метода оплаты processBeforeRefund (), refund (), processCreditmemo ().

...