Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

faceted-navigation多面导航

Agent Skill

faceted-navigation 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

432

周安装

18

GitHub Stars

19

下载量

144
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:faceted-navigation(多面导航)
来源仓库:https://github.com/finsilabs/awesome-ecommerce-skills
仓库路径:skills/faceted-navigation
安装命令:
npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill faceted-navigation
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/finsilabs/awesome-ecommerce-skills --skill faceted-navigation

简介

faceted-navigation 构建支持多属性联合筛选的商品列表页,保持 URL 可分享性。

  • 适用于 SKU 数量超过 50 的电商平台,显著提升浏览转化效率。
  • 需同步考虑 SEO 友好性与前端路由同步,避免过滤参数丢失导致页面失效。
  • 实施前应对现有分类体系做正交分解,防止维度冗余或冲突引发用户体验下降。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Faceted Navigation

Overview

Build a filterable product listing page (PLP) where shoppers can narrow results by multiple attributes simultaneously — size, color, brand, price range, rating — while keeping the URL in sync so filters are shareable, bookmarkable, and crawlable by search engines. Good faceted navigation drives measurable conversion lift on catalogs with more than 50 SKUs.

When to Use This Skill

  • When a product catalog exceeds ~50 SKUs and browse-only navigation causes shopper frustration
  • When building or redesigning a category/collection listing page
  • When SEO requires crawlable faceted URLs (e.g., /shoes/running?color=black&size=10)
  • When replacing a legacy faceted implementation that breaks the back button
  • When implementing Algolia InstantSearch or a custom faceting layer on Elasticsearch

Core Instructions

Step 1: Determine the merchant's platform and choose the right approach

PlatformRecommended ApproachWhy
ShopifyEnable native collection filters (Online Store 2.0 themes) + install Search & Discovery app (free)Dawn, Sense, and other OS2.0 themes support native storefront filtering via the Storefront API; Search & Discovery adds synonym, boosting, and filter configuration from the admin
WooCommerceInstall FiboSearch (paid, $49/yr) or WooCommerce Product Filters (free) pluginFiboSearch adds AJAX-powered facets with price slider, color swatches, and stock filter; the free Product Filters plugin covers basic attribute filtering with URL state
BigCommerceEnable Faceted Search in Storefront → Search settings (built-in on Cornerstone and most themes)BigCommerce Faceted Search is native to the platform — configure which product attributes appear as facets in the admin; no app required
Custom / HeadlessBuild with Algolia InstantSearch or Elasticsearch + URL state managementFull control over facet logic, disjunctive filtering, and count freshness; see implementation details below

Step 2: Configure facets on your platform


Shopify

Using Search & Discovery app (recommended):

  1. Install Search & Discovery from the Shopify App Store (free, by Shopify)
  2. Go to Apps → Search & Discovery → Filters
  3. Click Add filter and select the product attributes to use as facets (e.g., Color, Size, Brand, Price)
  4. Drag to reorder filters — put the most-used ones first
  5. Set Availability and Price filters to appear by default; keep variant-specific filters collapsed
  6. In Online Store → Themes → Customize, ensure your theme's collection template has the Filters section enabled in the sidebar or drawer

Theme-level filter configuration (Dawn theme):

  1. Go to Online Store → Themes → Customize
  2. Navigate to a collection page template
  3. In the sidebar, click Product grid and enable Enable filtering and Enable sorting
  4. Set Filter layout to Drawer (recommended for mobile) or Sidebar (desktop)

For Shopify Plus: Use Shopify Flow to tag products with filterable attributes automatically when new products are added.


WooCommerce

Option A: FiboSearch (recommended for advanced filtering):

  1. Install FiboSearch – AJAX Search for WooCommerce from WordPress.org or the plugin marketplace
  2. Go to FiboSearch → Settings → Filters and enable the filter bar
  3. Configure which attributes appear as facets: product categories, price range, custom attributes (e.g., Color, Size), and stock status
  4. Set Filter style to checkbox list or color swatches per attribute
  5. Enable AJAX filtering so results update without page reload
  6. Place the filter widget via Appearance → Widgets → Shop Sidebar or in a Gutenberg block

Option B: WooCommerce Product Filters (free):

  1. Install from WordPress.org
  2. Go to Products → Filters → Add New Filter Group
  3. Add filters for: Category, Attribute (e.g., Color, Size), Price range, Product tag, Stock status
  4. Place the filter shortcode [woof] in your shop page sidebar or above the product grid

URL state: Both plugins write active filters to the URL as query parameters, making results shareable and bookmarkable.


BigCommerce

  1. Go to Storefront → Search in your BigCommerce control panel
  2. Under Faceted Search, toggle it On
  3. Select which product fields appear as facets: Brand, Category, Price, Rating, and any custom Product Custom Fields
  4. Set the maximum number of values shown per facet before a "Show more" link appears
  5. For price facets, configure the price range buckets (e.g., $0-$25, $25-$50, $50-$100)
  6. In your theme settings (Storefront → My Themes → Customize), configure the filter sidebar layout and mobile drawer behavior

Note: Faceted Search requires Stencil-based themes (Cornerstone and most modern BigCommerce themes). Legacy Blueprint themes do not support it.


Custom / Headless

For headless storefronts, implement URL-state-driven filtering with your search backend:

URL state schema — all active filters live in query params:

/products/shoes?brand=Nike&brand=Adidas&color=black&size=10&price_min=50&price_max=150&sort=price_asc&page=1

Parse and build URL state:

// lib/facetUrl.js
export function parseFiltersFromUrl(searchParams) {
  const filters = {};
  for (const [key, value] of searchParams.entries()) {
    if (['sort', 'page', 'q'].includes(key)) continue;
    if (!filters[key]) filters[key] = [];
    filters[key].push(value);
  }
  return filters;
}

export function buildUrlFromFilters(filters, sort, page) {
  const params = new URLSearchParams();
  for (const [facetKey, values] of Object.entries(filters)) {
    values.forEach(v => params.append(facetKey, v));
  }
  if (sort) params.set('sort', sort);
  if (page && page > 1) params.set('page', String(page));
  return `?${params.toString()}`;
}

Algolia query with disjunctive facets (OR within a facet, AND between facets):

const result = await index.search(query ?? '', {
  facets: ['brand', 'color', 'size', 'price_range'],
  // facetFilters = OR within a facet group, AND between groups
  facetFilters: Object.entries(filters)
    .filter(([k]) => !['price_min', 'price_max'].includes(k))
    .map(([key, values]) => values.map(v => `${key}:${v}`)),
  filters: [
    filters.price_min ? `price >= ${filters.price_min[0]}` : null,
    filters.price_max ? `price <= ${filters.price_max[0]}` : null,
  ].filter(Boolean).join(' AND '),
  hitsPerPage: 24,
  page: page - 1,
});

Toggle filter and push URL state:

function toggleFilter(facetKey, value, currentFilters, sort) {
  const current = currentFilters[facetKey] ?? [];
  const next = current.includes(value)
    ? current.filter(v => v !== value)
    : [...current, value];
  const updated = next.length
    ? { ...currentFilters, [facetKey]: next }
    : (({ [facetKey]: _, ...rest }) => rest)(currentFilters);
  // Push new URL — each filter change gets its own history entry for back-button support
  window.history.pushState({}, '', buildUrlFromFilters(updated, sort, 1));
  return updated;
}

Step 3: Configure mobile filter experience

On mobile, the filter panel should appear as a bottom drawer triggered by a "Filter" button — not an always-visible sidebar that takes up half the screen.

  • Shopify (Dawn): Set Filter layout to Drawer in the Theme Customizer — this is already the default on mobile
  • WooCommerce (FiboSearch): Enable Mobile filter button in FiboSearch settings; the plugin adds a collapsible filter panel
  • BigCommerce: In theme settings, enable Filter drawer on mobile; Cornerstone handles this natively
  • Custom: Render filters in a position: fixed; bottom: 0 drawer on screens below 640px; trigger with a "Filter (N)" button where N is the active filter count

Step 4: Add active filter pills and clear controls

All platforms should show applied filters as dismissible pills above the product grid:

  • Shopify (Search & Discovery): Active filter pills are built into the OS2.0 filter section — enable them in the Theme Customizer
  • WooCommerce: FiboSearch shows active filter tags by default; add [woof_active_filters] shortcode to show them separately
  • BigCommerce: Cornerstone displays active refinements automatically; add the Active Facets section to your template if missing
  • Custom: Render pills from URL filter state; each pill has an × button that calls toggleFilter to remove it

Best Practices

  • Encode filter state in the URL — never store active filters only in JavaScript state; the URL is the source of truth for sharing, bookmarking, and back-button behavior
  • Use disjunctive facets within a group — selecting Nike AND Adidas should show products from either brand, not an empty intersection
  • Return facet counts in every response — counts must reflect the current filter context, not the global catalog
  • Limit facet overflow to top 10 values — show a "Show more" toggle to prevent overwhelming mobile users
  • Debounce price range sliders — commit the range only on mouseup/touchend, not on every tick
  • Add a "Clear all" affordance — always visible when any filter is active

Common Pitfalls

ProblemSolution
Back button reloads page instead of removing last filterUse history.pushState (not replaceState) for each filter change
Facet counts go stale after first filter selectionRe-fetch facet counts on every filter change using Algolia disjunctive faceting or Search & Discovery's built-in count refresh
Mobile filter panel overlaps contentUse a drawer/modal on mobile triggered by a "Filters" button; never show a sidebar on screens below 640px
SEO duplicate content from facet URLsAdd rel="noindex" or canonical tags for non-primary facet combinations; this is configured in Shopify's Search & Discovery SEO settings
Price range thumbs overlapClamp max thumb minimum to current min+step and min thumb maximum to current max-step on every change

Related Skills

  • @search-autocomplete
  • @product-categorization
  • @accessibility-commerce
  • @product-page-design

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.91%
按下载量换算55

Claude

26.93%
按下载量换算39

Cursor

16.51%
按下载量换算24

Gemini CLI

9.7%
按下载量换算14

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills