Shopify webhooks不想要

时间:2015-12-16 04:50:31

标签: php api shopify

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

我无法使用Shopify产品ID检查我的网站上是否已存在该产品,因为我尚未收到该产品。

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

编辑:(添加当前的想法)

  • 我的第一个想法(我认为这是一个非常糟糕的做法,但@Nathan告诉我谈谈我的想法:)),是取消订阅product_create webhook并重新订阅我有ID。
  • 第二个是基于产品sku的请求。这可能有用,但它似乎不是最强大的解决方案。

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

编辑2: 其他想法:

  • 延迟执行我的网站上的webhook并进行睡眠(5),以便在处理webhook之前有时间使用shopify ID。

1 个答案:

答案 0 :(得分: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"
      }
    ]
  }
}

同时购买响应:

"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进行验证。
简单!