saleor-promotions

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

17 stars

Best use case

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

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

Teams using saleor-promotions 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-promotions/SKILL.md --create-dirs "https://raw.githubusercontent.com/OrcaQubits/agentic-commerce-skills-plugins/main/dist/antigravity/saleor-commerce/.agent/skills/saleor-promotions/SKILL.md"

Manual Installation

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

How saleor-promotions Compares

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

Frequently Asked Questions

What does this skill do?

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

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 Promotions and Discounts

## Before writing code

**Fetch live docs**:
1. Web-search `site:docs.saleor.io promotions catalog order rules` for promotion types and rule configuration
2. Web-search `site:docs.saleor.io vouchers voucher codes` for voucher creation and usage patterns
3. Web-search `site:docs.saleor.io gift cards` for gift card creation, activation, and redemption
4. Fetch `https://docs.saleor.io/docs/developer/discounts` and review the promotion model, rules, and conditions
5. Web-search `site:docs.saleor.io manual discount order staff` for staff-applied manual discounts
6. Fetch `https://docs.saleor.io/docs/developer/gift-cards` and review gift card as product and as payment method

## Promotion Types

Saleor distinguishes between two promotion types that apply at different stages:

| Type | When Applied | Effect |
|------|-------------|--------|
| Catalog promotion | At product display time | Reduces the visible price on product listings and detail pages |
| Order promotion | At checkout time | Applies discount to the order total or specific lines during checkout |

### Catalog Promotions

| Aspect | Description |
|--------|-------------|
| Timing | Applied before the product reaches the cart |
| Visibility | Customers see the discounted price on product pages |
| Price display | `undiscountedPrice` and `pricing.discount` show the original and savings |
| Stacking | Multiple catalog promotions can apply to the same product |

### Order Promotions

| Aspect | Description |
|--------|-------------|
| Timing | Applied when conditions are met in the checkout |
| Visibility | Discount shown as a line discount or order-level discount |
| Conditions | Based on cart contents, order total, or specific products |
| Application | Automatic when conditions match -- no code required |

## Promotion Rules and Conditions

Each promotion contains one or more rules:

### Rule Structure

| Field | Description |
|-------|-------------|
| `name` | Rule display name |
| `channels` | Channels where this rule applies |
| `cataloguePredicate` | Conditions based on product, category, collection, or variant |
| `orderPredicate` | Conditions based on order total or checkout lines |
| `rewardValue` | Discount amount (fixed or percentage) |
| `rewardValueType` | `FIXED` or `PERCENTAGE` |
| `rewardType` | For order promotions: `SUBTOTAL_DISCOUNT` or `GIFT` |

Catalogue predicate conditions: `productPredicate`, `categoryPredicate`, `collectionPredicate`, `variantPredicate`. Order predicate conditions: `discountedObjectPredicate` (minimum subtotal), `totalPrice` (order total threshold).

## Promotion Management

### Key Mutations

| Operation | Mutation | Notes |
|-----------|----------|-------|
| Create promotion | `promotionCreate` | Set name, type, start/end dates, rules |
| Update promotion | `promotionUpdate` | Modify promotion settings |
| Delete promotion | `promotionDelete` | Remove promotion |
| Create rule | `promotionRuleCreate` | Add rule to existing promotion |
| Update rule | `promotionRuleUpdate` | Modify rule conditions and rewards |
| Delete rule | `promotionRuleDelete` | Remove rule from promotion |

### Promotion Fields

| Field | Description |
|-------|-------------|
| `name` | Promotion display name |
| `type` | `CATALOGUE` or `ORDER` |
| `startDate` | When the promotion becomes active |
| `endDate` | When the promotion expires (optional) |
| `rules` | Array of promotion rules |
| `metadata` | Custom key-value metadata |

## Voucher Codes

Vouchers are code-based discounts that customers enter at checkout:

### Voucher Types

| Type | Description |
|------|-------------|
| `ENTIRE_ORDER` | Discount applied to the entire order |
| `SHIPPING` | Free or discounted shipping |
| `SPECIFIC_PRODUCT` | Discount on specific products only |

### Voucher Configuration

| Field | Description |
|-------|-------------|
| `code` | The voucher code customers enter |
| `type` | Voucher type (see above) |
| `discountValueType` | `FIXED` or `PERCENTAGE` |
| `discountValue` | Discount amount or percentage |
| `minCheckoutItemsQuantity` | Minimum items required in checkout |
| `minSpent` | Minimum order amount (per channel) |
| `usageLimit` | Total number of times the voucher can be used |
| `applyOncePerCustomer` | Whether each customer can use it only once |
| `applyOncePerOrder` | Whether the discount applies to one item or all matching items |
| `onlyForStaff` | Restrict to staff-created orders |
| `startDate` | Activation date |
| `endDate` | Expiration date |

### Key Voucher Mutations

| Operation | Mutation |
|-----------|----------|
| Create voucher | `voucherCreate` |
| Update voucher | `voucherUpdate` |
| Delete voucher | `voucherDelete` |
| Add products | `voucherCataloguesAdd` |
| Remove products | `voucherCataloguesRemove` |

## Manual Staff Discounts

Staff users can apply manual discounts to orders:

| Operation | Mutation | Scope |
|-----------|----------|-------|
| Add order discount | `orderDiscountAdd` | Entire order |
| Update order discount | `orderDiscountUpdate` | Modify existing discount |
| Delete order discount | `orderDiscountDelete` | Remove discount |
| Add line discount | `orderLineDiscountAdd` (draft orders) | Specific line item |

> Manual discounts are only available for draft orders and through staff-facing operations. They cannot be combined with automatic promotions on the same order line.

## Gift Cards

Gift cards function both as a product type and as a payment method:

### Gift Card as Product

| Aspect | Description |
|--------|-------------|
| Product type | Create a product type with `isDigital: true` for gift cards |
| Variants | Each variant represents a gift card denomination |
| Purchase | Customer buys a gift card like any other product |
| Activation | Gift card is automatically created and code sent to buyer |

### Gift Card as Payment

| Aspect | Description |
|--------|-------------|
| Application | Customer enters gift card code at checkout |
| Balance | Gift card has a remaining balance that decreases with each use |
| Partial use | Gift card can be used for partial payment; remainder stays as balance |
| Multiple cards | Multiple gift cards can be applied to one checkout |

### Gift Card Mutations

| Operation | Mutation | Notes |
|-----------|----------|-------|
| Create gift card | `giftCardCreate` | Staff-created gift card |
| Update gift card | `giftCardUpdate` | Modify balance, expiry |
| Deactivate | `giftCardDeactivate` | Disable without deleting |
| Activate | `giftCardActivate` | Re-enable a deactivated card |
| Resend code | `giftCardResend` | Resend gift card code via email |
| Bulk create | `giftCardBulkCreate` | Generate multiple cards at once |
| Add note | `giftCardAddNote` | Add staff note to gift card |

## Discount Stacking Rules

| Scenario | Behavior |
|----------|----------|
| Multiple catalog promotions | All matching promotions apply; discounts stack |
| Catalog promotion + voucher | Both apply; catalog discount reduces base price, voucher applies on top |
| Catalog promotion + order promotion | Both can apply; catalog reduces price, order promotion discounts checkout |
| Multiple vouchers | Only one voucher code per checkout |
| Voucher + manual discount | Voucher applies first; manual discount applies on remaining amount |
| Gift card + other discounts | Gift card applies after all other discounts as a payment method |

## Best Practices

- Use catalog promotions for sale prices visible on product pages; order promotions for cart-level discounts
- Use vouchers when a code-based redemption experience is required
- Set `startDate` and `endDate` on promotions to automate sale periods
- Use `usageLimit` and `applyOncePerCustomer` on vouchers to control distribution
- Test promotion stacking behavior in a staging environment before going live
- Use gift cards with expiration dates to manage liability
- Always specify channels on promotion rules to prevent unintended cross-channel discounts

Fetch the Saleor promotions and voucher documentation for exact mutation inputs, predicate syntax, and discount stacking behavior before implementing.

Related Skills

spree-promotions

17
from OrcaQubits/agentic-commerce-skills-plugins

Build and customize Spree's promotions engine — Promotion + PromotionRule + PromotionAction + CouponCode + Adjustment, the bundled rules (FirstOrder/ItemTotal/Product/Taxon/User/OneUsePerUser/Country/CustomerGroup/etc.), bundled actions (CreateAdjustment/CreateItemAdjustments/FreeShipping/CreateLineItems), Calculator classes, coupon batches with CSV export, the v5.1+ advanced rule-based engine, and authoring custom rules/actions/calculators. Use when modeling promotions, building discount UIs, or extending the promotions engine.

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-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.

saleor-orders

17
from OrcaQubits/agentic-commerce-skills-plugins

Manage the Saleor order lifecycle — order creation, fulfillments, returns, refunds, draft orders, and order events. Use when working with Saleor orders.

saleor-graphql

17
from OrcaQubits/agentic-commerce-skills-plugins

Work with the Saleor GraphQL API — queries, mutations, subscriptions, cursor pagination, filters, error handling, GraphQL Playground, and code generation. Use when building against the Saleor API.

saleor-deploy

17
from OrcaQubits/agentic-commerce-skills-plugins

Deploy Saleor to production — Docker setup, Saleor Cloud, environment variables, Celery workers, S3 media storage, database management, and scaling. Use when deploying Saleor applications.

saleor-dashboard

17
from OrcaQubits/agentic-commerce-skills-plugins

Extend the Saleor Dashboard — mounting points, App Bridge actions, MacawUI components, iframe extensions, and custom views. Use when building Dashboard extensions.