Question

J'ai une exigence lorsqu'une commande doit être créé à partir d'une commande que j'ai.e Re-commande fonction de magento, mais en programmant.Une tâche cron distribue un réorganiser en fonction de certaines conditions.Le code ci-dessous examine la commande-id et crée une nouvelle commande avec succès.Toutefois, le nouvel ordre détermine la mise à jour de prix du produit alors que j'en ai besoin pour être la même que la précédente commande.Comment puis-je le modifier pour établir les prix de la dernière commande?

$order = Mage::getModel('sales/order')->loadByIncrementId($lastOrderId);
$order_model = Mage::getSingleton('adminhtml/sales_order_create');
try {
    $order->setReordered(true);
    $order->getPayment()->getMethodInstance()->getInfoInstance();

    $order_model->getSession()->setUseOldShippingMethod(true);            
    $reorder = $order_model->initFromOrder($order);
    $newOrder = $reorder->createOrder();
    $newOrderId = $newOrder->getIncrementId();
} catch (Exception $e) {
    Mage::log('Renewal for Profile #'.$profileId.': '.$e, null, 'prosub-debug.log');
    Mage::logException($e);
}   
Était-ce utile?

La solution

Je pense que vous devriez effectuer une itération tous les éléments de la commande et de régler le prix de chacun d'eux.(prendre en compte la row_total et la réduction appliquée à la commande initiale)

Si vous souhaitez afficher la différence, vous pouvez laisser le price et d'appliquer une décote, sinon il suffit de copier tous les prix des domaines connexes:

  • prix
  • prix_de_base
  • original_price
  • base_original_price

Cela devrait être suffisant.

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