2013-06-22 8 views
0

Я все еще знакомлюсь с моделями magento.обновление столбцов в платежной таблице пурпурного

У нас есть плагин magento, который предлагает другой вариант проверки. Один из наших клиентов извлекает заказы и отправляет файл в центр их выполнения для обработки.

Этот скрипт извлекает только порядок, обработанный с использованием кибер-ресурса; он проверяет столбцы «cybersource_token» и «метод» в sales_flat_order_payment.

Поскольку нам не разрешено обновлять этот скрипт, мне нужно установить эти два столбца, поэтому заказы, обработанные нашим плагином для проверки, записываются в файл извлечений при запуске этого скрипта. Я сделаю это в нашем плагине после создания порядка magento.

Я попробовал следующее

$orderPayment = Mage::getModel('sales/order_payment', $order)->getPayment(); 
$orderPayment->setData('cybersource_token', '1234'); 
$orderPayment->setData('method', 'cybersource_soap'); 

Но не могу получить эту работу.

Любые предложения по обновлению этих двух столбцов?

+0

Во-первых, вы должны войти в $ orderPayment как этот Mage :: лога ($ orderPayment, нулевой 'orderpayment.log'). Затем вы увидите файл журнала под youmagnetoflder/var/log. Наконец, найдите cybersource_token в журнале. дайте мне знать результат –

+0

Thiha, спасибо за вашу помощь. вот код 1. $ orderPayment = Mage :: getModel ('sales/order_payment', $ order) -> getPayment(); 2. Mage :: log ($ orderPayment, null, 'orderpayment.log'); результат журнала: "2013-06-22T22: 38: 33 + 00: 00 DEBUG (7):" – Randy

+0

Значит, вы не видели никаких записей в этом файле журнала? –

ответ

0

Как это сделать? Попробуйте один из вариантов. Первый не совсем уверен. Дайте мне знать любой результат.

$orderPayment = Mage::getModel('sales/order_payment'); 
$orderPayment->setData('cybersource_token', '1234'); 
$orderPayment->setData('method', 'cybersource_soap'); 

или

$order = Mage::getModel('sales/order'); //this line is sample change your $order in here 
$orderPayment = Mage::getModel('sales/order_payment') 
->setCybersource_token('1234') 
->setMethod('cybersource_soap'); 
$order->setPayment($orderPayment); 
+0

Спасибо Thiha !!! So да, похоже, что это сработало! Я собираюсь сделать больше тестов. Вопросы, если вы не возражаете: 1) как вы нашли setCybersource_token и setMethod? и 2) как вы знаете, чтобы делать setPayment на объекте заказа? Еще раз спасибо!!! – Randy

+0

1) Предполагаю, вы уже добавили новый пользовательский атрибут «cybersource_token», и метод уже включен. 2) см. Эту ссылку для 2 ответов в строке 77 до 83 –

+0

Thiha, поэтому ее частично работает. Он обновляет таблицу платежей с помощью нового cybersource_token и метода, но создает новый порядок и затем удаляет заказ. Я подозреваю, что я не уклоняюсь от первоначального заказа с номером оплаты, который я обновляю – Randy

Смежные вопросы