Da un ordine specifico, desidero creare la spedizione di tale ordine e anche assegnare il numero di tracciamento a esso in modo programmatico. Per favore aiuto. GrazieMagento creare la spedizione con il numero di tracciatura al livello di programmazione
risposta
La domanda era solo per scopo di condivisione delle conoscenze.
Si può capire alcuni punti da Ref_Link
// $order_id = Order ID
$_order = Mage::getModel('sales/order')->load($order_id);
if($_order->canShip())
{
$shipmentId = Mage::getModel('sales/order_shipment_api')->create($_order->getIncrementId(), $itemsarray ,'your_comment' ,false,1);
echo $shipmentId; // Outputs Shipment Increment Number
$trackmodel = Mage::getModel('sales/order_shipment_api')
->addTrack($shipmentId,'your_shipping_carrier_code','your_shipping_carrier_title','carrier_tracking_number');
}
$itemsarray
= formato spiegato qui Ref_link
questo è tutto!
Un frammento di codice semplice.
Spero che aiuti qualcuno.
La risposta accettata è corretta e ha funzionato per me su CE 1.9, ma ho voluto espanderci.
Non è necessario preoccuparsi del parametro $itemsQty
, è possibile passare un array()
vuoto o lasciarlo fuori completamente. È un parametro facoltativo e il metodo prepareShipment()
in app\code\core\Mage\Sales\Model\Service\Order.php
verificherà i dati e eseguirà una ricerca, se necessario.
Se si desidera includere il numero di tracciamento nell'e-mail di spedizione, assicurarsi di aggiungere prima il rilevamento e quindi utilizzare Mage::getModel('sales/order_shipment_api')->sendInfo($shipmentIncrementId)
.
Snippet di codice:
$shipmentApi = Mage::getModel('sales/order_shipment_api');
//pass false for email, unless you want Magento to send the shipment email without any tracking info
//could also be written as $shipmentIncrementId = $shipmentApi->create($order->getIncrementId());
$shipmentIncrementId = $shipmentApi->create($order->getIncrementId(), array(), '' , false, 0);
//add tracking info ($shippingCarrier is case sensitive)
$shipmentApi->addTrack($shipmentIncrementId, $shippingCarrier, $shippingTitle, $trackingNumber);
//send shipment email with tracking info
$shipmentApi->sendInfo($shipmentIncrementId);
creare() firma del metodo:
public function create($orderIncrementId, $itemsQty = array(), $comment = null,
$email = false, $includeComment = false)
Vedi app\code\core\Mage\Sales\Model\Order\Shipment\Api.php
per tutti i metodi.
- 1. Creare ShapeDrawable al livello di programmazione
- 2. Contrassegna un ordine Magento come completo a livello di programmazione
- 3. Come posso creare questa associazione personalizzata al livello di programmazione?
- 4. Quando creare le autorizzazioni Django personalizzate al livello di programmazione?
- 5. Magento sostituire i metodi di spedizione
- 6. Cambia frammenti al livello di programmazione
- 7. Abilita (installa) al livello di programmazione IIS
- 8. Magento: modifica il metodo di spedizione sull'ordine esistente
- 9. Come posso utilizzare il compilatore JDT al livello di programmazione?
- 10. Magento - Sposta una categoria a livello di programmazione
- 11. MapActivity: imposta APIKey al livello di programmazione
- 12. Mocha: creare e finalizzare il test a livello di programmazione
- 13. Come modificare il testo di UIBarButtonItem al livello di programmazione?
- 14. Cambia tipo UIB al livello di programmazione
- 15. Come confermare a livello di programmazione un utente in Magento?
- 16. aggiungere i vincoli al livello di programmazione
- 17. android - impostazione LayoutParams al livello di programmazione
- 18. Imposta NSIndexPath al livello di programmazione
- 19. livello di programmazione creare griglia con l'elemento personalizzato
- 20. Come cambiare il carattere di un'etichetta al livello di programmazione?
- 21. Modifica endpoint ReaderQuotas al livello di programmazione
- 22. annulla UIAlertView al livello di programmazione
- 23. Evidenzia al livello di programmazione al clic di UIButton
- 24. genera il file .mht al livello di programmazione
- 25. Come formattare la cella radgrid al livello di programmazione
- 26. È possibile impostare la priorità BroadcastReceiver al livello di programmazione?
- 27. Come ricaricare la riga spostata al livello di programmazione?
- 28. Errore di transazione Magento "Specificare un metodo di spedizione"
- 29. Aggiornamento Magento Attributo di programmazione
- 30. Cambia scheda al livello di programmazione con SlidingTabLayout
Si noti che $ shipmentId è in realtà l'ID di incremento della spedizione – kmdsax