saleor-promotions
Configure Saleor promotions — catalog promotions, order promotions, vouchers, manual discounts, gift cards, and discount stacking. Use when setting up pricing rules.
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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/saleor-promotions/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How saleor-promotions Compares
| Feature / Agent | saleor-promotions | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/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
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
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
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
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
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
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
Secure Saleor applications — JWT authentication, OIDC integration, App tokens, permission model, rate limiting, CORS, and security headers. Use when configuring Saleor security.
saleor-payments
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
Manage the Saleor order lifecycle — order creation, fulfillments, returns, refunds, draft orders, and order events. Use when working with Saleor orders.
saleor-graphql
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
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
Extend the Saleor Dashboard — mounting points, App Bridge actions, MacawUI components, iframe extensions, and custom views. Use when building Dashboard extensions.