Forest Book

ニュースの記事一覧

↑ Load previous
サードパーティ製スクリプトはストアフロント全体を巻き込む ― fetch差し替えとタイマー暴走の切り分け
森本 竜治

サードパーティ製スクリプトはストアフロント全体を巻き込む ― fetch差し替えとタイマー暴走の切り分け

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

続きを読む →
Shopifyで会員限定販売の「認証漏れ」は完全には塞げない ― フロント制御の限界と注文Webhookによる事後検証
森本 竜治

Shopifyで会員限定販売の「認証漏れ」は完全には塞げない ― フロント制御の限界と注文Webhookによる事後検証

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

続きを読む →
認証とアクセススコープのできること・できないこと(OAuth・Token Exchange・セッショントークン)
森本 竜治

認証とアクセススコープのできること・できないこと(OAuth・Token Exchange・セッショントークン)

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

続きを読む →
Webhooks と Events のできること・できないこと(配信保証と受信側の制約)
森本 竜治

Webhooks と Events のできること・できないこと(配信保証と受信側の制約)

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

続きを読む →
Shopify Functions のできること・できないこと(実行制約とプラン条件)
森本 竜治

Shopify Functions のできること・できないこと(実行制約とプラン条件)

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

続きを読む →
複数人で1つの買い物を分担する機能は、決済の壁にぶつかる ― Shopifyにおける共同購入・割り勘の設計
森本 竜治

複数人で1つの買い物を分担する機能は、決済の壁にぶつかる ― Shopifyにおける共同購入・割り勘の設計

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

続きを読む →
Shopify連携は「向き」で設計が変わる ― Webhook受信の鉄則と、在庫をバッチで同期する理由
森本 竜治

Shopify連携は「向き」で設計が変わる ― Webhook受信の鉄則と、在庫をバッチで同期する理由

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

続きを読む →
リソースを分けただけでは分離にならない ― マルチテナントShopifyアプリのIAM設計とアカウント分離
森本 竜治

リソースを分けただけでは分離にならない ― マルチテナントShopifyアプリのIAM設計とアカウント分離

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

続きを読む →
Shopifyアプリの発行はどこまで自動化できるか ― Partner APIの限界とCLIの守備範囲
森本 竜治

Shopifyアプリの発行はどこまで自動化できるか ― Partner APIの限界とCLIの守備範囲

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

続きを読む →
Shopifyの顧客データには4通りの「消し方」がある ― APIから見た挙動の違いと連携アプリの設計
森本 竜治

Shopifyの顧客データには4通りの「消し方」がある ― APIから見た挙動の違いと連携アプリの設計

Shopifyの管理画面には、顧客に対して「アカウントを無効にする」「お客様情報を統合」「個人データを消去」「お客様情報を削除」という4つの操作があります。日本語のラベルだけを見ると似たような操作に見えますが、APIから顧客情報を取得したときの挙動はこの4つでまったく異なります。この違いを知らないま...

続きを読む →
森本 竜治

App Proxyの logged_in_customer_id は空になり得る ― Shopifyストアフロント認証の切り分けとフォールバック設計

ShopifyのApp Proxyを使ってストアフロントからバックエンドへリクエストを送る構成では、ログイン済み顧客のIDが logged_in_customer_id として付与されます。ところがこの値は、ユーザーが明らかにログインしているにもかかわらず空になることがあります。当社ではこの事象に何...

続きを読む →
森本 竜治

発送元が複数あるECをShopifyでどう組むか ― ロケーション分割の限界と混合注文の設計

産地直送、複数工房、複数倉庫。ひとつの注文の中に「発送元が異なる商品」が混ざるECは珍しくありません。Shopifyでこれを実現しようとすると、多くの案件でまず検討されるのがロケーション機能の活用です。当社でも第一候補として提案しますが、この方式には明確な適用限界があり、それを踏まえずに設計すると後...

続きを読む →
Load more ↓