新型コロナウイルスに関係する内容の可能性がある記事です。
新型コロナウイルス感染症については、必ず1次情報として 厚生労働省 首相官邸 のウェブサイトなど公的機関で発表されている発生状況やQ&A、相談窓口の情報もご確認ください。※非常時のため、すべての関連記事に本注意書きを一時的に出しています。
見出し画像

Shopify APIとGoogle Cloud Functionsの連携 - 定休日のテーマに自動切り替え

実家が新木場で新木場食堂「丸惣」を営んでいますが、新型コロナの影響で、店舗営業を自粛することになり、丸惣デリバリーを始めることになりました。その際に、Shopifyを利用してデリバリーサイトの立ち上げをサポートしました。

Shopifyは基本的に物販向けであるため、飲食店のデリバリーに利用しようとすると幾つかカスタマイズしたくなる部分があります。

そんな場合でも、ShopifyはAPIを公開してくれているので、割と自由にカスタマイズ可能です。

本記事では、Shopify APIとGoogle Cloud Functionsを連携して、定休日になった際に、定休日用のテーマに自動切り替えする手順を紹介します。Shopifyの管理画面から毎回手動でテーマ切り替えしても良いのですが、定休日になったタイミングで毎回画面操作するのは面倒ですので、自動化します。

Shopifyプライベートアプリの作成

まずは、Shopifyのプライベートアプリを作成します。

管理画面トップ → 「アプリ管理」 → 「プライベートアプリを管理する」 → 「新しいプライベートアプリを作成する」

スクリーンショット 2020-04-25 13.26.55

「プライベートアプリ名」、「緊急連絡用開発者メール」は適当に入力してください。Admin APIについては、今回はテーマ切り替えを行いますので、「Theme templates and theme assets」に「読み取りおよび書き込み」権限を付与します。WebhookのAPIのバージョンは最新を選択します。

作成するとAPIキーとパスワードが発行されます。

スクリーンショット 2020-04-25 13.30.50

Google Cloud Functionsの作成

GCPのメニューから「Cloud Functions」を選択し、「関数を作成」します。

スクリーンショット 2020-04-25 13.41.33

名前は適当に入力します。割り当てメモリは最小の128MBで充分です。定休日はスケジューリングで自動切り替えするので、トリガーは「Cloud Pub/Sub」を選択し、Cloud Pub/Subトピックを新規作成します。

今回ランタイムはPython3.7を選択しました。

Requirements.txtにはShopifyAPIを追加します。

# Function dependencies, for example:
# package>=version
ShopifyAPI

Main.pyには、下記の通りです。API_KEY、PASSWORD、shop_urlについてはShopifyのプライベートアプリにあるAdmin PAIの内容を記載してください。

import base64
import shopify
def send(event, context):
   API_KEY = "[APIキー]"
   PASSWORD = "[パスワード]"
   shop_url = "https://%s:%s@[myshopifyのホスト名]/admin" % (API_KEY, PASSWORD)
   shopify.ShopifyResource.set_site(shop_url)
   theme = shopify.Theme.find([テーマID])
   theme.role = "main"
   theme.save()

テーマIDは切り替えたいテーマID(数字11桁)を記載してください。テーマIDについては、テーマ編集時のURLに含まれているものです。もしくは下記URLを叩くと確認できます。

https://[APIキー]:[パスワード]@[myshopifyのホスト名]/admin/api/2020-04/themes.json

Cloud Schedulerの設定

GCPのメニューから「Cloud Scheduler」を選択し、「ジョブを作成」します。

スクリーンショット 2020-04-25 14.03.10

名前は適当に入力します。頻度はcron形式で入力できますので、柔軟にスケジューリングできます。ターゲットは「Pub/Sub」を選択し、トピックはCloud Functions作成時に作成したトピックを指定します。ペイロードは今回は任意の文字列で結構です。

以上で任意の時間にShopifyのテーマが定休日のテーマに切り替わる仕組みができました。

他にも日にちが変わったら在庫を自動補充する等もできますので、デリバリーでも手のかからないサイト運用ができますね。

↓これが丸惣デリバリーのサイトです。豊洲、辰巳、潮見、東雲、新木場周辺の方は是非ご利用ください。


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
3
sharaq代表。データ分析を活用したITシステムを作っています。最近は飲食店にも携わっています。sharaqはIT導入補助金2020の支援事業者(ITツール:Shopify)に認定されています。 https://www.sharaq.co/
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。