Question

Désolé, je suis très nouveau pour Magento.

Je suivais ce tutoriel pour créer un nouveau mode de paiement. Elle offre tout exemple de code .

Dans le tutoriel, en parlant de StandardController.php::successAction(), il est dit,

Si tout vérifie, nous pouvons changer l'état de l'ordre de STATE_PENDING_PAYMENT à STATE_NEW, ainsi son prêt pour quelqu'un sur le magasin pour expédier et complète. C'est aussi là que nous allons convertir le devis en facture et marquer comme payé.

Je suis en mesure de constater que la première phrase dans le code, mais je ne peux pas trouver la deuxième partie, qui est de « convertir le devis en facture et le marquer comme payé »:

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();

}

Peut-être que l'auteur a oublié d'inclure cette partie du code. J'ai essayé de lire la documentation Magento et ne pouvait réussir à convertir en citer une ordonnance, et non une facture:

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

Quel devrait être le code ici pour « convertir le devis en facture, et le marquer comme payant »?

Était-ce utile?

La solution

Vous ne pouvez pas convertir un devis en facture, vous devez convertir le devis en commande puis créer une facture. De plus, le mode de paiement ne doit pas convertir le devis en commande, cela se fait par la sauvegarde des mesures d'ordre lors de votre commande.

Pour créer une facture, vous pouvez utiliser:

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

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

Vous pouvez ajouter ce code dans le successAction dans le StandardController.php de votre module.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top