2015-12-16 3 views
0

Я подключаю свой сайт к Shopify с помощью API и веб-узлов. Когда я создаю продукт на своем веб-сайте, я хочу, чтобы он был создан в Shopify. Это работает. Но Shopify отправляет мне Webhook, рассказывающий мне, что продукт был создан: поэтому он создает тот же продукт на моем сайте ... Я также хочу, чтобы продукт был создан другим способом.Не нужно искать веб-камеры

Я не могу использовать идентификатор продукта Shopify, чтобы проверить, существует ли продукт на моем сайте, потому что я еще не получил его.

Я чувствую, что могу найти способ заставить его работать, но я не уверен, что это будет самый чистый путь. Мне интересно, какое лучшее решение для этого сценария.

EDIT: (Добавление идея текущей)

  • Первая идея, что у меня есть (я думаю, что это очень плохой способ сделать это, но сказал мне @ Натан, чтобы дать говорить о моих идеях :)) , заключается в том, чтобы отказаться от подписки на веб-сайт product_create и повторно подписаться, когда у меня есть ID.
  • Второй, это сделать запрос на основе продукта sku. Это может сработать, но это не похоже на самое сильное решение.

Любой шанс есть способ попросить Shopify не отправлять мне веб-сайт, когда я создаю продукт?

EDIT 2: Другая идея:

  • Delay исполнение webhook на моем сайте с сна (5), так что у меня есть время на то же Shopify ID перед раздачей с webhook.
+0

Возможно, вы должны изменить свою идею для решения; даже если это не сработает, оно даст ответы на вопросы, чтобы начать работу, и лучше знать, что вам (или другим пользователям, помещенным таким образом позже) нужно знать. –

+0

Привет @Nathan, я сделал редактирование с двумя идеями, которые я имею в виду прямо сейчас. Но никто из них не очень мне нравится. Спасибо за вашу помощь! – Doud

+0

, когда вы создаете продукт на shopify с помощью api, это возвращает созданный продукт. Whit эти данные вы можете проверить webhook, Whats проблема? – miglio

ответ

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" 
     } 
    ], 
    ... 
    .. 
    . 
    . 

Второе:
Затем вы создадите данные о продуктах, и вы можете сохранить идентификатор в столбце вкладки продукта веб-сайт, чтобы проверить с помощью webhook от shopify.
простой!

+0

Если я правильно понял, это то, что я планировал. Но Shopify отправляет мне webhook перед возвратом ответа. Поэтому я не могу сравнивать его с любым идентификатором shopify. – Doud

+0

вы можете сохранить webhooks в другой таблице, например 'webhooks_table', с столбцом состояния' false', после поиска ответа 'product_id', если это существует, тогда обработайте и установите' state' в 'true'. Таким образом, каждый новый веб-хост входит с 'false'. – miglio

+0

Хорошо, что я плохой. Он работает как присутствующий, проблема была чем-то еще на моей стороне. Спасибо, что открыли мне глаза :) – Doud

Смежные вопросы