Как получить ID заказа, удаленного из Shopify Webhook - Laravel & Shopify - PullRequest
0 голосов
/ 07 ноября 2018

В своем уроке я понял, что могу получить номер / идентификатор заказа во время каждого события, кроме orders/delete. В моем контроллере, указанном ниже, я пытаюсь получить номер заказа так же, как и для каждой темы ('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?

1 Ответ

0 голосов
/ 08 ноября 2018

неопределенная ошибка индекса

происходит потому, что в ответе интернет-крюка Shopify Order нет числового поля. Более того, всегда полезно проверить, существует ли поле в первую очередь.

Если посмотреть на ответ Удалить заказ , отправленный Shopify, он включает только

{
  "id": 777859760246
}

где id - идентификатор заказа. Но так как заказ удален, вы не сможете получить более подробную информацию позже даже через API. Согласно этому сообщению на форуме заказ не может быть удален, пока он не будет отменен первым. Поэтому обходной путь - это прослушать ловушку Order Cancel и сохранить эту информацию где-нибудь в вашем приложении Laravel (база данных и т. Д.) И использовать ее позже, когда будет получен веб-крючок Order Delete.

...