Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
40rty-ai avatar

Shopify Admin Frequently Bought Together

  • 2 installs
  • 173 repo stars
  • Updated June 26, 2026
  • 40rty-ai/shopify-admin-skills

shopify-admin-frequently-bought-together is a Shopify Admin skill that mines order history to find products often bought together and rank cross-sell bundles.

About

A Shopify Admin skill that mines order history to find products frequently purchased together. It builds a co-occurrence matrix and computes support, confidence, and lift to rank cross-sell recommendations and bundle candidates. It supports pairs or triplets and an optional collection filter. It is read-only and uses the Shopify Admin orders and products GraphQL queries.

  • Computes support, confidence, and lift for product pairs/triplets
  • Ranks cross-sell and bundle candidates from order history
  • Read-only Shopify Admin orders and products queries

Shopify Admin Frequently Bought Together by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #1,839 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
At a glance

shopify-admin-frequently-bought-together capabilities & compatibility

Free; requires an authenticated Shopify CLI session with read_orders and read_products scopes.

Capabilities
market basket analysis · cross sell recommendations · product affinity
Use cases
data analysis
Pricing
Free
From the docs

What shopify-admin-frequently-bought-together says it does

Analyzes order history to discover which products are frequently purchased together.
SKILL.md
Lift** = confidence(A→B) / P(B) — lift > 1.0 means positive association
SKILL.md
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-frequently-bought-together

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars173
Last updatedJune 26, 2026
Repository40rty-ai/shopify-admin-skills

What it does

Mine Shopify order history for product pairs and triplets frequently bought together to generate cross-sell and bundle recommendations.

Who is it for?

Generating data-driven cross-sell and bundle recommendations from real order history.

Skip if: Creating the bundles or editing products; it only produces recommendations.

When should I use this skill?

When planning cross-sell offers, bundles, or product-recommendation logic.

What you get

A ranked list of product pairs/triplets with support, confidence, and lift, plus bundle candidates.

  • Ranked product pairs/triplets by lift
  • Bundle candidate list

By the numbers

  • Default 180-day order lookback
  • Default min_support of 3 co-occurrences
  • Default max_results of 25 pairs

Files

SKILL.mdMarkdownGitHub ↗

Purpose

Analyzes order history to discover which products are frequently purchased together. Calculates co-occurrence frequency, lift scores, and confidence metrics to generate data-driven cross-sell recommendations and bundle candidates. Read-only — no mutations.

Prerequisites

  • Authenticated Shopify CLI session: shopify store auth --store <domain> --scopes read_orders,read_products
  • API scopes: read_orders, read_products

Parameters

ParameterTypeRequiredDefaultDescription
storestringyesStore domain
days_backintegerno180Order lookback window
min_supportintegerno3Minimum co-occurrence count to report a pair
max_resultsintegerno25Maximum product pairs to return
group_sizeintegerno2Pair size: 2 for pairs, 3 for triplets
collection_filterstringnoLimit to products in a specific collection
formatstringnohumanOutput format: human or json

Safety

ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.

Workflow Steps

1. OPERATION: orders — query Inputs: query: "created_at:>='<NOW - days_back days>'", first: 250, select lineItems { product { id, title } }, pagination cursor Expected output: All orders with product-level line items

2. For each order with 2+ distinct products, generate all product pair combinations

3. Build co-occurrence matrix:

  • Support = number of orders containing both products
  • Confidence(A→B) = P(B|A) = support(A,B) / support(A)
  • Lift = confidence(A→B) / P(B) — lift > 1.0 means positive association

4. OPERATION: products — query (enrichment) Inputs: Product IDs from top pairs for titles, images, prices Expected output: Product details for display

5. Rank pairs by lift score (descending), filter by min_support

GraphQL Operations

# orders:query — validated against api_version 2025-01
query OrderLineItems($query: String!, $after: String) {
  orders(first: 250, after: $after, query: $query) {
    edges {
      node {
        id
        lineItems(first: 50) {
          edges {
            node {
              product { id title }
              quantity
            }
          }
        }
      }
    }
    pageInfo { hasNextPage endCursor }
  }
}
# products:query — validated against api_version 2025-01
query ProductDetails($ids: [ID!]!) {
  nodes(ids: $ids) {
    ... on Product {
      id
      title
      vendor
      productType
      priceRangeV2 {
        minVariantPrice { amount currencyCode }
        maxVariantPrice { amount currencyCode }
      }
      totalInventory
      status
    }
  }
}

Session Tracking

Claude MUST emit the following output at each stage. This is mandatory.

On start, emit:

╔══════════════════════════════════════════════╗
║  SKILL: Frequently Bought Together           ║
║  Store: <store domain>                       ║
║  Started: <YYYY-MM-DD HH:MM UTC>             ║
╚══════════════════════════════════════════════╝

After each step, emit:

[N/TOTAL] <QUERY|MUTATION>  <OperationName>
          → Params: <brief summary of key inputs>
          → Result: <count or outcome>

On completion, emit:

For format: human (default):

══════════════════════════════════════════════
FREQUENTLY BOUGHT TOGETHER  (<days_back> days, <n> orders analyzed)
  Unique product pairs found: <n>
  Pairs meeting min_support:  <n>

  TOP PAIRS BY LIFT:
  #1  "<product A>" + "<product B>"
      Support: <n> orders  Lift: <n>x  Confidence: <pct>%

  #2  "<product A>" + "<product B>"
      Support: <n> orders  Lift: <n>x  Confidence: <pct>%

  BUNDLE CANDIDATES (high support + high lift):
    "<product A>" + "<product B>"  →  Suggested bundle price: $<n>

  Output: fbt_pairs_<date>.csv
══════════════════════════════════════════════

Output Format

CSV file fbt_pairs_<YYYY-MM-DD>.csv with columns: product_a_id, product_a_title, product_b_id, product_b_title, support, confidence_a_to_b, confidence_b_to_a, lift, combined_avg_price

Error Handling

ErrorCauseRecovery
THROTTLEDAPI rate limit exceededWait 2 seconds, retry up to 3 times
Single-item orders onlyStore with no multi-item ordersReport empty — suggest longer lookback window
Too many productsCombinatorial explosionLimit to top 500 products by order count

Best Practices

  • Use days_back: 180 or 365 for sufficient sample size.
  • Pairs with lift > 2.0 are strong bundle candidates.
  • Use results to create manual product bundles or configure upsell apps.
  • Cross-reference with top-product-performance to ensure paired items are high-performing.
  • Products with high confidence A→B but low confidence B→A suggest directional upsells (show B when A is in cart).

Related skills

FAQ

Can it find triplets, not just pairs?

Yes. Set group_size to 3 to analyze product triplets instead of pairs.

What metrics does it compute?

Support (co-occurrence count), confidence (P(B|A)), and lift (association strength above baseline).

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.