Closed8

Shopify App: App history "Closed Store"

Keisuke InabaKeisuke Inaba

目的

Shopify アプリの管理画面で App history が確認できるが、ここで表示される「Event: Closed Strore」を検知し、必要な処理を実行したい。(Webhook shop/uninstalled では検知できない。)

Event: Colsed Strore

Keisuke InabaKeisuke Inaba

Webhook shop/update で把握

Webhook shop/update の plan 名で把握できるみたい。

https://shopify.dev/tutorials/charging-for-your-app-with-rest-admin-api-faq#how-are-recurring-application-charges-affected-when-a-shop-becomes-dormant-frozen-or-closed

ただし、どのような名称で入ってくるか公式ドキュメントでは明らかでない。下の引用を参考にすると Unavailable ShopClosed Store が該当しそう。

https://community.shopify.com/c/Shopify-APIs-SDKs/Get-quot-re-opened-store-quot-information-via-webhook/td-p/425586

When I receive the "shop/update" webhook topic, I check the current plan of the shop. When I receive "Unavailable Shop", then I can assume that they are closed. Fair enough.

Is there a reliable way to get the information that a shop has been re-opened? I know I could do it by checking whether the last event that I received was "Closed Store" (略)

REST API の Webhook だと cancelled frozen で入ってくるかもしれない。

https://community.shopify.com/c/Shopify-APIs-SDKs/How-can-I-determine-if-a-shop-is-no-longer-available-via-API/td-p/365760

実際にどのような値が入ってくるかは要テスト。

Keisuke InabaKeisuke Inaba

Unavailable ShopClosed Store はおそらく plan_display_name の方。

plan_name の値はスネークケースで入ってくる。

Keisuke InabaKeisuke Inaba

Shopify アプリの管理画面で把握

手動での検知になるが、アプリの管理画面から CSV をエクスポートすることでも把握できる。

https://community.shopify.com/c/Shopify-APIs-SDKs/Description-Of-Shopify-Export-Shop-Plan-Column/td-p/546230

手元で確認したところ、直近のフォーマットでは Closed Store は「Shop plan: inactive」となっている。

おそらくこの「inactive」は「cancelled + frozen」なので注意が必要。

https://shopify.dev/tutorials/track-app-usage-metrics-with-partner-dashboard

Closed stores: The number of stores that have closed (the merchant is no longer an active Shopify customer) with your app installed at the time of closing. This number includes stores that are canceled or frozen.

Keisuke InabaKeisuke Inaba

【注意】frozen は re-open される可能性がある

ストアが完全に閉鎖された場合、アプリもアンインストール扱いでいいと思うが、frozen は一時的な停止(クレカ失効など)なので、再開される可能性を考慮しないといけない。

Keisuke InabaKeisuke Inaba

【注意】closed も re-open される可能性がある?

closed (cancelled?) の場合も再開される可能性があるかもしれない。

https://shopify.dev/tutorials/charging-for-your-app-with-rest-admin-api-faq#how-are-recurring-application-charges-affected-when-a-shop-becomes-dormant-frozen-or-closed

After a shop is closed, all apps become inactive and remain on the store, but all recurring application charges are removed. Partners must create new recurring application charges if the store re-opens.

Keisuke InabaKeisuke Inaba

所感

上記踏まえると、Closed Store は再開可能性があるっぽいので、アプリ的には「アンインストール」として扱わない方が良さそう。(完全に閉鎖されたことが確認できるのならそうしても良いが。)

なので Closed Store を考慮するとしても、Webhook で Shop のプラン名をウォッチし、KPI などの算定時にそれらを除外するぐらいで良いのではないかと思った。

このスクラップは2021/04/01にクローズされました