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


Извините, я очень новичок в Magento.

Я следую этому руководству , чтобы создать новый способ оплаты. Он предоставляет полный пример кода здесь.

В учебнике, говоря о StandardController.php::successAction(), говорится:

Если все подтвердится, мы можем изменить состояние заказа с STATE_PENDING_PAYMENT на STATE_NEW, чтобы он был готов к отправке и выполнению кем-либо в магазине. Здесь же мы преобразуем предложение в счет-фактуру и отметьте его как оплаченный.

Я могу найти это первое предложение в коде, однако я не могу найти вторую часть, которая заключается в том, чтобы "преобразовать предложение в счет-фактуру и отметить его как оплаченное":

if($state == Mage_Sales_Model_Order::STATE_PENDING_PAYMENT){

    $msg = 'Payment completed via MockPay.';
    $order->setState(Mage_Sales_Model_Order::STATE_NEW ,true,$msg,false);
    $order->save();

    $quote = Mage::getSingleton('checkout/session')->getQuote();
    $quote->setIsActive(false)->save();

}

Возможно, автор забыл включить эту часть кода. Я попытался прочитать документы Magento и смог преобразовать только цитату в заказ, а не в счет-фактуру:

    $convertQuote = Mage::getSingleton('sales/convert_quote');
    $order = $convertQuote->toOrder($quote);

Каким должен быть код здесь, чтобы "преобразовать предложение в счет-фактуру и отметить его как оплаченный"?

Author: Obay, 2013-08-26

1 answers

Вы не можете преобразовать предложение в счет-фактуру, вам необходимо преобразовать предложение в заказ, а затем создать счет-фактуру. Также способ оплаты не должен преобразовывать предложение в заказ, это делается с помощью действия сохранить заказ во время оформления заказа.

Для создания счета-фактуры вы можете использовать:

$invoice = $order->prepareInvoice();
$invoice->register()->capture();

Mage::getModel('core/resource_transaction')
    ->addObject($invoice)
    ->addObject($invoice->getOrder())->save();

Вы можете добавить этот код в действие успеха в StandardController.php вашего модуля.

 1
Author: Vladimir Kerkhoff, 2013-08-26 18:55:02