saleor-catalog

Manage the Saleor catalog — products, variants, product types, categories, collections, media, and warehouse stock. Use when working with Saleor product data.

17 stars

Best use case

saleor-catalog is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Manage the Saleor catalog — products, variants, product types, categories, collections, media, and warehouse stock. Use when working with Saleor product data.

Teams using saleor-catalog should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/saleor-catalog/SKILL.md --create-dirs "https://raw.githubusercontent.com/OrcaQubits/agentic-commerce-skills-plugins/main/dist/antigravity/saleor-commerce/.agent/skills/saleor-catalog/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/saleor-catalog/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How saleor-catalog Compares

Feature / Agentsaleor-catalogStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Manage the Saleor catalog — products, variants, product types, categories, collections, media, and warehouse stock. Use when working with Saleor product data.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Saleor Catalog Management

## Before writing code

**Fetch live docs**:
1. Web-search `site:docs.saleor.io products variants product types` for product model and GraphQL operations
2. Web-search `site:docs.saleor.io categories collections` for category tree and collection management
3. Web-search `site:docs.saleor.io warehouse stock allocation` for inventory and warehouse operations
4. Fetch `https://docs.saleor.io/docs/developer/products` and review Product, ProductType, and ProductVariant schemas
5. Web-search `site:docs.saleor.io product media images` for media upload and assignment patterns
6. Fetch `https://docs.saleor.io/docs/developer/channels` and review channel-aware product visibility

## Product Hierarchy

| Level | Contains |
|-------|----------|
| ProductType | Template: defines product and variant attributes, shipping/digital flags |
| Product | Name, description, slug, category, collections, media |
| ProductVariant | SKU, name, channel listings (price), stock (per warehouse), variant attributes |

### Product Status

| Status | Description |
|--------|-------------|
| `DRAFT` | Product is not visible to customers; work in progress |
| `ACTIVE` | Product is published and available for purchase (per channel listing) |

> Products require a channel listing to be visible in a given channel. Status alone does not control storefront visibility.

## Product Types

A ProductType serves as a template that defines the structure for a group of products:

| Concept | Purpose |
|---------|---------|
| Product attributes | Shared attributes across all products of this type (e.g., Brand, Material) |
| Variant attributes | Attributes that differ per variant (e.g., Size, Color) |
| `isShippingRequired` | Whether products of this type need physical shipping |
| `isDigital` | Whether this type represents digital goods |
| `hasVariants` | Whether products support multiple variants |
| Weight | Default weight for products of this type |

### Key Product Type Mutations

| Operation | Mutation | Notes |
|-----------|----------|-------|
| Create type | `productTypeCreate` | Define name, attributes, shipping flag |
| Update type | `productTypeUpdate` | Modify existing type settings |
| Delete type | `productTypeDelete` | Removes type (fails if products exist) |
| Assign attribute | `productAttributeAssign` | Add attribute to product type |
| Unassign attribute | `productAttributeUnassign` | Remove attribute from type |

## Variant Model

Each ProductVariant represents a purchasable unit within a product:

| Field | Description |
|-------|-------------|
| `sku` | Stock Keeping Unit (unique identifier) |
| `name` | Display name for the variant |
| `trackInventory` | Whether stock levels are tracked |
| `weight` | Override weight from product type |
| `preorder` | Preorder settings (end date, global threshold) |
| `quantityLimitPerCustomer` | Maximum purchase quantity per customer |

### Channel Listings for Variants

Variants have per-channel pricing. Each `ProductVariantChannelListing` holds:

| Field | Description |
|-------|-------------|
| `price` | Selling price in the channel currency |
| `costPrice` | Cost of goods (for margin calculations) |
| `channel` | The channel this listing belongs to |

## Categories

Categories form a nested tree structure for organizing products:

| Feature | Detail |
|---------|--------|
| Structure | Single-root tree with unlimited nesting depth |
| Assignment | Each product belongs to exactly one category |
| SEO | Categories support `seoTitle` and `seoDescription` |
| Background image | Optional image for category pages |
| Slug | URL-friendly identifier |

### Key Category Mutations

| Operation | Mutation |
|-----------|----------|
| Create | `categoryCreate` (set `parent` for nesting) |
| Update | `categoryUpdate` |
| Delete | `categoryDelete` |

## Collections

Collections are curated groupings of products, independent of the category tree:

| Feature | Detail |
|---------|--------|
| Purpose | Marketing-driven groupings (e.g., "Summer Sale", "Best Sellers") |
| Assignment | Many-to-many; a product can belong to multiple collections |
| Channel listing | Collections must be published per channel |
| Background image | Optional image for collection pages |
| SEO | Supports `seoTitle` and `seoDescription` |

### Key Collection Mutations

| Operation | Mutation |
|-----------|----------|
| Create | `collectionCreate` |
| Add products | `collectionAddProducts` |
| Remove products | `collectionRemoveProducts` |
| Delete | `collectionDelete` |

## Product Media

Products support images and videos:

| Media Type | Upload Method |
|------------|---------------|
| Images | `productMediaCreate` with `image` file upload |
| URLs | `productMediaCreate` with `mediaUrl` for external images or videos |
| Reorder | `productMediaReorder` to set display order |
| Delete | `productMediaDelete` to remove media |

> Images are served through Saleor's thumbnail system. Request specific sizes using the `thumbnail` field on `ProductMedia` with `size` parameter.

## Key GraphQL Queries and Mutations

### Admin API

| Operation | Query / Mutation | Notes |
|-----------|-----------------|-------|
| List products | `products` | Supports filtering, sorting, and channel |
| Get product | `product` | By ID or slug; channel required for pricing |
| Create product | `productCreate` | Requires productType, name, and category |
| Update product | `productUpdate` | Partial updates supported |
| Delete product | `productDelete` | Removes product and all variants |
| Create variant | `productVariantCreate` | Requires product ID, attributes, SKU |
| Bulk create variants | `productVariantBulkCreate` | Create multiple variants at once |
| Update stock | `productVariantStocksUpdate` | Set stock quantities per warehouse |

### Store API (channel-scoped)

| Operation | Query | Notes |
|-----------|-------|-------|
| List products | `products(channel: "default")` | Only published, available products |
| Get product | `product(slug: "...", channel: "...")` | Returns pricing for the channel |
| Search | `products(filter: {search: "..."})` | Full-text search on name and description |
| By category | `products(filter: {categories: [...]})` | Filter by category IDs |
| By collection | `collection(slug: "...")` `{ products }` | Products within a collection |

> **Fetch live docs** for exact filter fields and sorting options -- these evolve across Saleor versions.

## Warehouse and Stock

| Concept | Description |
|---------|-------------|
| Warehouse | Physical location where stock is held |
| Stock | Per-variant, per-warehouse quantity |
| Allocation | Reserved stock for unfulfilled orders |
| Available quantity | `stock.quantity - stock.allocations` |

### Stock Mutations

| Operation | Mutation |
|-----------|----------|
| Update stocks | `productVariantStocksUpdate` |
| Create stocks | `productVariantStocksCreate` |
| Delete stocks | `productVariantStocksDelete` |

## Best Practices

- Always create ProductTypes before products -- they define the attribute schema
- Use channel listings to control visibility and pricing per channel
- Assign products to exactly one category and use collections for cross-cutting groupings
- Use `productVariantBulkCreate` for efficiency when adding multiple variants
- Track inventory at the warehouse level for multi-location fulfillment
- Set `trackInventory` to `true` for physical goods to prevent overselling
- Use slugs for storefront URLs and SEO-friendly navigation
- Optimize images before upload -- Saleor generates thumbnails but original size affects storage
- Always pass `channel` when querying from the storefront to get correct pricing and availability

Fetch the Saleor product and catalog documentation for exact mutation inputs, attribute types, and channel listing patterns before implementing.

Related Skills

woo-catalog

17
from OrcaQubits/agentic-commerce-skills-plugins

Work with WooCommerce catalog — product types, categories, tags, attributes, product queries, search, related products, and product visibility. Use when managing products programmatically or customizing the catalog display.

spree-catalog

17
from OrcaQubits/agentic-commerce-skills-plugins

Build and customize Spree's catalog — Products with Variants and OptionTypes/OptionValues, Taxonomies and Taxons (nested set), Properties, Images via ActiveStorage, multi-currency Prices, the v5.3+ PriceList feature for customer/segment overrides, MeiliSearch faceted search (v5.4+), product archiving/activation, CSV import/export, and SEO. Use when modeling products, customizing the catalog UI, indexing search, or importing inventory.

shopify-catalog

17
from OrcaQubits/agentic-commerce-skills-plugins

Manage Shopify catalog — Product, Variant, and Option models, collections, metafields and metaobjects, inventory management, product taxonomy, bulk operations, and media. Use when working with Shopify product data.

sf-catalog

17
from OrcaQubits/agentic-commerce-skills-plugins

Manage Salesforce Commerce catalogs — B2C (Business Manager catalogs, categories, products, pricing books, promotions, search indexes) and B2B (Product2, Pricebook2, PricebookEntry, volume discounts, entitlements). Use when working with product data across either platform.

saleor-webhooks

17
from OrcaQubits/agentic-commerce-skills-plugins

Configure Saleor webhooks — async and sync events, subscription payloads, JWS/HMAC signature verification, retry policy, and event types. Use when building webhook-driven integrations.

saleor-testing

17
from OrcaQubits/agentic-commerce-skills-plugins

Test Saleor applications — pytest setup, Django test client, GraphQL test patterns, App testing, factory_boy fixtures, and webhook testing. Use when writing tests for Saleor projects.

saleor-storefront

17
from OrcaQubits/agentic-commerce-skills-plugins

Build Next.js storefronts for Saleor — GraphQL client setup, channel routing, Tailwind CSS, server components, checkout flow, and SEO. Use when developing Saleor storefronts.

saleor-shipping

17
from OrcaQubits/agentic-commerce-skills-plugins

Configure Saleor shipping — shipping zones, methods (price/weight-based), custom shipping Apps, warehouse-based allocation, and click-and-collect. Use when setting up delivery options.

saleor-setup

17
from OrcaQubits/agentic-commerce-skills-plugins

Set up a Saleor development environment — saleor-platform Docker Compose, CLI, PostgreSQL/Redis prerequisites, manage.py commands, environment variables, project structure. Use when starting a new Saleor project.

saleor-security

17
from OrcaQubits/agentic-commerce-skills-plugins

Secure Saleor applications — JWT authentication, OIDC integration, App tokens, permission model, rate limiting, CORS, and security headers. Use when configuring Saleor security.

saleor-promotions

17
from OrcaQubits/agentic-commerce-skills-plugins

Configure Saleor promotions — catalog promotions, order promotions, vouchers, manual discounts, gift cards, and discount stacking. Use when setting up pricing rules.

saleor-payments

17
from OrcaQubits/agentic-commerce-skills-plugins

Implement Saleor payment processing — transaction-based payment flow, payment Apps, sync webhook events, Stripe/Adyen patterns, and refunds. Use when building payment integrations.