Product Webhook sending variants as a product

Levi3
Shopify Partner
13 0 5

Starting this morning (~14:30UTC) we started seeing calls from the shopify webhook for products (products/update) that only contain a product variant as the payload instead of the normal payload as documented (product + images + variants). We've never seen this before and can't find anything in the documentation about it (https://help.shopify.com/en/api/reference/events/webhook).

I started with our partner support, but they directed me to the forums. Any one know if this is an intentional change and where the changes might be documented?

The payload we were expecting (as documented, and still get in addition to the variant version) looks like this:

{
  "id": 1362181292118,
  "title": "Product Title",
  "body_html": "...",
  "vendor": "***",
  "product_type": "Teething",
  "created_at": "2018-08-01T10:01:34-07:00",
  "handle": "blue-grey-and-marble-thing",
  "updated_at": "2018-09-06T09:57:45-07:00",
  "published_at": "2018-08-09T09:56:28-07:00",
  "template_suffix": "",
  "tags": "facebook, google, launch",
  "published_scope": "global",
  "variants": [
    {
      "id": 12453300437078,
      "product_id": 1362181292118,
      "title": "Adjustable / Slate Blue",
      "price": "39.95",
      "sku": "QTN-009",
      ...
    }
  ],
  "options": [
    {
      "id": 1824643514454,
      "product_id": 1362181292118,
      "name": "Size",
      "position": 1,
      "values": [
        "Adjustable"
      ]
    },
    {
      "id": 1821685153878,
      "product_id": 1362181292118,
      "name": "Color",
      "position": 2,
      "values": [
        "Slate Blue"
      ]
    }
  ],
  "images": [
    ...
  ],
  "image": {
    ...
  }
}

The payload we started getting today that we've never seen before looks like this (just a variant, nothing else):

{
  "id": 49196448143,
  "product_id": 11940258127,
  "title": "6 / black",
  "price": "11.95",
  "sku": "SJG06",
  ...
}

 

Replies 18 (18)

Brandon_Kane
Excursionist
18 0 7

We have also experienced the same issue.  Have escalated via partner support and are waiting on a response.  

Nothing on status.shopify.com yet, hopefully will get a response and update soon.

vnbrs
Visitor
1 0 1

We're experiencing this issue here. Waiting for updates. ?

Alex
Shopify Staff
1561 81 341

Thanks for the heads up guys, looking into it. To be clear - is this the products/update topic or something else? Not a lot of success in this moment replicating on our end.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Levi3
Shopify Partner
13 0 5

Yes, We are seeing it on the products/update topic. I only inspected a minute of our traffic, but we are seeing hundreds of these per minute on the products/update topic across many stores.

Brandon_Kane
Excursionist
18 0 7

Same here - we have seen 42,000+ occurrences across hundreds of stores since this started about 5 hours ago.  Have provided several examples in the ticket 10259583 that was logged from partner support.

Judah
Shopify Partner
3 0 1

Same here on the webhook for products/update. We started seeing on our stores about 5 hours ago.

It's only sending the changed variant instead of the whole product.

 

Jinesh_Shah1
Shopify Partner
2 0 1

We are also experiencing this issue. Rather than receiving a full product on the product/update hook, we receive the following shape:

{ barcode: 100610000954, compare_at_price: None, created_at: 2016-05-18T06:10:52-04:00, fulfillment_service: manual, grams: 91, id: 19184150596, image_id: 3892446199851, inventory_item_id: 12304199812, inventory_management: shopify, inventory_policy: deny, inventory_quantity: 26, old_inventory_quantity: 26, option1: Powder Blue, option2: Euro, option3: No Thanks, position: 5, price: 85.00, product_id: 3973433604, requires_shipping: True, sku: 100610000954, taxable: True, title: Powder Blue / Euro / No Thanks, updated_at: 2018-09-06T16:02:22-04:00, weight: 0.2, weight_unit: lb }

Alex
Shopify Staff
1561 81 341

Hey everyone,

We've got a revert in the deployment pipeline. Should be resolved within the next little bit.

Cheers.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Jinesh_Shah1
Shopify Partner
2 0 1

Will all the missed updates be resent?

Alex
Shopify Staff
1561 81 341

Hey everyone.

Revert has been deployed so you shouldn't see anymore incomplete incoming data. For now I recommend running a reconciliation job on your end to fill in any blanks on your data where you can.

Cheers.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Levi3
Shopify Partner
13 0 5

Thank you for investigating and updating us Alex!

We're seeing many fewer, but still more than 30/minute invalid requests. Is the deployment already complete or will it take time to roll out everywhere? Could there be some retry logic from shopify at play here? I'm not positive, but our service is probably returning a 500 status code to these requests.

Alex
Shopify Staff
1561 81 341

It would be retry logic if you were returning anything other than a 200 during that time, and some might have been jobs that were enqueued and didnt' necessarily fire right away (to entertain that possibility). The logic changed was in how we intially serialized the webhook bodies, so new webhooks should be ok. It might be worth coding a temporary handler into your app logic to return 200s to variant only bodies for now to stop the retrying.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

ClementG
Shopify Partner
660 0 130

As far as we can see the issue is now fixed.

I hope next time you are able to deploy changes like this to a few 'pods' only before releasing to the entire platform to minimize issues.

ClementG
Shopify Partner
660 0 130

Would you able able to fire those webhooks again with the correct payload?

Levi3
Shopify Partner
13 0 5

Alex, we've started getting emails saying our webhook for products/update is failing and will be removed. Presumably due to the retries with invalid payloads that have not stopped since yesterday.

Is our only solution to hack in a workaround and start returning a 200 for these invalid payloads? Any way this could be resolved on your end for everyone at once?

Alex
Shopify Staff
1561 81 341

@Clement:

There aren't currently plans to resend the webhooks in their proper state for that time period. I would definitely start reconciling that data sooner rather than later if the current state is spotty on your end.

@Levi:

Correct, the current solution would be to catch those invalid webhooks and properly acknowledge them temporarily until it blows over, there isn't a known solution to address this from our end at the moment.

Alex | Shopify 
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution
 - To learn more visit the Shopify Help Center or the Shopify Blog

Ryan_Alyea
Shopify Partner
26 0 2

Yeahhhh...... I almost had a heart attack when I saw an inbox of 1000+ webhook failed messages......

I'm glad to know that it's fixed but Shopify should look into perhaps cancelling and reissuing erroneous webhooks in the future. Internally updating my app to send a 200 OK on wrong data should not happen.

Todd_Trimakas
Shopify Partner
142 0 28

This seems to be happening again!!!

 

This is what I'm getting for a product with variants:

 

"id" => 8050823790826,
                   "title" => "72 Inch Metal Shower Hose Replacement For Hand Held Shower Heads - Canada",
               "body_html" => "some stuff here",
                  "vendor" => "HammerHead Showers",
            "product_type" => "Shower Hose",
              "created_at" => "2023-01-18T16:44:08-05:00",
                  "handle" => "72-inch-metal-shower-hose-replacement-for-hand-held-shower-heads-canada",
              "updated_at" => "2023-01-18T18:00:30-05:00",
            "published_at" => nil,
         "template_suffix" => nil,
                  "status" => "draft",
         "published_scope" => "web",
                    "tags" => "all metal, Brushed Nickel, canada, Chrome, HammerHead Showers, Hand Held Shower Head, metal, oil rubbed bronze, shower, spo-default, spo-enabled, spo-notify-me-disabled, Stainless",
    "admin_graphql_api_id" => "gid://shopify/Product/8050823790826",
                "variants" => [],

 

ByteStand - Amazon to Shopify in one click