salla-app-functions-test について
公開前に、インストール済みのデモストアで保存済みの Salla App Functions をテストするスキルです。デプロイ確認、実際のフォーム入力、プレビュー実行、応答の確認を案内します。
主な機能
- 01テスト前のデプロイ状態確認
- 02トリガーに必要なフォーム項目の確認
- 03デモストアでのサーバー側実行
- 04応答、ログ、実行時間、エラーの確認
- 05成功、境界、失敗ケースのテスト
活用シーン
- 01公開前の関数検証
- 02実際のデモストアデータでの動作確認
- 03項目不足やデプロイ問題の調査
MCP 対応
`salla_functions` や `salla_apps` などの Salla Partners MCP ツールを使い、デプロイ確認、デモストア検索、プレビュー実行を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sallaapp/ salla-partners-agent-kit --skill salla-app-functions-testインストール後、Claude Code で/salla-app-functions-testを入力して読み込まれたか確認します。
詳細
App Functions — デモストアでテストする(プレビュー)
salla_functions action=preview で保存済みの関数を実行します。デモストアに対してサーバー側で関数を実行し、レスポンスを返します。公開前に動作を確認するため、save の後に使用してください。Portal は不要です。
save と deploy_status も preview URL を返しますが、無視してください。認証が必要で、クライアントからは呼び出せません。関数を実行するには action=preview を使用してください。このアクションには、URL に必要な認証情報が含まれています。
1. デプロイ完了を待つ
save はデプロイ job を返します。デプロイが完了するまでは、関数を実行できません。
salla_functions action=deploy_statusにjob(action=saveが返す値)を渡してポーリングします。statusがCOMPLETEDなら準備完了です。FAILEDの場合は、failure_reasonを確認して修正してください。- または、
salla_functions action=previewを呼び出してください。準備ができるまでは「still deploying … retry in ~30s」が返されます。
2. フォーム入力値を収集する(実際の ID)
preview にはトリガーのフォームフィールド(関数の form)が必要です。order_id/shipment_id などを推測せず、実行前に salla_functions で正確なフィールド名を確認してください。入力値は次の 2 種類です。
store_id(常に必須)— インストール済みのデモストアです。salla_apps action=demo_storesで一覧を取得し、connectedのストアを選択してください。- リソース ID(
order_id、shipment_idなど)— プレビューでは実データに対して関数が実行されるため、実在するレコードである必要があります。そのストアのアクセストークンを使って、Salla Admin API 経由で取得または作成してください(salla-api-core を参照)。
トークンの取り扱いについては salla-app-auth を参照してください(トークンは app.store.authorize webhook 経由で届きます。アプリには、取得するリソースに対応するスコープが必要です。必要なスコープのみをリクエストしてください)。Webhook の署名検証と冪等性については salla-webhooks を参照してください。そちらを利用し、ここでロジックを重複させないでください。
シークレット/PII の取り扱い: ストアのアクセストークンは有効な加盟店の認証情報です。メモリ内で保持し、そのトークンが属するデモストアに用途を限定してください。合成データを使うデモストアを使用し、テストで変更した設定はその後元に戻してください。
3. 実行する
例です。以下のプレースホルダーを実際の ID に置き換えてください。
salla_functions action=preview
app_id = 2133776579
trigger = shipment.created
store_id = 660806774
payload = { shipment_id: 12312 } # the form fields, minus store_id
ツールは関数をサーバー側で実行し、そのレスポンスをそのまま(http_status + response)返します。success:false/Resp.error() は実際の関数の実行結果であり、ツールの失敗ではありません。内容を確認してください。
これは Portal のSave and Previewパネルと同様の動作です(テスト)。返された response で、実行ステータス(成功/失敗)、レスポンスデータ、実行時間、console.log() の出力、エラーを確認してください。正常系、エッジケース(null/空のフィールド)、エラーケース(API の失敗、タイムアウト)など、複数のシナリオをテストしてください。公開するまでは、変更はサンドボックス内にとどまります。
エラー
- "still deploying or failed to deploy" → 約 30 秒待つか、
deploy_statusを確認してください。 - "Missing required form field(s)" → 実際の ID を
payloadに追加してください。 - "store_id is required" →
salla_apps demo_storesからconnectedのデモストアを渡してください。 - アプリがストアにインストールされていない/無効になっている → まずデモストアにインストール/有効化してください(
salla_apps demo_storesからconnectedのストアを選択します)。 - リソース ID の取得時に 401/403 が発生する → トークンまたはスコープに問題があります。トークンについては salla-app-auth を参照し、そのリソースに対応するスコープをアプリが持っていることを確認してください。
確認事項:「デモストアでプレビューを実行し、期待どおりのレスポンスが返されましたか?」→ salla-app-functions-release で公開してください。