mcpField
S
salla-app-functions

salla-app-functions

github.com/sallaapp開発281 回インストール2 週間前に更新
リポジトリ

salla-app-functions について

ストアイベントのハンドラーを実装する開発者向けに、Salla App Functions の構築手順を案内するスキルです。設計、ハンドラー作成、検証、リリース、テストをつなぎ、Webhook より関数が適する場面も説明します。

主な機能

  1. 01構築ステップ別スキルへの案内
  2. 02トリガーと同期・非同期動作の指針
  3. 03ハンドラー、サンドボックス、タイムアウトの説明
  4. 04検証・デプロイ・プレビューの手順
  5. 05公開・非公開アプリの公開手順

活用シーン

  1. 01Salla のストアイベントトリガーの選択
  2. 02操作の変更やブロックが可能な同期ハンドラーの構築
  3. 03デモストアでの関数プレビュー
  4. 04公開・非公開アプリ向け関数の公開

MCP 対応

Salla Partners MCP ツールで関数の一覧表示、取得、保存、削除、デプロイ、プレビューを行い、アプリの検証や公開をする方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sallaapp/salla-partners-agent-kit --skill salla-app-functions

インストール後、Claude Code で/salla-app-functionsを入力して読み込まれたか確認します。

詳細

Salla App Functions

サーバーレスハンドラーは、ストアのイベント発生時に Salla が自動的に実行します。ロジックを記述すると、Salla がサンドボックス化された V8 ランタイムで実行します。このスキルはルーターです。手順を順番に進め、それぞれ専用のスキルで作業し、次に進む前にすべてのゲートをクリアしてください。

ビルドの流れ — 各ステップのスキルに進む

ステップ実行する内容スキル
1トリガーを選び、payload.dataを確認し、同期処理か非同期処理かを決めるsalla-app-functions-design
2ハンドラーを記述する(テンプレート、コンテキスト、Resp、サンドボックス、タイムアウト)salla-app-functions-handler
3テンプレートラッパー(最初と最後の行)を保持し、ローカルで型チェックする(保存する前に)salla-app-functions-validate
4保存する(デモストアにデプロイされます)salla-app-functions-release
5salla_functions action=previewでデモストア上でテストする(戻り値を確認する)salla-app-functions-test
6本番環境向けに公開する(公開アプリ:app_publishで検証→パートナーがPortalで申請。プライベートアプリ:salla_private_apps action=publish)salla-app-functions-release

トリガーがある場合は、WebhookよりApp Functionを優先してください

  • 署名検証なしでも安全 — Salla のサンドボックスで実行されます。受信リクエストはなく、X-Salla-Signatureもありません。
  • 設定を認識 — マーチャントの設定はcontext.settingsに渡されるため、追加のフェッチは不要です。
  • 認証済み — Authorizationヘッダーなしで、ハンドラーから Salla Admin API を直接呼び出せます(トークンの保存や更新は不要です。トークンの処理は Salla が行います。ご自身で行う必要はありません→salla-app-auth)。実装の詳細はsalla-app-functions-handlerを参照してください。呼び出し自体(ベース URL、エンドポイント、スコープ、上限付きフェッチ、エラー形式)についてはsalla-api-coreを参照してください。
  • 同期型で処理を制御可能 — 同期アクション(例:shipment.creating)は操作の前に実行され、戻り値によって操作の形式を決めたり、ブロックしたりできます。Webhookは操作後に反応するだけです。

App Functionのトリガーがない場合、または処理をランタイムのタイムアウトや V8 アイソレートの制限内に収められない場合は、Webhook(salla-webhooks)を使用してください(npmは使用不可、fs/net/httpサーバー/child_processは使用不可、Web Cryptoのみ使用可能、HTTPにはfetchを使用)。着手する前に、salla-app-functions-handlerでこれらの制限を確認してください。

Salla Partners MCP を使って操作する

ツールアクション説明
salla_functionslist_triggers get save delete deploy_status previewトリガーを一覧表示します。template、types(.d.ts の URL)、保存済みの content を読み込みます。登録・更新、削除、デプロイの状態確認、デモストアでの実行を行います
app_publishopen set validate公開アプリ:公開内容を検証します(DRAFT として保存されます。パートナーが Portal で送信します)。これにより、実際のストアで関数を利用できるようになります
salla_private_appspublishプライベートアプリ:app_id と、パートナーの確認後に confirm: true を指定して公開し、指定したストアで関数を利用できるようにします

同期アクションの合計時間は最大 5 秒です(内部の非同期呼び出しはそれぞれ2 秒未満にしてください。加盟店が処理を待たされるため、ドキュメントでは500 ms 未満を推奨しています。これは目標値であり、上限ではありません)。非同期イベントの制限時間は30 秒です。Resp、エンティティビルダー(例:Shipment)、CommunicationEvent、すべての型付きコンテキストは、実行時に事前宣言されたグローバルです。スコープ内にあるので、そのまま使用してください。実行環境は Node ではなく、V8 isolateです。モジュールやレスポンスの詳細については、salla-app-functions-handlerをご覧ください。

ステップ 0 — 確認する(最初に質問する)

  1. どのトリガーで実行しますか?(例:order.created、shipment.creating)
  2. トリガーが実行されたとき、何を行いますか?(通知、同期、検証/ブロック、パラメーターの変更)
  3. 操作をブロックまたは変更しますか? それとも、発生後に反応するだけですか?

主なリソース

コメント