pbs-projects/PBS/Tech/Projects/pbs-woocommerce-store.md

10 KiB

project type status tags created updated path
pbs-woocommerce-store project-plan active
pbs
wordpress
woocommerce
ecommerce
stripe
automation
n8n
staging
production
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_automation MySQL 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

  1. Deploy WooCommerce on staging
  2. Configure Redis cache exclusions
  3. Set up Stripe test account
  4. Create cookbook products
  5. Test full purchase flow

Project: Plant Based Southerner — Commerce Created: March 20, 2026 Maintained by: Travis with Claude