仅限 Shopify products/delete webhook returns ID

Shopify products/delete webhook only returns ID

我在 rails 上的 ruby 应用程序应该在产品被删除时做一些事情。根据 Shopify's website here,对 products/delete 的响应应该是一个 JSON 对象,其中包含与已删除产品关联的 product_id 等信息:

{
  "id": 788032119674292922,
  "title": "Example T-Shirt",
  "body_html": null,
  "vendor": "Acme",
  "product_type": "Shirts",
  "created_at": null,
  "handle": "example-t-shirt",
  "updated_at": "2021-07-01T14:08:43-04:00",
  "published_at": "2021-07-01T14:08:43-04:00",
  "template_suffix": null,
  "published_scope": "web",
  "tags": "example, mens, t-shirt",
  "admin_graphql_api_id": "gid:\/\/shopify\/Product\/788032119674292922",
  "variants": [
    {
      "id": 642667041472713922,
      "product_id": 788032119674292922,
      "title": "",
      "price": "19.99",
      "sku": "example-shirt-s",
      "position": 0,
      "inventory_policy": "deny",
      "compare_at_price": "24.99",
      "fulfillment_service": "manual",
      "inventory_management": "shopify",
      "option1": "Small",
      "option2": null,
      "option3": null,
      "created_at": null,
      "updated_at": null,
      "taxable": true,
      "barcode": null,
      "grams": 200,
      "image_id": null,
      "weight": 200.0,
      "weight_unit": "g",
      "inventory_item_id": null,
      "inventory_quantity": 75,
      "old_inventory_quantity": 75,
      "requires_shipping": true,
      "admin_graphql_api_id": "gid:\/\/shopify\/ProductVariant\/642667041472713922"
    },
    {
      "id": 757650484644203962,
      "product_id": 788032119674292922,
      "title": "",
      "price": "19.99",
      "sku": "example-shirt-m",
      "position": 0,
      "inventory_policy": "deny",
      "compare_at_price": "24.99",
      "fulfillment_service": "manual",
      "inventory_management": "shopify",
      "option1": "Medium",
      "option2": null,
      "option3": null,
      "created_at": null,
      "updated_at": null,
      "taxable": true,
      "barcode": null,
      "grams": 200,
      "image_id": null,
      "weight": 200.0,
      "weight_unit": "g",
      "inventory_item_id": null,
      "inventory_quantity": 50,
      "old_inventory_quantity": 50,
      "requires_shipping": true,
      "admin_graphql_api_id": "gid:\/\/shopify\/ProductVariant\/757650484644203962"
    }
  ],
  "options": [
    {
      "id": 527050010214937811,
      "product_id": 788032119674292922,
      "name": "Title",
      "position": 1,
      "values": [
        "Small",
        "Medium"
      ]
    }
  ],
  "images": [
    {
      "id": 539438707724640965,
      "product_id": 788032119674292922,
      "position": 0,
      "created_at": null,
      "updated_at": null,
      "alt": null,
      "width": 323,
      "height": 434,
      "src": "\/\/cdn.shopify.com\/shopifycloud\/shopify\/assets\/shopify_shirt-39bb555874ecaeed0a1170417d58bbcf792f7ceb56acfe758384f788710ba635.png",
      "variant_ids": [
      ],
      "admin_graphql_api_id": "gid:\/\/shopify\/ProductImage\/539438707724640965"
    }
  ],
  "image": null
}

但是,每当我通过实际删除 Shopify 管理界面中的产品来对其进行测试时,我只会在响应中收到 id。有人知道为什么会这样吗?我对其他 webhook 的设置完全相同,我没有遇到任何其他问题。

看起来这是一个 open issue on the shopify_api gem for version 2021-01. I don't think you are doing anything wrong. It looks like nobody has responded in a while to the issue, you might want to try to upgrade to another version 看看他们是否在任何较新的版本中修复了它。

编辑:根据 2017 年 3 月的 post,已删除端点的预期行为仅为 return 已删除资源的 ID。这可能就是 Github 上的问题被忽略的原因。