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

Shopify Admin Cross Sell Opportunity Finder

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

shopify-admin-cross-sell-opportunity-finder is a Claude Code skill that identifies Shopify products with high single-purchase rates and suggests cross-sell partners based on category and price affinity.

About

This skill analyzes a Shopify store's orders to find products that are almost always bought alone and flags them as cross-sell candidates. It then suggests complementary partner products based on vendor, product type, price complementarity, and customer overlap. Unlike frequently-bought-together, it surfaces missing pairings. It is read-only.

  • Finds products bought mostly alone (high solo rate) as cross-sell candidates
  • Suggests partners by vendor, price tier, and customer-cohort overlap
  • Read-only; surfaces MISSING cross-sell patterns rather than existing ones

Shopify Admin Cross Sell Opportunity Finder by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #1,759 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
At a glance

shopify-admin-cross-sell-opportunity-finder capabilities & compatibility

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

Capabilities
cross sell analysis · product affinity · recommendation discovery
Works with
stripe
Use cases
data analysis
Pricing
Bring your own API key
From the docs

What shopify-admin-cross-sell-opportunity-finder says it does

Read-only: identifies products with high single-purchase rates that could benefit from cross-sell pairing based on category and price affinity.
SKILL.md
While `frequently-bought-together` finds existing patterns, this skill finds MISSING patterns — products that SHOULD be cross-sold but aren't.
SKILL.md
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-cross-sell-opportunity-finder

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

Find Shopify products usually bought alone and suggest complementary cross-sell partners to lift attach rate.

Who is it for?

Merchants looking to raise attach rate by pairing high-solo-rate products with complementary items.

Skip if: Finding existing bundles that already sell together; that is the frequently-bought-together skill's job.

When should I use this skill?

You want to discover products that should be cross-sold but currently sell alone.

What you get

High-solo-rate products are flagged with suggested complementary partners by vendor, price tier, and cohort overlap.

  • List of cross-sell candidate products with suggested partners

By the numbers

  • default solo_threshold 70% of orders
  • 180-day default lookback window
  • default min_orders 10 per product

Files

SKILL.mdMarkdownGitHub ↗

Purpose

Finds products that are almost always purchased alone (single-item orders) and identifies potential cross-sell partners based on category affinity, price complementarity, and customer overlap. While frequently-bought-together finds existing patterns, this skill finds MISSING patterns — products that SHOULD be cross-sold but aren't. 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
solo_thresholdfloatno70% of orders where product is bought alone to flag as "solo"
min_ordersintegerno10Minimum orders for a product to be analyzed
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, productType, vendor }, quantity, originalTotalSet }, pagination cursor Expected output: All orders with product data

2. For each product, calculate:

  • Total orders containing this product
  • Solo orders (product is the only item) vs. multi-item orders
  • Solo rate = solo_orders / total_orders × 100
  • Average order value when solo vs. when multi-item

3. Flag products with solo rate ≥ solo_threshold as "cross-sell candidates"

4. OPERATION: products — query (enrichment) Inputs: Product IDs for solo items and potential partners Expected output: Product type, vendor, price, collections for affinity matching

5. For each solo product, suggest cross-sell partners:

  • Same vendor, different product type (complementary)
  • Same product type, different price tier (good-better-best)
  • Products bought by the same customer cohort in separate orders
  • Price complementarity: partner price should be 20-50% of main product price (impulse add-on range)

GraphQL Operations

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

Session Tracking

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

On start, emit:

╔══════════════════════════════════════════════╗
║  SKILL: Cross-Sell Opportunity Finder        ║
║  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):

══════════════════════════════════════════════
CROSS-SELL OPPORTUNITY REPORT  (<days_back> days)
  Products analyzed:         <n>
  High solo-rate products:   <n>
  ─────────────────────────────
  TOP CROSS-SELL OPPORTUNITIES:

  "<product A>"  (solo rate: <pct>%, <n> orders)
    → Suggested partner: "<product B>" (same vendor, complementary type)
    → Price fit: $<main> + $<partner> = $<combined>
    → Potential AOV lift: +$<amount> per order

  Revenue opportunity: $<total> (if <pct>% of solo orders add partner)

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

Output Format

CSV file cross_sell_opportunities_<YYYY-MM-DD>.csv with columns: product_id, product_title, total_orders, solo_orders, solo_rate, suggested_partner_id, suggested_partner_title, affinity_type, potential_aov_lift

Error Handling

ErrorCauseRecovery
THROTTLEDAPI rate limit exceededWait 2 seconds, retry up to 3 times
All multi-item ordersStore naturally has high cross-sellReport as healthy — no action needed
Small catalogToo few products for meaningful pairsSuggest expanding catalog

Best Practices

  • Products with 80%+ solo rate and high order volume are biggest AOV opportunities.
  • Implement suggested pairs as "Customers also bought" or cart drawer recommendations.
  • Cross-reference with frequently-bought-together to see what IS working vs. what's missing.
  • Use with discount-ab-analysis to test a "buy X, get Y at 15% off" promotion.

Related skills

FAQ

How is this different from frequently-bought-together?

It finds MISSING patterns - products that should be cross-sold but are not - whereas frequently-bought-together finds existing pairings.

What makes a good cross-sell partner?

Same vendor with a different product type, a different price tier of the same type, cohort overlap, or a partner priced at 20-50% of the main product (impulse add-on range).

This week in AI coding

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

unsubscribe anytime.