【问题标题】:Shopify webhooks not wanted不需要 Shopify 网络挂钩
【发布时间】:2015-12-16 04:50:31
【问题描述】:

我正在使用 API 和 Webhook 将我的网站连接到 Shopify。当我在我的网站上创建产品时,我希望它在 Shopify 上创建。这样可行。但是 Shopify 向我发回了一个 Webhook,告诉我已经创建了一个产品:所以它会在我的网站上创建相同的产品……我也希望以另一种方式创建产品。

我无法使用 Shopify 产品 ID 检查该产品是否已存在于我的网站上,因为我还没有收到它。

我觉得我可能会找到一种方法让它发挥作用,但我不确定这是否是最干净的方法。我想知道这种情况的最佳解决方案是什么。

编辑:(添加当前想法)

  • 我的第一个想法(我认为这是一种非常糟糕的做法,但@Nathan 让我谈谈我的想法 :)),是取消订阅 product_create webhook 并在我有的时候重新订阅身份证。
  • 第二个,是根据产品sku发出请求。这可能有效,但似乎不是最强大的解决方案。

有没有办法让 Shopify 在我创建产品时不要将 webhook 发回给我?

编辑 2: 其他想法:

  • 使用 sleep(5) 在我的网站上延迟执行 webhook,这样我就有时间在处理 webhook 之前与 shopify ID 相同。

【问题讨论】:

  • 您可能应该编辑您的想法以获得解决方案;即使它不起作用,它也会为答案提供一个起点,并让您更好地了解您(或其他类似放置的用户)需要知道的内容。
  • 嗨@Nathan,我用我现在想到的两个想法进行了编辑。但这些都没有真正让我满意。感谢您的帮助!
  • 当您使用 api 在 shopify 上创建产品时,这将返回创建的产品。有了这些数据,您可以验证 webhook,有什么问题?

标签: php api shopify


【解决方案1】:

第一:
您在自己的网站上创建新产品: 使用 api 你也可以create it on your shopify store

//sample
POST /admin/products.json
{
  "product": {
    "title": "Burton Custom Freestlye 151",
    "body_html": "<strong>Good snowboard!<\/strong>",
    "vendor": "Burton",
    "product_type": "Snowboard",
    "images": [
      {
        "src": "http:\/\/example.com\/rails_logo.gif"
      }
    ]
  }
}

同时shopify响应:

"product": {
    "id": 1071559589,
    "title": "Burton Custom Freestlye 151",
    "body_html": "<strong>Good snowboard!<\/strong>",
    "vendor": "Burton",
    "product_type": "Snowboard",
    "created_at": "2015-12-08T11:42:18-05:00",
    "handle": "burton-custom-freestlye-151",
    "updated_at": "2015-12-08T11:42:18-05:00",
    "published_at": "2015-12-08T11:42:18-05:00",
    "template_suffix": null,
    "published_scope": "global",
    "tags": "",
    "variants": [
      {
        "id": 1070325044,
        "product_id": 1071559589,
        "title": "Default Title",
        "price": "0.00",
        "sku": "",
        "position": 1,
        "grams": 0,
        "inventory_policy": "deny",
        "compare_at_price": null,
        "fulfillment_service": "manual",
        "inventory_management": null,
        "option1": "Default Title",
        "option2": null,
        "option3": null,
        "created_at": "2015-12-08T11:42:18-05:00",
        "updated_at": "2015-12-08T11:42:18-05:00",
        "requires_shipping": true,
        "taxable": true,
        "barcode": null,
        "inventory_quantity": 1,
        "old_inventory_quantity": 1,
        "image_id": null,
        "weight": 0.0,
        "weight_unit": "kg"
      }
    ],
    ...
    ..
    .
    .

第二:
然后,您创建了产品数据,您可以将 id 保存在产品表网站的列中,以使用 shopify 的 webhook 进行验证。
简单!

【讨论】:

  • 如果我理解得很好,那就是我的计划。但是 Shopify 在返回响应之前向我发送了 webhook。所以我无法将它与任何 shopify id 进行比较。
  • 您可以将 webhook 保存在其他表中,例如带有状态列 falsewebhooks_table,在响应搜索后搜索 product_id ,如果存在则处理并将 state 设置为 true .因此每个新的 webhook 都以false 状态进入。
  • 好吧,我的错。它按出席的方式工作,问题是我这边的其他问题。谢谢你让我大开眼界:)
  • 不客气。这对我来说似乎很少见,因为我构建了类似的应用程序并且一直在工作
猜你喜欢
  • 2012-09-26
  • 1970-01-01
  • 2019-05-02
  • 1970-01-01
  • 2015-11-22
  • 2021-03-22
  • 2015-07-05
  • 2015-10-11
  • 1970-01-01
相关资源
最近更新 更多