Create pbs-woocommerce-store.md via n8n
This commit is contained in:
parent
5375d1e06f
commit
0d57f76f77
246
PBS/Tech/Projects/pbs-woocommerce-store.md
Normal file
246
PBS/Tech/Projects/pbs-woocommerce-store.md
Normal 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*
|
||||
Loading…
Reference in New Issue
Block a user