
サードパーティ製スクリプトはストアフロント全体を巻き込む ― fetch差し替えとタイマー暴走の切り分け
Shopifyストアに入れたアプリのスクリプトを境に、カート操作が固まる・決済ボタンが消える・アプリと無関係なはずの箇所まで壊れる。こうした「原因の見えない不具合」は、たいていサードパーティ製のフロントエンドバンドルが、ストアフロント全体の挙動を書き換えていることに起因する。この記事は、EC事業者と...

Shopifyストアに入れたアプリのスクリプトを境に、カート操作が固まる・決済ボタンが消える・アプリと無関係なはずの箇所まで壊れる。こうした「原因の見えない不具合」は、たいていサードパーティ製のフロントエンドバンドルが、ストアフロント全体の挙動を書き換えていることに起因する。この記事は、EC事業者と...

会員だけに購入を許可したいECは多い。福利厚生の社販、限定会員向け販売、資格保有者だけが買える商材など、要件はさまざまだが、共通するのは「非会員にチェックアウトを完了させたくない」という一点だ。ところがShopifyでこれを実装しようとすると、フロントエンドの制御だけでは購入を止めきれない経路が必ず...

概要Shopifyアプリは、ストアのデータ(注文・商品・顧客など)を勝手に見られるわけではありません。「あなたは誰か(認証)」と「何を見てよいか(認可)」の2つの関門を必ず通る必要があります。非エンジニア向けに言い換えると、次のようになります。 認証(Authentication) = 社員証のチ...

概要Webhook は、ストアで何かが起きたことを Shopify がアプリに知らせてくれる仕組みです。「注文が入った」「商品が更新された」「アプリがアンインストールされた」といった出来事を、アプリ側から定期的に問い合わせに行かなくても受け取れます。非エンジニア向けに言い換えると、「Shopifyか...

概要Shopify Functions は、Shopifyの裏側の処理そのものに自社のロジックを差し込める仕組みです。従来は「Shopifyが決めた計算ルール」を受け入れるしかなかった割引・配送・決済・在庫引当といった領域に、自分たちのビジネスルールを注入できます。重要なのは、これがShopifyの...

「みんなでまとめ買いして送料を安くしたい」「同僚と割り勘で買いたい」。共同購入や割り勘は、EC事業者から見れば魅力的な機能です。まとめ買いは客単価を上げ、招待の連鎖はネットワーク効果を生みます。しかしShopifyでこれを作ろうとすると、「1注文=1決済」というプラットフォームの構造と、メンバー間の...

Shopifyと外部システムをつなぐとき、「Webhookで連携する」と一言で片付けられがちですが、実務ではデータの流れる向きによって適切な方式が変わります。注文はWebhook、在庫はバッチ。これは怠慢な設計ではなく、それぞれの性質から導かれる合理的な使い分けです。そして受信側のWebhookには...

複数のストア向けにカスタムアプリを作り、それを自社のクラウド基盤でホスティングしていくと、必ず「テナント分離をどうするか」という論点が出てきます。ここで「アプリごとにLambdaもテーブルも別々に作っているから分離できている」と考えるのは、半分正しくて半分危険です。リソースが分かれていることと、越境...

Shopifyアプリを継続的に量産する仕組みを作ろうとすると、必ず「アプリの発行そのものを自動化できるのか」という壁にぶつかります。結論から言うと、アプリの作成・設定・拡張の配布まではコマンドラインから完全に自動化できますが、配布方式の選択とインストールリンクの生成はパートナーダッシュボードでの手動...

Shopifyの管理画面には、顧客に対して「アカウントを無効にする」「お客様情報を統合」「個人データを消去」「お客様情報を削除」という4つの操作があります。日本語のラベルだけを見ると似たような操作に見えますが、APIから顧客情報を取得したときの挙動はこの4つでまったく異なります。この違いを知らないま...
ShopifyのApp Proxyを使ってストアフロントからバックエンドへリクエストを送る構成では、ログイン済み顧客のIDが logged_in_customer_id として付与されます。ところがこの値は、ユーザーが明らかにログインしているにもかかわらず空になることがあります。当社ではこの事象に何...
産地直送、複数工房、複数倉庫。ひとつの注文の中に「発送元が異なる商品」が混ざるECは珍しくありません。Shopifyでこれを実現しようとすると、多くの案件でまず検討されるのがロケーション機能の活用です。当社でも第一候補として提案しますが、この方式には明確な適用限界があり、それを踏まえずに設計すると後...