繁体   English   中英

如何获取从Shopify Webhook删除的订单ID-Laravel和Shopify

[英]How To Get ID of Order Deleted from Shopify Webhook - Laravel & Shopify

在我的教程中,我意识到我可以获取每个事件( orders/delete除外)中的orders/delete号/ id。 在下面的控制器中,我尝试检索订单号,就像对每个主题('orders/create', 'orders/paid')etc ,但是随后出现错误消息:

未定义的索引:控制器中的数字

调节器

  public function registerOrderDeleteWebhook()
    {
             $shop = Auth::user()->site;
            $token = Auth::user()->access_token;
            $shopify = Shopify::setShopUrl($shop)->setAccessToken($token);
            Shopify::setShopUrl($shop)->setAccessToken($token)->post("admin/webhooks.json", ['webhook' => 
             ['topic' => 'orders/delete',
             'address' => 'https://example.domain.com/order-delete-webhook',
             'format' => 'json'
             ]
            ]);
    }



public function orderDeleteWebhook(Request $request)
 {
        $order = $request->getContent();
        $order = json_decode($order, true);
        $order_id = $order['number'];

        //send notification to Admin with order number deleted below        

 }

为什么仅orders/delete会发生这种情况?

未定义的索引错误

发生这种情况是因为Shopify Order Delete webhook响应中没有数字字段。 此外,检查字段是否首先存在总是一个好主意。

如果您查看Shopify发送的“ 删除订单”响应 ,则该响应仅包括,

{
  "id": 777859760246
}

其中id是订单ID。 但是,由于删除了订单,因此以后甚至无法通过API获取更多详细信息。 根据此论坛帖子 ,除非先取消订单,否则无法删除订单。 因此,一种解决方法是也监听Order Cancel钩子,然后将此信息保存在您的Laravel应用程序(数据库等)中,并在以后收到Order Delete webhook时使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM