10 KiB
| project | type | status | tags | created | updated | path | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| pbs-woocommerce-store | project-plan | active |
|
2026-03-20 | 2026-03-20 | PBS/Tech/Projects/ |
WooCommerce Cookbook Store — Project Plan
Project Goal
Add a commerce section to plantbasedsoutherner.com to sell Jenny's first cookbook (digital + physical), using a lean WooCommerce setup with free plugins only. This is a stepping stone — designed to launch quickly while preserving a clean migration path to a custom-built commerce solution in the future.
Key Decisions Made
- WooCommerce over Shopify — keeps the Sunnies on-site for a seamless brand experience, no monthly platform fees, full data ownership
- Lean plugin approach — WooCommerce core + free official extensions only, no premium plugin dependencies for Phase 1
- Stripe as primary payment processor — free WooCommerce integration, supports credit cards, Apple Pay, Google Pay
- PayPal as secondary option — free WooCommerce integration, covers buyers who prefer PayPal
- Staging first, always — full deployment and testing on staging before production
- Future-proof mindset — all product/order data lives in MySQL, making eventual migration to a custom Flask/Go/Rust backend straightforward
Architecture Overview
Sunnies browse → plantbasedsoutherner.com/shop (WordPress + WooCommerce)
↓
Add to cart → still on PBS site
↓
Checkout → still on PBS site
↓
Payment → Stripe handles card processing behind the scenes
↓
Order complete → WooCommerce stores order, triggers n8n webhooks
↓
n8n automation → confirmation emails, alerts, digital delivery
Long-Term Vision
WooCommerce is the temporary tenant. The long-term plan is a custom commerce backend (Flask, Go, or Rust) with direct Stripe API integration. Key principles:
- Product and order data stays in MySQL — portable regardless of frontend
- n8n automations are backend-agnostic (webhook-triggered)
- Traefik routing can point to any service, not WooCommerce-specific
- When ready, swap the engine without rebuilding the infrastructure
Phase 1: WooCommerce Core Setup (Staging)
Goal: Get a working cookbook store on staging.plantbasedsoutherner.com
1.1 Install & Configure WooCommerce
- Install WooCommerce plugin on staging
- Run the setup wizard (store address, currency, product types)
- Configure general settings (timezone, currency display, measurements)
- Set store pages (shop, cart, checkout, my account)
- Disable WooCommerce features we don't need yet (reviews, coupons, etc.) to keep it lean
1.2 Redis Cache Configuration
- Configure WooCommerce cart/checkout pages to bypass Redis object cache
- Add cache exclusion rules for WooCommerce session cookies (
woocommerce_cart_hash,woocommerce_items_in_cart,wp_woocommerce_session_*) - Test that cart persists across page loads (cache bypass working)
- Flush Redis cache after WooCommerce installation
1.3 Payment Gateway Setup
- Create Stripe account for PBS (if not already existing)
- Install WooCommerce Stripe Gateway (free official plugin)
- Configure Stripe in test mode on staging
- Install WooCommerce PayPal Payments (free official plugin)
- Configure PayPal in sandbox mode on staging
- Test both payment methods with test card numbers
1.4 Product Setup — Jenny's Cookbook
- Create product: Physical cookbook (simple product, requires shipping)
- Create product: Digital cookbook — PDF (downloadable product)
- Optional: Create bundled product (physical + digital combo)
- Upload product images (Jenny to provide)
- Write product descriptions (Jenny to provide or review)
- Configure pricing
- Set up shipping zones and rates for physical book
- Configure digital download settings (download limits, link expiry)
1.5 Store Design & Integration
- Create/customize shop page with Elementor to match PBS branding
- Style cart and checkout pages to match site aesthetic
- Add "Shop" link to main site navigation
- Ensure mobile responsiveness (Sunnies likely shopping from Instagram links)
- Test full purchase flow on mobile and desktop
Phase 2: n8n Order Automation
Goal: Automate order processing workflows via n8n
2.1 WooCommerce Webhook Setup
- Configure WooCommerce webhook for
order.completed→ n8n - Configure WooCommerce webhook for
order.created→ n8n (for alerts) - Verify webhook payload structure
2.2 n8n Workflow: Order Notifications
- Build workflow: new order → Google Chat notification to Travis
- Build workflow: new order → summary notification to Jenny (email or preferred channel)
- Include order details: product, amount, shipping info (if physical)
2.3 n8n Workflow: Digital Delivery (Optional Enhancement)
- Evaluate if WooCommerce's built-in digital delivery is sufficient
- If custom delivery needed: n8n workflow to send personalized delivery email via MailerLite or Google Workspace
- Track download completions
2.4 n8n Workflow: Order Dashboard Sync (Future)
- Sync order data to a reporting table in
pbs_automationMySQL database - Enables future custom dashboards without querying WooCommerce directly
Phase 3: Production Deployment
Goal: Move tested store to production
3.1 Pre-Production Checklist
- All staging tests pass (payment, cart, checkout, email, webhooks)
- Jenny has reviewed and approved product pages
- Stripe switched from test mode to live mode
- PayPal switched from sandbox to live mode
- Shipping rates verified
- Tax configuration reviewed (may need research for PBS's specific situation)
- Privacy policy and terms of sale updated on site
- WooCommerce email templates customized with PBS branding
3.2 Production Deployment
- Install WooCommerce on production
- Replicate all staging configuration
- Apply Redis cache exclusions on production
- Configure live payment gateways
- Create products (or export/import from staging)
- Connect n8n production webhooks
- Test one real transaction (buy your own cookbook!)
3.3 Launch
- Add shop to site navigation
- Jenny announces cookbook launch on Instagram
- Monitor first orders closely for any issues
- Verify n8n automations fire correctly
Phase 4: Expand Product Catalog (6+ Months)
Goal: Add meal plans, merch, and other digital products as Jenny is ready
- Evaluate: WooCommerce extensions vs custom PBS-API endpoints per product type
- Add new products as needed
- Consider: Sunnie merch store (t-shirts, kitchen items)
- Consider: Downloadable meal plans / recipe collections
- Assess if WooCommerce is still serving us or if it's time to start the custom build
Phase 5: Custom Commerce Platform (Future)
Goal: Replace WooCommerce with a custom-built solution
- Choose framework (Flask, Go, or Rust based on Travis's preference at that time)
- Direct Stripe API integration (no plugin middleman)
- Direct PayPal API integration
- Migrate product data from WooCommerce MySQL tables
- Migrate order history
- Build admin UI for Jenny (product management, order viewing)
- Retire WooCommerce
Plugin List (Free Only)
| Plugin | Purpose | Cost |
|---|---|---|
| WooCommerce | Core commerce engine | Free |
| WooCommerce Stripe Gateway | Credit card, Apple Pay, Google Pay | Free |
| WooCommerce PayPal Payments | PayPal checkout option | Free |
That's it. Three free plugins. No premium dependencies for Phase 1.
Infrastructure Considerations
Linode Resources
- 2GB should handle initial cookbook sales volume
- Monitor memory usage after WooCommerce install (it adds overhead)
- If needed, upgrade to 4GB — WooCommerce + Redis + n8n + WordPress is a lot for 2GB under load
Docker / Traefik
- No changes needed to Traefik config — WooCommerce runs inside the existing WordPress container
- No new containers required for Phase 1
Database
- WooCommerce adds ~20+ tables to the WordPress database
- These are separate from
pbs_automation— no conflict with existing PBS-API data - Future migration: WooCommerce tables are well-documented, data extraction is straightforward
Security
- Stripe handles PCI compliance (card data never touches our server)
- WooCommerce checkout should be HTTPS-only (already handled by Traefik + Let's Encrypt)
- Consider adding Wordfence WooCommerce-specific rules
Key Risks & Mitigations
| Risk | Mitigation |
|---|---|
| WooCommerce performance on 2GB Linode | Monitor closely, upgrade if needed |
| Redis cache interfering with cart/checkout | Configure cache exclusions before testing |
| Plugin update breaks something | Test updates on staging first, always |
| Scope creep into paid plugins | Hard rule: free plugins only for Phase 1 |
| Tax complexity | Research early, may need free tax config or manual rates |
Discussion Points Captured
- WordPress regret is real — WooCommerce is a pragmatic compromise, not a long-term commitment
- Custom commerce is realistic — Flask/Go/Rust + Stripe API is a legitimate future project within Travis's skillset (estimated: a month of weekends)
- Shop Pay not available on WooCommerce — not a dealbreaker, Apple Pay + Google Pay + PayPal covers the same need
- Stripe handles all the scary payment stuff — PCI compliance, fraud, chargebacks. Our code just says "charge $24.99" and Stripe does the rest
- Data portability — all product/order data lives in MySQL and can be migrated when the custom build is ready
Next Steps
- Deploy WooCommerce on staging
- Configure Redis cache exclusions
- Set up Stripe test account
- Create cookbook products
- Test full purchase flow
Project: Plant Based Southerner — Commerce Created: March 20, 2026 Maintained by: Travis with Claude