首先,我使用的是Magento 1.7。Magento - 贝宝争议自动创建贷项凭证
问题是,如果有人打开贝宝争议,还会在Magento中创建一个信用备忘录电子邮件,并且会向客户发送一封电子邮件,告诉他们他们已经退款。相反,PayPal只是在争议解决之前持有资金。
当我们解决纠纷时,信用备忘录仍然存在,我们不能删除或取消它。
有谁知道如何防止这种情况发生?
谢谢。
马立克
首先,我使用的是Magento 1.7。Magento - 贝宝争议自动创建贷项凭证
问题是,如果有人打开贝宝争议,还会在Magento中创建一个信用备忘录电子邮件,并且会向客户发送一封电子邮件,告诉他们他们已经退款。相反,PayPal只是在争议解决之前持有资金。
当我们解决纠纷时,信用备忘录仍然存在,我们不能删除或取消它。
有谁知道如何防止这种情况发生?
谢谢。
马立克
,我觉得这是我从v1.4.0.1升级到v1.7.0.2后遇到的Magento的较新版本的恼人的错误。我认为它在v1.4.2.0左右。有很多方法可能会出错我不知道他们为什么认为这是一个好主意添加它。
支持此操作的代码位于/app/code/core/Mage/Sales/Model/Order/Payment.php中的Mage_Sales_Model_Order_Payment类的registerRefundNotification()方法中。
每个timpea的修复在http://www.magentocommerce.com/boards/viewthread/261158/你只需要重载registerRefundNotification()并注释掉冒犯的部分,在v1.7.0.2将是下面的部分。
$serviceModel = Mage::getModel('sales/service_order', $order);
if ($invoice) {
if ($invoice->getBaseTotalRefunded() > 0) {
$adjustment = array('adjustment_positive' => $amount);
} else {
$adjustment = array('adjustment_negative' => $baseGrandTotal - $amount);
}
$creditmemo = $serviceModel->prepareInvoiceCreditmemo($invoice, $adjustment);
if ($creditmemo) {
$totalRefunded = $invoice->getBaseTotalRefunded() + $creditmemo->getBaseGrandTotal();
$this->setShouldCloseParentTransaction($invoice->getBaseGrandTotal() <= $totalRefunded);
}
} else {
if ($order->getBaseTotalRefunded() > 0) {
$adjustment = array('adjustment_positive' => $amount);
} else {
$adjustment = array('adjustment_negative' => $baseGrandTotal - $amount);
}
$creditmemo = $serviceModel->prepareCreditmemo($adjustment);
if ($creditmemo) {
$totalRefunded = $order->getBaseTotalRefunded() + $creditmemo->getBaseGrandTotal();
$this->setShouldCloseParentTransaction($order->getBaseGrandTotal() <= $totalRefunded);
}
}
$creditmemo->setPaymentRefundDisallowed(true)
->setAutomaticallyCreated(true)
->register()
->addComment(Mage::helper('sales')->__('Credit memo has been created automatically'))
->save();
$this->_updateTotals(array(
'amount_refunded' => $creditmemo->getGrandTotal(),
'base_amount_refunded_online' => $amount
));
$this->setCreatedCreditmemo($creditmemo);
谢谢!会试试看! – Marek123