Magento a volte considera ordini che sono stati pagati tramite Paypal come sospette frodi. Non viene emessa nessuna fattura, il Cliente non viene avvisato tramite e-mail della conferma d’ordine e l’ordine finisce nel limbo, perché non è possibile fatturare l’ordine manualmente e non è possibile modificare manualmente lo stato.
Quel che è peggio è che se il Cliente si autentica sul sito, può vedere che l’ordine è stato contrassegnato come sospetto di frode.
Questo script da inserire nella root di Magento ti permette di convertire tutti gli ordini contrassegnati come sospetta frode in processati.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
require_once('app/Mage.php'); Mage::app(); $orders = Mage::getModel('sales/order')->getCollection() ->addFieldToFilter('status', 'fraud'); foreach ($orders as $order) { $orderId = $order->getId(); $fullOrder = Mage::getModel('sales/order')->load($orderId); $fullOrder->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true); $fullOrder->setStatus('processing', false); $fullOrder->save(); try { if(!$fullOrder->canInvoice()) { Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.')); } $invoice = Mage::getModel('sales/service_order', $fullOrder)->prepareInvoice(); if (!$invoice->getTotalQty()) { Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.')); } $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE); $invoice->register(); $transactionSave = Mage::getModel('core/resource_transaction')->addObject($invoice)->addObject($invoice->getOrder()); $transactionSave->save(); } catch (Mage_Core_Exception $e) { } } ?> |