Domanda

Il nostro sito è l'invio di messaggi di posta elettronica di spedizione, ma l'e-mail non contiene informazioni di tracciamento. Ho creato un nuovo modello in base al largo di quello di default e ha aggiunto {{tipo di blocco = 'core / template' area = 'frontend' template = 'email / ordine / spedizione / track.phtml' spedizione = $ spedizione order = $ ordine}} , ma che una parte della posta è vuota. Quando scatto "Spedizione Track" nel pannello di amministrazione, che porta in primo piano il numero di tracking e un link al gruppo di continuità,

Abbiamo un'API UPS integrata per creare le spedizioni direttamente da Magento. Sembra che l'e-mail la spedizione viene inviata prima del numero di tracking ritorna. C'è anche un messaggio di stato verde che dice: "La spedizione è stata creata." prima di una qualsiasi delle informazioni come il peso e le dimensioni sono iscritti.

Sembra che arriva a scavare attraverso un codice e spostare alcune cose intorno.

Che cosa potevo mancare? Qualsiasi aiuto sarebbe grande qui.

È stato utile?

Soluzione

Forse un po 'tardi per questo, ma ....

C'è un thread sul forum di Magento qui: http://www.magentocommerce.com/boards/viewthread/9594/

Se si guarda il codice per Mage_Sales_Model_Order_Shipment_Api, l'e-mail di conferma viene inviata come parte della funzione create(). Poi, i dettagli di tracciamento sono aggiunti in seguito con una chiamata a addTrack(), ma da quel momento, l'e-mail è già inviate.

La soluzione suggerita è quella di modificare la fonte e spostare la chiamata a $shipment->sendEmail(), ma ho il sospetto che non è la soluzione più elegante - ho il sospetto che sarebbe meglio l'estensione della classe, invece, e facendo in questo modo.

Altri suggerimenti

Questa soluzione funziona per me, ma attenzione come un altro file si estende la funzione create(). Quindi è necessario lasciare un commento, anche la chiamata a $shipment->sendEmail() Vendite / ordine / spedizione / Api / V2.php

Un altro approccio senza editing / estendere nucleo Magento è quello di modificare la vostra chiamata API di non inviare l'e-mail di spedizione, in primo luogo quando si crea l'ordine. Basta inviare dopo aver aggiunto il codice di monitoraggio:

  1. Chiamata sales_order_shipment.create con $email = FALSE vedere Mage_Sales_Model_Order_Shipment_Api e Mage_Sales_Model_Order_Shipment_Api_V2

    public function create($orderIncrementId, $itemsQty = array(), $comment = null, $email = false, $includeComment = false)
    
  2. Aggiungere il codice di monitoraggio chiamando sales_order_shipment.addTrack

    public function addTrack($shipmentIncrementId, $carrier, $title, $trackNumber)
    
  3. Chiamare il metodo sales_order_shipment.sendInfo per attivare l'e-mail della spedizione

    public function sendInfo($shipmentIncrementId, $comment = '')
    

Questo è in realtà sono meglio di modificare il comportamento di default di Magento. Buona fortuna

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top