Si quieres un correo electrónico que contiene el seguimiento informationto son enviadas cuando algún programa, por ejemplo, eBridge llama a la API salesOrderShipmentAddTrack V2, también puede ampliar Mage_Sales_Model_Order_Shipment_Api
p.
class PKS_Sales_Model_Order_Shipment_Api extends Mage_Sales_Model_Order_Shipment_Api
public function addTrack
al agregar la llamada para enviar el correo electrónico en el bloque de prueba, p.
try {
$shipment->save();
$track->save();
$shipment->sendEmail(true, '')
->setEmailSent(true)
->save(); /* added email with null comment */
}
También debe proporcionar una extensión a SOAP V2, p.
class PKS_Sales_Model_Order_Shipment_Api_V2 extends PKS_Sales_Model_Order_Shipment_Api
incluso si no tiene métodos :)
(ejemplo tiene mi aplicación/código/módulo local/PKS/Ventas, sustituir el nombre de la empresa para la PKS, disculpas re formatear)
aplicación /code/local/PKS/Sales/etc/config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<PKS_Sales>
<version>4.0.0.0</version>
<depends>
<Mage_Sales />
</depends>
</PKS_Sales>
</modules>
<global>
<models>
<sales>
<rewrite>
<order_shipment_api>PKS_Sales_Model_Order_Shipment_Api</order_shipment_api>
<order_shipment_api_v2>PKS_Sales_Model_Order_Shipment_Api_V2</order_shipment_api_v2>
</rewrite>
</sales>
</models>
</global>
</config>
Se tardó más tiempo en averiguar cómo escribir la PKS/Ventas/etc/API requerida.xml (ejemplo tiene mi aplicación/código/módulo local/PKS, sustituir el nombre de la empresa para la PKS)
<config>
<api>
<resources>
<sales_order_shipment translate="title" module="PKS_Sales">
<title>Modified Shipment API</title>
<model>sales/order_shipment_api</model>
<acl>sales/order/shipment</acl>
<methods>
<addTrack translate="title" module="PKS_Sales">
<title>Add new tracking number</title>
<acl>sales/order/shipment/track</acl>
</addTrack>
</methods>
<faults module="PKS_Sales">
<not_exists>
<code>100</code>
<message>Requested shipment does not exist.</message>
</not_exists>
<filters_invalid>
<code>101</code>
<message>Invalid filters given. Details in error message.</message>
</filters_invalid>
<data_invalid>
<code>102</code>
<message>Invalid data given. Details in error message.</message>
</data_invalid>
<order_not_exists>
<code>103</code>
<message>Requested order does not exist.</message>
</order_not_exists>
<track_not_exists>
<code>104</code>
<message>Requested tracking does not exist.</message>
</track_not_exists>
<track_not_deleted>
<code>105</code>
<message>Tracking not deleted. Details in error message.</message>
</track_not_deleted>
</faults>
</sales_order_shipment>
</resources>
<resources_alias>
<order>sales_order</order>
<order_shipment>sales_order_shipment</order_shipment>
</resources_alias>
<v2>
<resources_function_prefix>
<order>salesOrder</order>
<order_shipment>salesOrderShipment</order_shipment>
</resources_function_prefix>
</v2>
</acl>
</api>
</config>
Tenga en cuenta que con este enfoque, y teniendo Sistema> Configuración> Ventas> Los correos electrónicos de venta> Orden y envío correos electrónicos habilitados, su cliente recibirá - un correo electrónico confirmando un nuevo pedido - un segundo correo electrónico para el envío sin número de seguimiento - un tercer correo electrónico para el envío con el número de seguimiento, desde su extensión de API.
He intentado comentando la api.php crear de
$shipment->sendEmail($email, ($includeComment ? $comment : ''));
función, pero ese segundo correo electrónico se pone cada vez enviado.
Es Hay un oyente/observador específico para cuando se agrega el código de seguimiento a un envío? – Jen
Eso dependería mucho de cómo se agrega el código de seguimiento. –
¿Ayuda decir que el código de seguimiento está en el campo de código de seguimiento real en la información de envío que se acaba de agregar como comentario? – Jen