Files
manoon-headless/saleor-features.md
Unchained 7b94537670 feat(saleor): Phase 1 - GraphQL Client Setup
- Add Apollo Client for Saleor GraphQL API
- Create GraphQL fragments (Product, Variant, Checkout)
- Create GraphQL queries (Products, Checkout)
- Create GraphQL mutations (Checkout operations)
- Add TypeScript types for Saleor entities
- Add product helper functions
- Install @apollo/client and graphql dependencies

Part of WordPress/WooCommerce → Saleor migration
2026-03-21 12:36:21 +02:00

7.7 KiB

Saleor Features Overview

Built-in Features

Core Commerce

  • Products & Variants - Support for simple and variable products
  • Categories - Hierarchical nested categories (MPTT tree structure)
  • Collections - Manual and automated collections
  • Inventory - Multi-warehouse stock tracking
  • Channels - Multi-channel support (different prices/currencies per channel)
  • Multi-language - Full translation support for products, categories, pages
  • Multi-currency - Channel-based currency configuration

Orders & Checkout

  • Shopping Cart - Persistent cart with metadata support
  • Checkout Flow - Customizable checkout process
  • Orders - Full order management with status tracking
  • Draft Orders - Create orders manually (e.g., for phone orders)
  • Order History - Complete audit trail of order changes

Payments

  • Payment Gateway Integration - Stripe, Adyen, PayPal, and more
  • Transactions - Transaction-based payment handling (Saleor 3.x+)
  • Multiple Payment Methods - Per-channel configuration
  • Partial Payments - Support for split payments

Shipping

  • Shipping Zones - Geographic shipping regions
  • Shipping Methods - Multiple carriers and rates
  • Free Shipping - Threshold-based free shipping
  • Weight-based Rates - Calculate by product weight

Discounts & Promotions

  • Vouchers - Coupon codes with various rules
  • Promotions - Automatic discounts (percentage, fixed amount)
  • Buy X Get Y - Gift with purchase promotions
  • Catalog Promotions - Category/product-specific discounts

Customers

  • User Accounts - Customer registration and profiles
  • Address Book - Multiple shipping/billing addresses
  • Customer Groups - User segmentation
  • Order History - Customer order visibility

Content Management

  • Pages - Static pages (About, Contact, etc.)
  • Menus - Navigation menu builder
  • Page Types - Structured content with attributes

Gift Cards

  • Digital Gift Cards - Sell and redeem gift cards
  • Balance Tracking - Usage history

Taxes

  • Tax Classes - Different tax rates per product type
  • Tax Configuration - Country/region-specific taxes
  • VAT Support - European VAT handling

Staff & Permissions

  • Staff Accounts - Admin user management
  • Permission Groups - Role-based access control
  • Impersonation - Login as customer for support

Missing Features (Need to Build/Add)

1. Product Reviews

Status: NOT built-in (on roadmap but not planned)

Official Statement:

"We are not planning to add product reviews, however, you could use product metadata to provide very basic reviews or use a full fledge service for reviews such as trustpilot and integrate it with Saleor."

Options:

  • Trustpilot - Industry standard, SEO benefits
  • Yotpo - Reviews + UGC + loyalty
  • Judge.me - Affordable, works well with headless
  • Reviews.io - Good API for headless

Integration: Add JS widget to storefront

Option B: Build Custom Review System

Create new tables:

-- Custom reviews table
CREATE TABLE product_review (
    id SERIAL PRIMARY KEY,
    product_id INTEGER REFERENCES product_product(id),
    user_id INTEGER REFERENCES account_user(id),
    rating INTEGER CHECK (rating >= 1 AND rating <= 5),
    title VARCHAR(255),
    comment TEXT,
    is_approved BOOLEAN DEFAULT false,
    created_at TIMESTAMP DEFAULT NOW(),
    updated_at TIMESTAMP DEFAULT NOW()
);

Then add GraphQL mutations:

type Mutation {
  productReviewCreate(productId: ID!, input: ReviewInput!): ProductReview
  productReviewUpdate(reviewId: ID!, input: ReviewInput!): ProductReview
}

Effort: Medium-High (2-4 weeks)

Option C: Use Product Metadata (Quick Hack)

Store reviews in product metadata:

{
  "reviews": [
    {"rating": 5, "comment": "Great product!", "author": "John"}
  ]
}

Limitations: No filtering, no moderation, poor performance


2. Abandoned Cart Recovery

Status: NOT built-in

Options:

Most popular solution:

Klaviyo (Best for Saleor)

  • Native e-commerce focus
  • Abandoned cart flows
  • Product recommendations
  • Customer segmentation
  • Works via API integration

Integration approach:

// Track checkout started
klaviyo.track('Started Checkout', {
  $value: checkout.totalPrice.amount,
  ItemNames: checkout.lines.map(l => l.variant.name),
  CheckoutURL: `https://dev.manoonoils.com/checkout/${checkout.id}`
});

Other options:

  • Mailchimp - Good free tier
  • Sendinblue - Affordable
  • ActiveCampaign - Advanced automation
  • Omnisend - E-commerce focused

Effort: Low-Medium (1-2 weeks)

Option B: Build Custom Abandoned Cart

Database approach:

-- Track checkout abandonment
CREATE TABLE checkout_abandoned (
    checkout_id INTEGER PRIMARY KEY REFERENCES checkout_checkout(id),
    user_email VARCHAR(255),
    cart_value NUMERIC(20,3),
    abandoned_at TIMESTAMP DEFAULT NOW(),
    email_sent BOOLEAN DEFAULT false,
    recovered BOOLEAN DEFAULT false
);

Components needed:

  1. Background job - Check for abandoned carts (e.g., 1 hour after last update)
  2. Email service - Sendgrid/AWS SES/etc
  3. Email templates - Serbian + English
  4. Recovery URL - Deep link to restore cart
  5. Analytics - Track recovery rate

Effort: High (4-6 weeks)

Option C: N8N Automation

Use your existing n8n instance:

Trigger: Schedule (every hour)
  ↓
PostgreSQL: Find abandoned checkouts
  ↓
Filter: Not completed, older than 1 hour
  ↓
Send Email: Via Sendgrid
  ↓
Update: Mark email_sent = true

Effort: Medium (1-2 weeks)


3. Email Marketing Automation

Status: NOT built-in

Options:

  • Klaviyo (recommended)
  • Mailchimp
  • Sendinblue

What you get:

  • Welcome emails
  • Order confirmations
  • Shipping notifications
  • Post-purchase follow-up
  • Win-back campaigns

4. Live Chat

Status: NOT built-in

Options:

  • Tidio
  • Intercom
  • Crisp
  • Tawk.to (free)

5. Analytics

Status: NOT built-in

Options:

  • Google Analytics 4
  • Plausible
  • Mixpanel
  • Amplitude
  • Your existing Rybbit

Phase 1: Essential (Launch)

  • Saleor core ( Done)
  • Payment gateway (Stripe)
  • Shipping configuration
  • Tax setup
  • Basic email (order confirmations)

Phase 2: Growth (Post-launch)

  • Klaviyo - Abandoned cart + email marketing
  • Trustpilot or Judge.me - Product reviews
  • Advanced analytics
  • Live chat

Phase 3: Optimization

  • Loyalty program
  • Subscription products
  • Advanced promotions
  • B2B features

Cost Estimate

Feature Solution Monthly Cost
Reviews Judge.me Free - $15
Reviews Trustpilot $200+
Abandoned Cart Klaviyo Free (up to 250 contacts) - $20+
Live Chat Tawk.to Free
Live Chat Intercom $74+
Email Sendgrid Free (100/day) - $19+

Summary

Feature Built-in? Solution
Product Reviews No Judge.me / Trustpilot / Custom build
Abandoned Cart No Klaviyo / N8N automation / Custom build
Email Marketing No Klaviyo / Mailchimp
Live Chat No Tawk.to / Intercom
Gift Cards Yes Native Saleor
Multi-language Yes Native Saleor
Multi-currency Yes Native Saleor
Promotions Yes Native Saleor
Inventory Yes Native Saleor

Bottom line: Saleor is a solid commerce engine but requires third-party services or custom development for reviews and abandoned cart recovery.