Hello. Could you please tell me what payload the SHOP_UPDATE webhook returns. Which Shop object can I use (GraphQL or REST) and how can I identify development stores and paid plans in the payload of this webhook?
Topic summary
Main issue: Understand the SHOP_UPDATE webhook payload, which API object to use (REST vs GraphQL), and how to detect development stores vs paid plans.
Key details:
- A sample REST webhook payload (JSON) was shared, including fields like plan_name and plan_display_name, plus core shop metadata (id, domain, currency, timezone, etc.). This code snippet is central to the discussion.
- Guidance: You can use the REST payload and infer store status via plan_name. Examples included “partner_test” (observed for development) and “affiliate.”
Plan values:
- When asked for documented plan_name values, a list of possible values was provided (e.g., affiliate, partner_test, basic, professional, shopify_plus, trial, frozen, etc.). No official documentation link was cited.
GraphQL clarification:
- In the Shop object, plan.partnerDevelopment returns true for all development stores, which supports making the app free for dev stores and paid for others.
Outcome/status:
- Practical solution: use GraphQL plan.partnerDevelopment for reliable dev-store detection; use plan_name for plan differentiation.
- Remaining gap: official documentation of all plan_name values was not confirmed.
Hello @andrew_upo
Shop Update Webhook Payload :
{
"id": 12345,
"name": "xyz-com",
"email": "xyz@gamail.com",
"domain": "test.myshopify.com",
"province": null,
"country": "IN",
"address1": null,
"zip": null,
"city": null,
"source": null,
"phone": "99999999999",
"latitude": null,
"longitude": null,
"primary_locale": "en",
"address2": null,
"created_at": "2024-05-01T07:22:03-04:00",
"updated_at": "2024-06-06T08:20:46-04:00",
"country_code": "IN",
"country_name": "India",
"currency": "INR",
"customer_email": "test@gmail.com",
"timezone": "(GMT-05:00) America/New_York",
"iana_timezone": "America/New_York",
"shop_owner": "test",
"money_format": "Rs. {{amount}}",
"money_with_currency_format": "Rs. {{amount}}",
"weight_unit": "kg",
"province_code": null,
"taxes_included": false,
"auto_configure_tax_inclusivity": null,
"tax_shipping": null,
"county_taxes": true,
"plan_display_name": "Developer Preview",
"plan_name": "partner_test",
"has_discounts": true,
"has_gift_cards": true,
"myshopify_domain": "test.myshopify.com",
"google_apps_domain": null,
"google_apps_login_enabled": null,
"money_in_emails_format": "Rs. {{amount}}",
"money_with_currency_in_emails_format": "Rs. {{amount}}",
"eligible_for_payments": false,
"requires_extra_payments_agreement": false,
"password_enabled": true,
"has_storefront": true,
"finances": true,
"primary_location_id": 645549,
"checkout_api_supported": true,
"multi_location_enabled": true,
"setup_required": false,
"pre_launch_enabled": false,
"enabled_presentment_currencies": [
"INR",
"MXN"
],
"transactional_sms_disabled": true,
"marketing_sms_consent_enabled_at_checkout": false
}
You can use rest API and identify development stores and paid plans in the webhook payload through the plan_name.
If the solution presented meets your needs and addresses your query effectively, I encourage you to accept it as the chosen answer. This will acknowledge the support you received and aid fellow community members in identifying reliable and effective solutions for their similar concerns.
Thank you.
Thanks for the reply.
Are there any documented values for the “plan_name” field?
What values can I get there. The documentation gives the value “affiliate” for development stores, but my development store returns “partner_test” as in your reply.
Hello @andrew_upo
Here are All Shopify Plan Name :
[
"affiliate",
"staff",
"professional",
"custom",
"shopify_plus",
"unlimited",
"basic",
"cancelled",
"staff_business",
"trial",
"dormant",
"frozen",
"singtel_unlimited",
"npo_lite",
"singtel_professional",
"singtel_trial",
"npo_full",
"business",
"singtel_basic",
"uafrica_professional",
"sales_training",
"singtel_starter",
"uafrica_basic",
"fraudulent",
"enterprise",
"starter",
"comped",
"shopify_alumni",
"partner_test"
]
If the solution presented meets your needs and addresses your query effectively, I encourage you to accept it as the chosen answer. This will acknowledge the support you received and aid fellow community members in identifying reliable and effective solutions for their similar concerns.
Thank you.
Thank you so much!
Could you please tell me more, in Shop GraphQL object there is a field “plan.partnerDevelopment”. This field will return true for all development stores, right?
My goal is to make the app free for development stores, but require subscriptions for stores on paid plans.
Hello @andrew_upo
You’re correct, The plan.partnerDevelopment field returns true for all development stores.
If the solution presented meets your needs and addresses your query effectively, I encourage you to accept it as the chosen answer. This will acknowledge the support you received and aid fellow community members in identifying reliable and effective solutions for their similar concerns.
Thank you.