Shopify チェックアウト カスタマイズをWebMCPで実装する方法

Shopify チェックアウト カスタマイズをWebMCPで安全に実装する方法を解説。状態の読み取りと更新、Shop Payへの引き継ぎ、購入者の明示的な承認後に注文を確定する設計、対象外フロー、エラー別の復旧手順まで実務目線でまとめます。ブラウザエージェント開発者向けの実践ガイドです。

公開日

Shopify チェックアウト カスタマイズをWebMCPで実装する方法

ブラウザ上のショッピングエージェントは、押すべきボタンを推測することなく、Shopifyでの商品探しから対象となるチェックアウトまで購入者を案内できるようになりました。現在の注文内容を読み取り、対応するチェックアウト項目を置き換え、Shop Payや決済認証が必要になれば購入者へ操作を戻し、注文内容と合計金額への承認を得た後にだけ注文を確定できます。Shopifyがこのチェックアウト拡張機能をリリースしたのは2026年9月28日です。Shopify チェックアウト カスタマイズで注目すべきなのは、自律的に代金を使う仕組みではありません。購入の最終工程を、構造化された手順と同意のゲートで安全に進められるようになったことです。

Shopify チェックアウト カスタマイズを支えるCheckout WebMCPとは

Checkout WebMCPは、購入者が開いているチェックアウトタブ内に登録されるツール群です。店員のいるレジをイメージすると分かりやすいでしょう。エージェントはカートを運び、フォームを読み、対応項目へ入力できますが、本人確認や決済認証への対応と最終承認は購入者が行います。

これは、Shopifyが先に提供していたストアフロント向けツールの拡張です。対応するブラウザエージェントは、カタログ検索、商品の確認、カート更新を行い、proceed_to_checkoutを呼び出せます。対象のチェックアウトに入るとツール一覧が切り替わり、次の4つのチェックアウトツールが利用可能になります。

  • get_checkoutは、現在のチェックアウト、またはThank youページに表示された注文レシートを読み取ります。
  • update_checkoutは、注文を確定せずに、対応する連絡先、受取方法、割引、申告フィールド、決済状態を置き換えます。
  • complete_checkoutは、購入者の確認後に注文確定を試みるか、確認ステップを開きます。
  • navigate_to_storefrontは、ストアフロントがある場合に同じタブをストアへ戻します。

チェックアウトの実装には、UCPのチェックアウトオブジェクト、ステータス、メッセージが使われます。UCPは、このフローを支える共通のデータ契約です。WebMCPは、その契約をブラウザからエージェントへ公開する仕組みです。サーバー側で動くエージェントには、ShopifyのCheckout MCPを使います。

ツール検出から注文確定まで、Shopify WebMCPチェックアウトの5段階フローを示す建築模型
安全なフローは状態を引き継ぎます。検出、読み取り、更新、確認、確定の順に進みます。

加盟店が有効にする新しいスイッチも、別途導入するチェックアウトAPIもありません。加盟店にとっては導入しやすい一方、エージェント開発者の作業がなくなるわけではありません。ブラウザ対応、Web Bot Auth、慎重な状態管理、そして明確な同意の境界は依然として必要です。

まず対象となるチェックアウトか確認する

最初に確かめるべきなのはツールが検出できるかどうかです。ストアフロントでWebMCPが使えたからといって、ShopifyのチェックアウトでもCheckout WebMCPが公開されるとは限りません。

Shopifyは、次のケースではチェックアウトツールを登録しません。

  • 購入者がShop Payを使う場合を除く、標準の3ページ構成チェックアウト
  • B2Bチェックアウト
  • 埋め込みチェックアウト、またはモバイルチェックアウトSDKのフロー
  • 別のショップの商品を含むチェックアウト
  • 下書き注文、注文編集、決済の回収
  • チェックアウトUI拡張機能が提供する操作

こうしたフローでは、ページ上の操作を購入者に引き継ぎます。ブラウザ側にはcancel_checkoutツールもありません。ツールが見つからないからといって、ページのUIを直接操作してよいことにはなりません。

Shopifyによると、ストアフロントWebMCPは現在、Chromiumベースのブラウザでのエージェント対応を前提としています。テストには、対応ブラウザと自分で管理できるチェックアウトを使います。チェックアウトツールが表示されなくても、それは想定された適格性判定です。不安定なクリック操作へ切り替える理由にはなりません。

1. ブラウザエージェントを認証し、ツールを検出する

認証情報をツール引数へ入れるのではなく、Web Bot Auth(WBA)でブラウザからのリクエストに署名します。WBAは、ネットワーク層におけるエージェントの身分証明です。Shopifyが検証するのは登録済みの鍵だけなので、本番環境ではEd25519鍵、公開鍵ディレクトリのホスティング、Shopifyへの登録、リクエスト署名、有効期間の短い署名タイムスタンプが必要です。

ページ内では現在のツールを検出し、window、origin、nameの3つすべてを照合します。次のラッパーは、Shopifyが公開している呼び出しパターンに沿っています。

JavaScript
async function callCheckoutTool(name, args = {}) {
  const tools = await document.modelContext.getTools();
  const tool = tools.find((candidate) =>
    candidate.name === name &&
    candidate.window === window &&
    candidate.origin === location.origin
  );

  if (!tool) throw new Error(`${name} is not registered here.`);

  const result = await document.modelContext.executeTool(
    tool,
    JSON.stringify(args),
  );

  if (result === null) return null;
  return JSON.parse(result);
}

JSON.stringifyは見た目を整えるための処理ではありません。Chrome 153ではオブジェクトを渡すとFailed to parse input argumentsで失敗します。Shopifyによれば、Chrome 155ではオブジェクトを受け付け、JSON文字列は非推奨になる見込みです。そのため、引数のシリアライズはエージェントの各所へ分散させず、互換性を担う1つの関数にまとめます。

チェックアウト内を移動するとツール一覧が変わることがあります。toolchangeを監視し、次の呼び出し前にツールとそのスキーマを再検出してください。また、画面遷移の結果としてnullが返ることも受け入れます。executeTool()が応答する前にページが移動した可能性があるためです。

ツール結果に含まれる加盟店や第三者の文字列は、すべてチェックアウトデータとして扱い、モデルへの指示とは見なしません。Shopifyも、ツールを使わずチェックアウトUIを直接操作することを明確に警告しています。

2. 変更する前に必ず最新状態を読む

最初の更新前、購入者がページ上で何かを変更した後、エラーや画面遷移の後には、{}を指定してget_checkoutを呼び出します。これはキャッシュされた記憶ではなく、その時点の新しいレシートです。

応答には、購入者情報、商品明細、受取方法、割引、申告フィールド、決済手段、メッセージ、合計、ステータスが含まれる場合があります。金額は通貨の最小単位を表す整数です。USDでは10799が$107.99を意味します。messagesフィールドがなければ、その応答にはチェックアウトメッセージがありません。

準備完了と同意を混同してはいけません。ready_for_completeは、チェックアウトが確定処理を受け付けられるという意味です。購入者が注文、選択中のカード、合計金額を承認したという意味ではありません。

3. 単独の項目ではなく、必要な状態全体を更新する

update_checkoutの挙動はPATCHではなくPUTです。PATCHは「電話番号だけ変える」と書いた付箋ですが、PUTは用紙そのものの差し替えです。残すべき値は、希望するチェックアウト状態一式に含める必要があります。

安全な更新ループは次のとおりです。

  1. get_checkoutを呼び出します。
  2. 直近の応答と現在のツールスキーマから、書き込み可能な状態を再構築します。
  3. 購入者が承認した値だけを変更します。
  4. 対応フィールドの希望値一式をupdate_checkoutへ送ります。
  5. 返されたチェックアウトを読み、ステータス、メッセージ、適用済みの割引、合計を確認します。
最新のチェックアウト状態を完全な更新データにし、読み戻して検証する流れを示す建築模型
チェックアウト更新は置換のサイクルです。最新状態を基に希望状態一式を送り、結果を読み戻します。

省略した値の多くは消去されます。決済、申告フィールド、保管済みの連絡先情報にはそれぞれ固有のルールがあります。そのため、現在のスキーマが受け付けるフィールドだけに絞り込まず、汎用的なオブジェクト展開を使うのは危険です。

特に問題になりやすい点は明確です。

  • buyerはメールアドレスとE.164形式の電話番号を受け付けます。保管済みの値にはロックされたままのものがあるため、返された内容を確認し、ロック中の値は購入者にページ上で編集してもらいます。
  • fulfillment.methodsで指定できる方法は最大1つです。現在の配送先、グループ、オプションのIDを再利用します。配送先やオプションを選ぶ呼び出しと同時に、受取方法の種類や店頭受取の検索起点を変更してはいけません。
  • discounts.codesには、保持したい購入者入力のコードをすべて含めます。空の配列を渡すと削除されますが、自動割引は残ります。コードが応答に含まれていても、適用された証拠にはなりません。discounts.appliedとメッセージを確認してください。
  • declared_fieldsには、納税者番号やストアクレジットなど、チェックアウト固有の値を入れられます。未知のキー、誤った型、無効な値は拒否されます。
  • payment.instrumentsが受け付ける対応エントリは最大1つです。Checkout WebMCPで新しいカード番号を収集することはできません。

Shop Payには、さらに注意が必要です。サインイン済みの購入者は、get_checkoutから返された保存済みカードを選べます。ゲストフローでは、チェックアウト側が受け付ける場合、既存のShop Pay承認IDを利用できます。エージェントがその承認を適用した後、次の更新で決済情報を省略すると認証情報が破棄されます。注文が確定するまで、更新のたびに承認エントリを再送してください。

更新自体は成功しても、チェックアウトがincompleteのままになることがあります。30秒を超えて実行された更新は、一部の変更が反映されていてもupdate_failedを返す場合があります。どちらの場合も、次の判断をする前に最新状態を読み直します。

フィクスチャ検証: このガイド用のローカル契約フィクスチャは、JSON文字列の引数、省略フィールドの消失、完全な状態の維持、画面遷移時のnull、toolchange、checkout_busy、completion_failed、終端となるcompleted状態の8ケースに合格しました。これは応答処理のテストであり、Shopifyの実決済が行われた証拠ではありません。

4. 注文確定のゲートは購入者に任せる

正しい確定手順は、短く厳密です。

  1. 最新のチェックアウトを取得します。
  2. 現在の商品、決済方法、合計金額を購入者に提示します。
  3. その内容と合計金額で注文してよいか、明示的な許可を求めます。
  4. 何かが変わった場合は新しい状態を提示し、改めて許可を求めます。
  5. 承認後に限りcomplete_checkoutを呼び出します。
  6. 購入成立の証拠として認めるのはstatus: completedだけです。

WBAが証明するのは、どのエージェントがリクエストを送ったかです。Shop Payの承認が認可するのは決済手段です。ready_for_completeが表すのはチェックアウトの状態です。どれも、購入者本人の購入許可ではありません。

注文確定には分岐があります。確認ステップが設定されている場合は購入者へ操作が戻ります。購入者が内容を確認して送信を承認した後に限り、complete_checkoutを再度呼び出します。決済認証は別です。購入者が同じタブで認証を終えたら、エージェントは再送信してはいけません。チェックアウトがcompletedになるか、エージェントの入力が必要になるまでget_checkoutをポーリングします。

送信前の購入者確認と、状態ポーリングへ戻る引き継ぎ分岐を示す建築模型の状態遷移図
購入者の操作はエラーではなくゲートです。操作を引き継いだ後、むやみに再送信せず状態をポーリングします。

エラーコードによって、取るべき復旧ルートが決まります。

次の対応エラーコード実施内容
リクエストを修正invalid_request, rejected再度呼び出す前に、スキーマ、キー、型、未対応の値を修正します。
状態を更新completion_failed, internal_error, update_failedツールを再検出し、get_checkoutを呼び、現在状態と意図したリクエストを比較します。
待機または引き継ぎbuyer_action_required, checkout_busy, completion_in_progress購入者または進行中の処理が終わるのを待ち、状態を読みます。
画面遷移に対応navigation_failed購入者をチェックアウトに留め、ストアフロントへの移動が始まらなかったことを伝えます。

最も危険なのは、最初の応答が不明確だったという理由で確定処理をもう一度試すことです。Checkout WebMCPには冪等性キーがありません。まず状態を読み、completedなら停止します。

実用性で選ぶ7つのユースケース

いずれも、エージェントがすでに購入者のブラウザ内で動いている場合に最も力を発揮します。サーバー上で人知れず動く加盟店向け自動化ではありません。

順位利用者具体的な流れ導入価値
1個人用ショッピングエージェントを使う、Shop Payのリピーター1つのストアを検索し、カートを作り、対象のチェックアウトへ進み、返された保存済みの住所とカードを選び、最終注文を表示して、承認後に送信します。購入判断を見える状態に保ちながら、繰り返しのフォーム入力を減らせます。
2アクセシビリティ支援を利用する買い物客支援ツールが構造化されたチェックアウト状態を読み、購入者から受け取った連絡先と配送方法を反映し、ページ上でしか行えない認証は本人へ引き継ぎます。変化するUIを目視で探す負担を、構造化ツールによって軽減できます。
3店頭受取を手配する買い物客エージェントが店頭受取へ切り替え、国と郵便番号で検索し、返された店舗を読み上げたうえで、後続の更新で1店舗を選びます。手間のかかる店舗検索を、2段階の分かりやすい選択に変えられます。
4配送オプションを慎重に比較したい購入者選んだ商品をチェックアウトまで運び、配送グループと合計を読み、確定を試みる前に購入者が選択肢を比較できるようにします。価格と配送時期が最も重要になる場面で、情報を一貫した形にまとめられます。
5割引を重視する買い物客現在のチェックアウト状態を維持し、購入者のコード一式またはストアクレジットの選択を適用した後、discounts.appliedと新しい合計を確認します。表示されたコードを、実際に適用された割引と誤認するのを防げます。
6納税者番号の入力を求めるチェックアウトを使う買い物客エージェントが申告フィールドの記述を読み、購入者から受け取った値を必要な型で送信し、検証メッセージを表示します。存在しないフィールドや形式をでっち上げず、不足している要件を説明できます。
7進行中のチェックアウトエラーから復旧する購入者エージェントがコードを分類し、ツールと状態を更新してから、リクエストの修正、待機、購入者への引き継ぎのいずれかを行います。二重送信を避け、明確な復旧経路を保てます。

最も有力なのは1つ目のユースケースです。リピーターにはすでに保存済みの情報があり、WebMCPなら、利便性を同意と取り違えることなく繰り返し入力を減らせます。

ビジネスとして成立するか、数字から考える

Shopifyでは、このチェックアウトツールを使うために加盟店側で新たな設定をする必要はありません。ただし、その周辺で動くショッピングエージェントを無料で構築できるわけではありません。モデル、ブラウザへの配布、WBAの運用、テスト、プライバシー管理、サポートは依然として必要です。

加盟店が導入するAIショッピングアシスタントの料金には、現在かなりの幅があります。Shopify App Storeの公式掲載情報では、Easy AI Shopping Assistantに月額$9.99のプラン、Cartiに$49〜$249のプラン、iAdvizeに月額$290〜$1,330のプランがあります。これらはストアフロントのチャット、レコメンド、分析、サポートなどを組み合わせた製品であり、購入者側のWebMCPエージェントを直接置き換えるものではありません。

予算面での変化は、もっと限定的で実用的です。ブラウザエージェントの開発チームは、ストアごとのチェックアウトセレクターを保守する工数を減らし、状態の整合性、同意、例外処理に力を注げます。プラットフォーム全体の位置付けは、Shopifyレビューで加盟店側の製品特性と運用上のトレードオフを解説しています。

実際に作る価値がある2つのプロダクト

1. Checkout WebMCPのQA・同意テストツール

最も有望なのはこちらです。Shopify支援会社やショッピングエージェントの開発チームは、注文を任せる前に、そのチェックアウトが対象か、エージェントが安全に動作するかを把握する必要があります。

このニーズに最も近い実測検索語shopify checkout customizationは、米国で月間170回検索され、前年比89%増、CPCは$10.92です。この検索語はWebMCPテストより広い概念ですが、チェックアウトの挙動と実装への需要が存在することを示しています。

販売できる最小構成は、テスト用チェックアウトを開き、originとwindowごとにツールを記録し、JSON文字列引数を検証し、toolchangeを検出し、最新状態に基づく更新をテストし、画面遷移時のnullと公開済みエラーコードを再現し、機密情報を伏せた同意レポートを出力するChromiumランナーです。実際の決済確定は手動テストモードに限定します。

課題はカバレッジです。ツールの利用可否はチェックアウトの種類とブラウザ対応状況に左右され、Chromeの引数形式は移行中で、フィクスチャだけでは実際の決済引き継ぎを証明できません。万能な自動化をうたうのではなく、こうした制約を見える化することで価値が生まれます。

2. 購入者向けShopifyショッピングアシスタント

ブラウザ拡張機能なら、再利用できる確認画面と保存済み決済情報の厳格な扱いを組み合わせ、Shopifyストアでの商品検索から対象のチェックアウトまで購入者を案内できます。

shopify ai shopping assistantは、米国で月間30回検索され、商用意図があり、CPCは$19.43です。加盟店向け競合製品には月額$9.99〜$1,330のプランがあります。この製品は購入者側で動きますが、ガイド付きショッピングソフトウェアにすでに対価が支払われていることは分かります。

MVPには、ストアフロントの商品検索・カートツール、チェックアウト検出、WBA、読み取り・更新・再読み取りのループ、購入者が管理できる注文概要、決済認証の引き継ぎが必要です。まずは単一ストアの注文と、保存済みのShop Payを使うフローに絞ります。

課題は配布です。加盟店がCheckout WebMCPを有効化する必要はありませんが、購入者には対応するブラウザエージェントが必要です。B2B、埋め込み、モバイルSDK、複数ストアをまたぐ注文、Shop Payを使わない通常の3ページ構成チェックアウトは対象外です。

制約こそがプロダクトの境界線になる

Checkout WebMCPは、対象となるブラウザチェックアウトのための、より安全なインターフェースです。あらゆる購入に使える汎用APIではありません。

チェックアウト中の商品追加・削除、新しいカード番号の収集、チェックアウトのキャンセル、アプリ定義の拡張UI操作、対象外のチェックアウトにツールを強制登録することはできません。Shop Payへのログイン、3D Secure、確認ステップなど、購入者本人が行う操作もなくなりません。また、加盟店が表示する文字列をモデルへの信頼できる指示に変えるものでもありません。

設計原則はシンプルです。ツールが登録されている間はツールを使い、最新状態を唯一の正しい情報源とし、契約上購入者の操作が必要になった時点でページを本人へ戻します。

月曜日にまずやること

月曜日には、コードベースの各所へ呼び出しを直書きするのではなく、エージェントへチェックアウト用ラッパーを1つ追加してください。シリアライズ、ツール照合、toolchange、画面遷移時のnull、エラー分類、最新状態の読み取りをそこへ集約します。ローカルフィクスチャの8ケースを実行してから、自分で管理する対象チェックアウトでdocument.modelContext.getTools()の結果を列挙します。最新状態から構築した更新を1回試します。明示的な確認を得た後に限り、対応するテスト注文を確定してください。安全なテスト注文を自分で用意できない場合はready_for_completeで止め、確定処理はソースで確認済みではあるものの、自らは未検証として扱います。

Shopifyのチェックアウトページはどう使いますか?

ブラウザエージェントの場合は、ストアフロントからproceed_to_checkoutを呼び、画面遷移後にツールを再検出し、get_checkoutを呼び出します。対応する希望状態一式をupdate_checkoutで送り、現在の注文と合計を表示して購入者の承認を得た後に限り、complete_checkoutを呼びます。チェックアウトツールがなければ、ページ操作を購入者へ引き継ぎます。

ShopifyはMCPに対応していますか?

はい。Shopifyは、ストアフロントと対象のチェックアウト向けにブラウザ登録型のWebMCPツールを提供しています。また、サーバー上で動くエージェント向けにはサーバー側MCPツールもあります。エージェントの実行場所に合う方式を選びます。

Shopify Checkout MCPとは何ですか?

Shopifyのチェックアウトには、関連する2つの方式があります。Checkout WebMCPは購入者のブラウザタブで動き、Checkout MCPはサーバー側で使う方式です。どちらも同じUCPチェックアウトオブジェクト、ステータス、メッセージを使います。

Shopify UCPとは何ですか?

UCPは、チェックアウトの状態、ステータス、メッセージ、受取方法、割引、決済データに使われる共通のコマース契約です。Checkout WebMCPは、この契約をサーバー側のJSON-RPCではなくブラウザツールとして公開します。

Shopify WebMCPは埋め込みチェックアウトに対応していますか?

いいえ。Shopifyでは、埋め込みチェックアウトとモバイルチェックアウトSDKのフローはCheckout WebMCPの対象外です。購入者はページ上で手続きを完了する必要があります。

同意を尊重するコマースエージェントを自社向けに構築したい方は、AIエージェント開発サービスをご覧ください。

公開日
カテゴリー
Build
Cursor VSCode比較:料金・AI機能と乗り換えの判断基準【2026年】

Cursor VSCode比較:料金・AI機能と乗り換えの判断基準【2026年】

CursorとVSCodeの違いを、Tab補完、AIエージェント、Copilot、拡張機能、料金、プライバシーから比較します。Claude CodeやCodexを今の環境で使う選択肢も整理。移行前に確かめたい互換性と設定、試すべき作業を押さえ、乗り換えが自分の開発に見合うか判断できます。2026年10月18日Build
n8nレビュー:料金・使い方と、導入前に知るべき運用の条件

n8nレビュー:料金・使い方と、導入前に知るべき運用の条件

n8nとは何ができる自動化ツールなのか。料金と使い方、Cloudとセルフホストの選び方、無料版の共同作業の制約を解説します。AIエージェントの権限管理や障害時の復旧まで、導入前に確認したい条件を整理。Zapier・Makeとの違いも踏まえ、技術担当者がいる企業に向く理由と、別の選択肢が適する場面を検討します。2026年10月18日Build
Railway 料金比較:Renderとの違いと選び方【2026年版】

Railway 料金比較:Renderとの違いと選び方【2026年版】

RailwayとRenderの料金を、Webアプリ・ワーカー・Postgresを動かす同じ条件で比較します。月額$15.11と$20の試算に加え、無料枠、データベースの復旧、cron、スケーリング、移行時の制約を解説。安さだけでは見えない運用の違いと、個人開発や小規模チームに合う選び方を整理します。2026年10月18日Build
Pydantic AIとは?Python向けAIエージェントフレームワークの使い方

Pydantic AIとは?Python向けAIエージェントフレームワークの使い方

Pydantic AIは、型付きツールと検証済みの構造化出力を扱うPython向けAIエージェントフレームワークです。問い合わせ分類の実装例を通じて、依存性注入、モデルの切り替え、MCP、永続実行、評価の役割を解説。LangGraphやLangChain、APIの直接呼び出しとの使い分けも整理します。2026年10月17日Build
AIガードレールの設計と実装:チェック箇所・主要ツール・最小構成

AIガードレールの設計と実装:チェック箇所・主要ツール・最小構成

AIガードレールを、入力・取得データ・モデルの提案・ツール実行・出力の5つの境界で整理。返金リクエストを例に、コンテンツフィルターと権限確認、人による承認の違いを解説します。主要ツールの対応範囲と制約、小規模チームが始める6つの制御、Promptfooで確かめるテストケースまで、実装の判断に必要な要点をまとめます。2026年10月17日Build
ハルシネーションとは?LLMが誤る原因と誤回答を減らす実装

ハルシネーションとは?LLMが誤る原因と誤回答を減らす実装

LLMのハルシネーションは、架空の事実だけでなく、誤った数値や引用、ツール引数にも現れます。原因と実例を整理し、RAGによる根拠の取得、引用や値の検証、根拠が足りない場合の回答保留、Pythonの検証コード、評価テストまで解説。顧客への誤回答や誤操作を減らすために、小規模チームが取り組める実装手順を紹介します。2026年10月17日Build
システムプロンプトとは?役割・書き方・具体例と実用テンプレート

システムプロンプトとは?役割・書き方・具体例と実用テンプレート

システムプロンプトとは何か、ユーザープロンプトとどう使い分けるのかを解説します。Anthropic・OpenAI・Googleの指定方法や、役割・ルール・出力・ツール利用の書き方を整理。改善前後の例とコピーして使えるテンプレートに加え、権限制御の限界、会話を続ける際の注意点、運用で確認すべきケースも紹介します。2026年10月17日Build
function callingとは?LLMと外部ツールをつなぐ仕組みと実装

function callingとは?LLMと外部ツールをつなぐ仕組みと実装

function callingは、LLMの依頼をアプリケーションが検証・実行する仕組みです。注文状況の照会を題材に、ツール定義から結果の返却までをPythonで解説。OpenAI・Anthropic・Geminiの形式の違い、引数の検証とアクセス制御、構造化出力やMCPとの使い分けまで整理します。2026年10月17日Build
ニュースレター

毎週日曜、一通の手紙。動くシステムの話。感想戦ではなく。

週刊。スパムなし。いつでも解除できます。