mcpField
M
merchandising-rules

merchandising-rules

github.com/finsilabsマーケティング・グロース6081 回インストール6 日前に更新
リポジトリ

merchandising-rules について

Eコマースチーム向けに、商品ランキングと検索表示を管理するマーチャンダイジングルールのスキルです。標準機能、アプリ、独自ロジックを使った手動ピン留め、自動順位付け、検索ブースト、ルール評価を扱います。

主な機能

  1. 01コレクションの商品順を設定
  2. 02条件に基づく自動コレクション作成
  3. 03商品のピン留めと順位引き下げ
  4. 04販売数や成約率による順位付け
  5. 05検索ブーストとフィルターの設定

活用シーン

  1. 01主力商品や新商品を目立たせる
  2. 02在庫切れ商品の順位を下げる
  3. 03季節キャンペーンの期間限定ルール
  4. 04検索結果の商品順を調整

インストール

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

$npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill merchandising-rules

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

tile.json
evals/collection-ranking-pipeline/
criteria.json
task.md
evals/product-scoring-engine/
criteria.json
task.md
evals/search-boosting-admin-audit/
criteria.json
task.md

詳細

マーチャンダイジングルール

概要

マーチャンダイジングルールは、コレクションや検索結果に表示される商品の順序を制御します。目的は、在庫があり、人気が高く、利益率の高い商品など、購入につながる可能性の高い商品を目立たせることです。同時に、マーチャンダイザーが主力商品を手動でピン留めしたり、在庫切れの商品を非表示にしたり、季節限定コレクションを上位に表示したりできるようにします。主要なプラットフォームには並べ替えオプションが組み込まれており、Searchpie、Intelligems、SearchPie などのアプリでは、パフォーマンスに基づく自動ランキング機能を追加できます。

このスキルを使用する場面

  • コレクションページやカテゴリーページの商品ランキングロジックを構築するとき
  • 商品属性、タグ、パフォーマンスに基づく自動(スマート)コレクションを作成するとき
  • マーチャンダイジングを制御するために、検索結果の上位表示や下位表示を実装するとき
  • コレクションページにピン留め(手動配置)やスロットベースのマーチャンダイジングを追加するとき
  • さまざまな商品ランキング戦略の売上への影響を測定するとき

基本手順

ステップ 1:プラットフォームを特定し、適切なマーチャンダイジングツールを選ぶ
プラットフォーム推奨ツール理由
ShopifyShopify の組み込みコレクション並べ替え機能 + Kimonix または SearchPieShopify には並べ替えオプションが組み込まれており、Kimonix と SearchPie では、手動での上書きにも対応するパフォーマンスベースの自動並べ替えを追加できます
WooCommerceWooCommerce のデフォルト並べ替え機能 + YITH WooCommerce Catalog Mode または WooCommerce Product TableWooCommerce は基本的な並べ替えに対応しており、YITH などのプラグインで高度なカタログ制御を追加できます
BigCommerce組み込みのコレクション並べ替え機能 + SearchPie または Boost CommerceBigCommerce には強力な組み込みカテゴリー並べ替え機能があり、Boost Commerce では高度な検索マーチャンダイジングを追加できます
カスタム/ヘッドレスAlgolia または Elasticsearch によるマーチャンダイジングルールレイヤーAlgolia にはダッシュボードに「Rules」と「Pinning」機能が組み込まれており、Elasticsearch ではカスタムのスコアリングルールが必要です
ステップ 2:基本的なコレクションの並べ替えを設定する
Shopify

組み込みの並べ替えオプション(アプリ不要):

  1. Products → Collections → [Collection] → Products に移動します
  2. 「Sort」ドロップダウンから、次のいずれかを選択します:
    • Best Selling — 過去の販売総数で並べ替えます(人気順)
    • Newest — 最近追加された商品を先頭に表示します
    • Price (Low to High / High to Low) — 価格順に並べ替えます
    • Manually — 商品をドラッグして特定の位置に配置できます
  3. 「Manual」並べ替えでは、商品を上部にドラッグしてピン留めできます。主力商品や新商品の発売時に便利です

スマート(自動)コレクション:

  1. Products → Collections → Create collection に移動します
  2. 種類を Automated に設定します
  3. 条件を追加します。例:「Tag is equal to 'summer'」または「Product price is greater than $50」
  4. Shopify は、条件に一致する商品を自動的に追加または削除します
  5. スマートコレクションの並べ替え順(Best Selling、Newest など)を設定します

Shopify Search & Discovery アプリ(無料):

  1. App Store から Shopify Search & Discovery アプリをインストールします(Shopify 提供、無料)
  2. このアプリでは、検索結果やコレクションページで特定の商品を上位表示できます
  3. アプリで Collections → [Collection] → Boost products に移動し、商品をピン留めして上部に表示します
  4. Bury products に移動し、優先度の低い商品(クリアランス商品や季節外れの商品など)を下部に表示します
WooCommerce

組み込みの並べ替え:

  1. WooCommerce → Settings → Products → Default product sorting に移動します
  2. オプション:Default(カスタム順)、Popularity、Average Rating、Latest、Price (Low to High)
  3. 「Custom ordering」を使うと、WooCommerce → Products で商品をドラッグして特定の位置に配置できます
  4. WooCommerce → Settings → Products → Enable sorting で並べ替えを有効にすると、顧客が複数の並べ替えオプションを選択できるようになります

カテゴリーの商品表示(手動制御):

  1. Products → Categories → [Category] → Products tab に移動します
  2. 商品をドラッグして、カテゴリー内の商品ページでの順序を変更します
  3. プログラムで制御するには、WooCommerce Custom Order / Alphabetical Order プラグインをインストールします
BigCommerce
  1. Products → Product Categories → [Category] に移動します
  2. Sort タブをクリックして、カテゴリーのデフォルトの並べ替え順を設定します
  3. オプション:Name、Price、Date、Sales(売上順)、Featured、Manual
  4. 「Manual」では、商品をドラッグして特定の位置に並べ替えられます
  5. 「Featured」では、「Featured」としてマークされた商品が最初に表示され、その後はデフォルトの並べ替え順に切り替わります

BigCommerce の検索:

  • BigCommerce の検索では、デフォルトで関連性に基づいて検索結果が表示されます
  • 特定の商品を検索結果の上位に表示するには、「Featured」としてマークするか、商品の SEO フィールドにキーワードを追加します
  • 高度な検索マーチャンダイジングには、BigCommerce App Marketplace から Boost Commerce をインストールします
Step 3: パフォーマンスに基づく自動ランキングを設定する

パフォーマンスに基づくランキングでは、売れ行きのよい商品を自動的に上位に表示し、動きの遅い商品を下位に移動します。通常はアプリが必要です。

Shopify — Kimonix
  1. Shopify App Store から Kimonix をインストールします(有料、月額約 30 ドルから)
  2. Kimonix は Shopify の分析データに接続し、以下に基づいて各商品のスコアを算出します。
    • 販売速度(最近の販売個数)
    • コンバージョン率(コレクションからのカート追加率)
    • 在庫レベル(在庫切れが近い商品の優先度を下げます)
    • 利益率(任意。原価データを入力している場合)
  3. Kimonix → Strategies で重み付けを設定します。例:販売速度 50%、コンバージョン率 30%、在庫 20%
  4. Kimonix はスケジュール(毎時、毎日、またはイベント発生時)に従ってコレクションを自動的に並べ替えます
  5. 上書き:商品を手動で特定の位置に固定できます。Kimonix は手動で固定した商品をそのままにし、残りの商品をアルゴリズムで並べ替えます

より簡単に商品を上位表示するには、Shopify Search & Discovery(無料)を使用します。

  1. Search & Discovery アプリを開きます
  2. Collections でコレクションを選択し、「Add boost」をクリックします
  3. 商品タグ(例:「new-arrival」のタグが付いたすべての商品)、特定の商品、または商品タイプを基準に上位表示できます
  4. クリアランス商品や季節外れの商品には、同様の方法で「Bury」を使用できます
WooCommerce

YITH WooCommerce Ajax Product Filter + WooCommerce Visual Products Configurator を使用する場合:

  • 売上に基づく基本的な自動並べ替えには、WooCommerce の組み込み機能「Sort by Popularity」を使用します。販売ごとに total_sales メタフィールドが加算されます
  • 高度なスコアリングには、カスタム基準に基づく重み付け商品並べ替え機能を追加する Booster for WooCommerce をインストールします
BigCommerce — Boost Commerce
  1. BigCommerce App Marketplace から Boost Commerce をインストールします
  2. Boost Commerce を使うと、カテゴリーのページにスマートな並べ替え(売上、コンバージョン率、カスタムスコアに基づく)を追加できます
  3. Boost Commerce で「Merchandising Rules」を作成し、特定の商品を固定、上位表示、または下位表示します
  4. 季節キャンペーン向けに期間限定ルールを設定します(例:「winter」タグ付き商品を 12 月から 2 月に上位表示)
Step 4: 検索結果のマーチャンダイジングを設定する
Shopify

Shopify Search & Discovery — 検索結果の上位表示:

  1. Search & Discovery アプリを開き、Search に移動します
  2. 「Boosts」で、特定の検索クエリの「Add boost」をクリックします
  3. 例:「jacket」というクエリに対し、「featured-jacket」タグが付いた商品を上位に表示します
  4. 「Synonyms」では、よくあるスペルのバリエーションを追加します(例:「t-shirt」=「tshirt」=「tee」)
  5. 「Product filters」では、検索結果に表示するフィルター(価格、色、サイズなど)を設定します
WooCommerce
  • WooCommerce Product Search プラグイン(WooCommerce.com)を追加すると、関連性に基づく検索が利用できます
  • 検索の重みを設定します:タイトルの重み = 5、タグの重み = 3、カテゴリーの重み = 2、説明の重み = 1
  • 高度なマーチャンダイジングには、SearchWP とその WooCommerce 連携を使用して、カスタム検索ルールを作成します
カスタム/ヘッドレス — Algolia
  1. algolia.com で登録し、ストアに Algolia クライアントをインストールします
  2. バックグラウンドジョブで商品カタログを Algolia にプッシュします
  3. Algolia のダッシュボード → Rules で、マーチャンダイジングルールを作成します:
    • 特定のクエリで商品を1位に固定します
    • 特定の属性(例:in_stock: true)を持つ商品をブーストします
    • clearance: true の商品を下位にします
  4. カスタムランキング:Algolia → Indices → Ranking → Custom Ranking で、以下を追加します:
    • desc(sales_30d) — 最近の売上を降順で並べ替えます
    • desc(conversion_rate) — コンバージョン率を第2基準として並べ替えます
  5. 商品の新しい指標をインデックスにプッシュすると、Algolia はランキングをリアルタイムで更新します
ステップ 5:カスタム/ヘッドレス — スコアリングエンジン
// Compute a merchandising score for a set of products
interface ProductMetrics {
  productId: string;
  unitsSold30d: number;
  revenue30d: number;
  conversionRatePct: number;   // (add-to-carts / page views) × 100
  grossMarginPct: number;
  daysInStock: number;         // 0 = out of stock
  daysSinceAdded: number;
}

interface ScoreWeights {
  salesVelocity: number;    // e.g., 0.35
  revenue: number;          // e.g., 0.20
  conversion: number;       // e.g., 0.20
  margin: number;           // e.g., 0.15
  recency: number;          // e.g., 0.10 (newer products get a boost)
}

function scoreProducts(metrics: ProductMetrics[], weights: ScoreWeights): { productId: string; score: number }[] {
  // Normalize each metric to 0–1 range across the set
  const normalize = (values: number[]) => {
    const min = Math.min(...values);
    const max = Math.max(...values);
    return values.map(v => max === min ? 0.5 : (v - min) / (max - min));
  };

  const salesScores = normalize(metrics.map(m => m.unitsSold30d));
  const revenueScores = normalize(metrics.map(m => m.revenue30d));
  const conversionScores = normalize(metrics.map(m => m.conversionRatePct));
  const marginScores = normalize(metrics.map(m => m.grossMarginPct));
  // Recency: newer = higher score (invert daysAdded)
  const recencyScores = normalize(metrics.map(m => -m.daysSinceAdded));

  return metrics.map((m, i) => {
    const score =
      salesScores[i] * weights.salesVelocity +
      revenueScores[i] * weights.revenue +
      conversionScores[i] * weights.conversion +
      marginScores[i] * weights.margin +
      recencyScores[i] * weights.recency;

    // Out-of-stock products get pushed to the bottom
    const adjustedScore = m.daysInStock === 0 ? score - 2 : score;
    return { productId: m.productId, score: Math.round(adjustedScore * 1000) / 1000 };
  }).sort((a, b) => b.score - a.score);
}

ベストプラクティス

  • 在庫切れの商品は除外せず、下位に配置します — 在庫切れの商品も検索結果には表示し(SEO とウィッシュリストのため)、順位を下げます。販売終了の商品だけを完全に削除します
  • スコアはページ読み込みごとではなく、毎日更新します — 商品スコアを事前に計算して保存します。コレクションのリクエストごとにスコアをリアルタイムで計算するのは遅すぎます
  • 主力商品と新着商品は手動で固定します — 自動スコアリングはロングテール商品に適しています。各シーズンに積極的に販売促進している重要な商品3~5点は、手動で固定します
  • 新しいルールを適用する前にプレビューモードを用意します — Shopify Search & Discovery アプリと Kimonix には、どちらもプレビュー機能があります。公開する前にコレクションの順序を確認するために使用します
  • 固定する商品の数に上限を設けます — 固定する商品が多すぎると、アルゴリズムがほかの商品を表示できなくなります。各コレクションで手動固定する商品は最大5点にします

よくある落とし穴

問題解決策
ベストセラー商品がいつまでもすべてのコレクションを独占する最近の売上を重視する係数と、過去14日以内に追加された商品に対する「新商品ブースト」を加えます。これにより、新商品にも露出の機会が生まれます
マーチャンダイジングルールが別のルールと競合するShopify Search & Discovery と Kimonix では、ルールに優先順位があります。どのルールがほかのルールに優先するかを定義し、優先順位の仕組みを文書化します
スマートコレクションに、本来含めるべきでない商品が追加されるコレクションの条件を慎重に確認します。「すべての条件」ではなく「いずれかの条件」を使用していることが、意図しない商品が含まれる最も一般的な原因です
1日だけの急激な売上増加により、パフォーマンススコアが偏る売上指標には全期間の合計ではなく、直近30日間のローリング期間を使用します。極端な外れ値は95パーセンタイルで上限を設定します

関連スキル

  • @multi-channel-selling
  • @demand-forecasting

コメント