Create pbs-woocommerce-store.md via n8n

This commit is contained in:
herbygitea 2026-03-29 23:53:29 +00:00
parent 5375d1e06f
commit 0d57f76f77

View File

@ -0,0 +1,246 @@
---
project: pbs-woocommerce-store
type: project-plan
status: active
tags:
- pbs
- wordpress
- woocommerce
- ecommerce
- stripe
- automation
- n8n
- staging
- production
created: 2026-03-20
updated: 2026-03-20
path: 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*