2012-06-13 46 views
2

我們訂閱shopify'訂單履行'webhook。在過去的一個月裏,我們在分析發佈給我們的數據並根據它採取行動時毫無問題。特別是,每個請求都包含一個'customer'數組,包含(至少)'email','first_name'和'last_name'。什麼會導致shopify webhook的主體不包含「客戶」數組?

我們剛剛收到的數據沒有「客戶」陣列。在表面檢查中,訂單似乎與我們處理的任何其他訂單沒有什麼不同,所以沒有明顯的理由說明情況。

我們已經收到不包含電子郵件,FIRST_NAME和姓氏,但不是在一個「客戶」陣列中的數據。我們可以修改我們的代碼以查找其他地方來提取這些數據,但我們寧願不理解爲什麼要進行更改。

以前有一個宣佈更改數據Shopify職位的結構,我們已經錯過了不知何故?

是什麼,這將導致「客戶」陣列不會出現在發佈數據的條件是什麼?發佈的數據中是否有任何位置保證始終包含電子郵件,first_name和last_name,以便我們可以防止再次發生這種情況?

+0

我相信客戶數據通常是在散時的響應是一個訂單資源。 聽起來這可能是Shopify中的競爭條件。你注意到了order_id嗎?如果您現在通過API獲取訂單,它現在會顯示客戶散列嗎? –

+0

嗨!我剛剛通過使用ShopifyAPI :: Order.find請求通過ID進行的訂單來測試,並且返回的訂單仍然沒有客戶數據散列。如果有幫助,我可以將訂單ID和我們在Shopify中收到的數據的YAML轉儲發送給他人。 –

+0

您可以直接發電子郵件給我,[email protected] –

回答

1

你的網絡掛接處理程序應該處理的情況下是一個訂單上的客戶信息丟失。這可能發生在合法的情況下,客戶被刪除,這可能由商家手動完成。

在你的情況而言,問題是,客戶沒有得到與訂單相關聯。這是Shopify用於後臺作業處理的庫中的一個錯誤,它不會重試因內核不足而導致內存不足的作業。在這種情況下,這項工作將創建一個客戶來訂購新客戶。我已經修復了在這種情況下應該防止後臺作業丟失的相關錯誤。

+0

太好了 - 謝謝你的修復。我們也很高興知道爲什麼我們應該處理'缺少客戶數據'的情況 - 我們非常高興能夠進行防守編程,但是更願意知道我們爲什麼這樣做,而不是僅僅進行一些「貨物崇拜」後備。再次感謝你的幫助! –

+0

同樣,如果產品變體被刪除,我應該在line_items上添加variant_id,順序也可以是'null'。 –

相關問題