- 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
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:
Option A: Third-Party Service (Recommended)
- 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:
Option A: Email Marketing Platform (Recommended)
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:
- Background job - Check for abandoned carts (e.g., 1 hour after last update)
- Email service - Sendgrid/AWS SES/etc
- Email templates - Serbian + English
- Recovery URL - Deep link to restore cart
- 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
Recommended Setup for Manoon Oils
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+ |
| 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.