トラッキング情報が記載されたメールを送信するには、たとえば次のようなプログラムが送信されます。 eBridgeはsalesOrderShipmentAddTrack V2 APIを呼び出して、あなたも拡張することができますMage_Sales_Model_Order_Shipment_Api
例えば
class PKS_Sales_Model_Order_Shipment_Api extends Mage_Sales_Model_Order_Shipment_Api
public function addTrack
tryブロックに電子メールを送信する呼び出しを追加するなどしてください。
try {
$shipment->save();
$track->save();
$shipment->sendEmail(true, '')
->setEmailSent(true)
->save(); /* added email with null comment */
}
また、SOAP V2に拡張機能を提供する必要があります。それは方法:)
(例はPKSのためのあなたの会社名に置き換え、PKS /セールスモジュール/ローカル/私のアプリ/コードを持って、謝罪の書式再)
アプリを持っていない場合でも、
class PKS_Sales_Model_Order_Shipment_Api_V2 extends PKS_Sales_Model_Order_Shipment_Api
/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>
それは必要なPKS /セールスの/ etc/APIを作成する方法を考え出すより多くの時間がかかりました。XML (PKSモジュール/例は、私のアプリ/コードを持っている/ローカル、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>
このアプローチであることに注意して、[システム]> [設定]> [セールス>セールスメール>注文や出荷を持ってください。あなたの顧客は を受け取る - 新しい注文を確認するメールが1つ - 追跡番号なしの郵便物の第2のメール - 追跡番号付きの郵便物の3番目のEメールがあなたのAPI拡張から得られる。
私はApi.phpは、関数の
$shipment->sendEmail($email, ($includeComment ? $comment : ''));
を作成するが、2番目のメールがちょうど送っ取得し続けることをコメントアウトしようとしました。
されています特定のリスナ/オブザーバが、追跡コードが出荷に追加されたときのためのものですか? – Jen
これは、トラッキングコードの追加方法に非常に依存します。 –
コメントとして追加されただけで、追跡コードが実際の追跡コードフィールドにあると言うと役立ちますか? – Jen