Browse Source

docs: Add template for creating new WooCommerce implementation issue #7

Claude 5 months ago
parent
commit
40948d00c9
1 changed files with 447 additions and 0 deletions
  1. 447 0
      NEW_ISSUE_TEMPLATE.md

+ 447 - 0
NEW_ISSUE_TEMPLATE.md

@@ -0,0 +1,447 @@
+# New Issue Template for WooCommerce Restoration
+
+**Use this template to create a new issue when Gogs is available**
+
+---
+
+## Issue Title
+```
+Implementation Plan: Restore WooCommerce Integration Functionality
+```
+
+## Issue Labels
+```
+enhancement, woocommerce, high-priority, documentation
+```
+
+## Issue Body
+
+```markdown
+## Overview
+
+This issue contains the detailed step-by-step implementation plan for restoring full WooCommerce integration functionality, as requested in issue #7.
+
+## Summary
+
+The WooCommerce integration currently has OAuth authentication working but lacks the complete data synchronization features that exist for ShopRenter. This plan outlines implementing all missing components to achieve feature parity.
+
+## Current State
+
+### ✅ What's Working
+- OAuth 1.0a authentication flow (`oauth-woocommerce` Edge Function)
+- API client with HMAC-SHA256 signature generation
+- Frontend connection wizard UI
+- Store credentials storage in database
+
+### ❌ What's Missing
+- Data synchronization Edge Functions (products, orders, customers)
+- Database cache tables for WooCommerce data
+- Scheduled background sync (automated hourly)
+- Manual sync trigger from UI
+- Frontend components to display synced data
+- Webhook support for real-time updates
+
+## Estimated Effort
+
+**Total Time:** 58 hours
+**Calendar Time:** 7-10 business days (1-2 weeks)
+
+## Implementation Phases
+
+### Phase 1: Create Edge Functions for Data Sync (18 hours)
+
+**Deliverables:**
+1. `woocommerce-products` Edge Function
+   - Fetch products from WooCommerce API with pagination
+   - Cache products in `woocommerce_products_cache` table
+   - Return product list to frontend
+   - Handle authentication and rate limiting
+
+2. `woocommerce-orders` Edge Function
+   - Fetch orders with status filtering
+   - Cache orders in `woocommerce_orders_cache` table
+   - Support pagination for large stores
+   - Extract customer and line item data
+
+3. `woocommerce-customers` Edge Function
+   - Fetch customer data from WooCommerce
+   - Cache in `woocommerce_customers_cache` table
+   - Store billing information
+   - Handle customer search and filtering
+
+4. `woocommerce-sync` Edge Function (Manual Sync)
+   - Accept store_id parameter
+   - Sync products, orders, and customers in parallel
+   - Update last_synced_at timestamp
+   - Return sync summary with counts
+
+**Estimated Time:** 18 hours
+
+---
+
+### Phase 2: Create Database Tables (3 hours)
+
+**Migration File:** `supabase/migrations/20250130_woocommerce_cache_tables.sql`
+
+**Tables to Create:**
+
+1. `woocommerce_products_cache`
+   - Stores cached product data from WooCommerce
+   - Includes: name, SKU, price, stock, images, categories
+   - Indexed by store_id and SKU
+
+2. `woocommerce_orders_cache`
+   - Stores cached order data
+   - Includes: order number, status, customer info, line items
+   - Indexed by store_id, status, and customer_email
+
+3. `woocommerce_customers_cache`
+   - Stores cached customer data
+   - Includes: name, email, billing info
+   - Indexed by store_id and email
+
+**Additional Changes:**
+- Add sync tracking columns to `stores` table:
+  - `last_sync_at` (timestamp)
+  - `sync_status` (text)
+  - `sync_error` (text)
+
+**Estimated Time:** 3 hours
+
+---
+
+### Phase 3: Scheduled Sync Implementation (8 hours)
+
+**Deliverables:**
+1. `woocommerce-scheduled-sync` Edge Function
+   - Triggered by pg_cron scheduler
+   - Fetch all WooCommerce stores with sync enabled
+   - Sync each store's data sequentially
+   - Log results to `sync_logs` table
+   - Handle rate limiting across multiple stores
+   - Secured with INTERNAL_SYNC_SECRET
+
+2. Database Configuration
+   - Create pg_cron job for hourly execution
+   - Reuse existing `store_sync_config` table
+   - Add WooCommerce stores to sync schedule
+   - Configure per-store sync frequency
+
+**Estimated Time:** 8 hours
+
+---
+
+### Phase 4: Frontend Integration (8 hours)
+
+**Deliverables:**
+1. Update `IntegrationsContent.tsx`
+   - Add "Sync Now" button for manual sync
+   - Display last sync time for each store
+   - Show sync status indicators
+   - Handle sync in progress state
+
+2. Create Data Display Components
+   - `WooCommerceProducts.tsx` - Display cached products
+   - `WooCommerceOrders.tsx` - Display cached orders
+   - `WooCommerceCustomers.tsx` - Display cached customers
+
+3. Dashboard Integration
+   - Show WooCommerce activity in dashboard
+   - Display sync status on main page
+   - Add WooCommerce metrics to analytics
+
+**Estimated Time:** 8 hours
+
+---
+
+### Phase 5: Webhook Support (10 hours) - OPTIONAL
+
+**Deliverables:**
+1. `webhook-woocommerce` Edge Function
+   - Receive webhooks from WooCommerce stores
+   - Verify webhook signatures
+   - Update cached data in real-time
+   - Support events: order.created, order.updated, product.updated
+
+2. Webhook Registration
+   - Auto-register webhooks on store connect
+   - Store webhook IDs in `woocommerce_webhooks` table
+   - Provide webhook management UI
+
+**Estimated Time:** 10 hours
+
+---
+
+## Testing Requirements
+
+### Unit Tests (2 hours)
+- [ ] Test OAuth signature generation
+- [ ] Test API client error handling
+- [ ] Test rate limiting logic
+- [ ] Test product sync with pagination
+- [ ] Test order filtering by status
+- [ ] Test customer data mapping
+
+### Integration Tests (3 hours)
+- [ ] End-to-end OAuth flow
+- [ ] Complete sync cycle (products → orders → customers)
+- [ ] Scheduled sync execution
+- [ ] Webhook reception and processing
+- [ ] Frontend data display
+
+### Manual Testing (3 hours)
+- [ ] Connect a test WooCommerce store
+- [ ] Trigger manual sync
+- [ ] Verify data in cache tables
+- [ ] Check sync logs for errors
+- [ ] Test with stores having 100+ products
+- [ ] Test with stores having 0 products
+- [ ] Verify rate limiting doesn't cause failures
+- [ ] Test disconnect and reconnect flow
+
+**Total Testing Time:** 8 hours
+
+---
+
+## Documentation (3 hours)
+
+### Developer Documentation
+- [ ] API documentation for all new Edge Functions
+- [ ] Database schema documentation
+- [ ] Webhook setup guide
+- [ ] Troubleshooting guide
+
+### User Documentation
+- [ ] How to connect WooCommerce store
+- [ ] How to trigger manual sync
+- [ ] Understanding sync status
+- [ ] FAQ for WooCommerce integration
+
+**Total Documentation Time:** 3 hours
+
+---
+
+## Deployment Plan
+
+### Pre-Deployment
+1. Create staging environment for testing
+2. Deploy to staging and run full test suite
+3. Monitor Edge Function logs for errors
+4. Verify pg_cron jobs are scheduled correctly
+
+### Deployment Steps
+
+**1. Database Migration**
+```bash
+supabase db push
+# Or apply migration to production
+supabase migration up
+```
+
+**2. Deploy Edge Functions**
+```bash
+supabase functions deploy woocommerce-products
+supabase functions deploy woocommerce-orders
+supabase functions deploy woocommerce-customers
+supabase functions deploy woocommerce-sync
+supabase functions deploy woocommerce-scheduled-sync
+supabase functions deploy webhook-woocommerce  # if Phase 5 included
+```
+
+**3. Set Environment Variables**
+Ensure these are set in Supabase Dashboard:
+- `INTERNAL_SYNC_SECRET`
+- `SUPABASE_URL`
+- `SUPABASE_ANON_KEY`
+- `SUPABASE_SERVICE_ROLE_KEY`
+
+**4. Configure Database Settings**
+Add to Custom Postgres Configuration:
+```
+app.internal_sync_secret = '<secret>'
+app.supabase_url = 'https://ztklqodcdjeqpsvhlpud.supabase.co'
+```
+
+**5. Deploy Frontend Changes**
+```bash
+cd shopcall.ai-main
+npm run build
+# Deploy to hosting provider
+```
+
+### Post-Deployment
+1. Monitor Edge Function logs
+2. Check sync_logs table
+3. Verify pg_cron jobs running
+4. Test with 2-3 real stores
+5. Set up alerts for sync failures
+
+---
+
+## Success Criteria
+
+This implementation is considered complete when:
+
+1. ✅ All Edge Functions are deployed and functional
+2. ✅ Database migrations are applied successfully
+3. ✅ Manual sync works from frontend UI
+4. ✅ Scheduled sync runs automatically every hour
+5. ✅ Sync logs show successful execution history
+6. ✅ Frontend displays WooCommerce products, orders, customers
+7. ✅ All tests pass (unit + integration)
+8. ✅ Documentation is complete and published
+9. ✅ At least 3 real WooCommerce stores tested successfully
+10. ✅ Code reviewed and approved by team
+
+---
+
+## Risk Assessment
+
+### Technical Risks
+
+1. **Rate Limiting** (Medium)
+   - WooCommerce API has rate limits
+   - Mitigation: Implement exponential backoff, cache aggressively
+
+2. **Large Store Performance** (Medium)
+   - Stores with 10,000+ products may timeout
+   - Mitigation: Implement batch processing, background jobs
+
+3. **OAuth Token Expiration** (Low)
+   - API keys don't expire, but user might revoke
+   - Mitigation: Test connection before sync, handle 401 errors
+
+4. **Webhook Reliability** (Low)
+   - Webhooks may fail or duplicate
+   - Mitigation: Idempotent webhook handling, verify signatures
+
+---
+
+## Dependencies
+
+### External Dependencies
+- WooCommerce REST API v3
+- Supabase Edge Functions runtime
+- PostgreSQL with pg_cron extension
+- Deno runtime for Edge Functions
+
+### Internal Dependencies
+- `stores` table exists and has WooCommerce stores
+- `oauth_states` table for OAuth flow
+- `sync_logs` table for logging (reuse existing)
+- `store_sync_config` table for per-store settings (reuse existing)
+
+---
+
+## Rollback Plan
+
+If issues arise after deployment:
+
+1. **Disable Scheduled Sync**
+   ```sql
+   SELECT cron.unschedule('woocommerce-sync-hourly');
+   ```
+
+2. **Disable Manual Sync** (frontend)
+   - Hide "Sync Now" button temporarily
+   - Display maintenance message
+
+3. **Rollback Database Migration**
+   ```bash
+   supabase migration down
+   ```
+
+4. **Rollback Edge Functions**
+   - Deploy previous version or delete new functions
+
+---
+
+## Detailed Documentation
+
+The complete implementation plan with full technical specifications is available in the repository:
+
+**File:** `WOOCOMMERCE_RESTORATION_PLAN.md`
+
+**Location:** Repository root
+
+**Contents:**
+- 689 lines of detailed specifications
+- Complete TypeScript function signatures
+- Full database schemas with CREATE TABLE statements
+- API endpoint documentation with request/response formats
+- Comprehensive testing checklist
+- Step-by-step deployment instructions
+- Risk assessment and mitigation strategies
+- Rollback procedures
+- Future enhancement roadmap
+
+---
+
+## References
+
+- **Existing Implementation:** ShopRenter integration (`supabase/functions/shoprenter-*`)
+- **WooCommerce API Docs:** https://woocommerce.github.io/woocommerce-rest-api-docs/
+- **OAuth 1.0a Spec:** https://oauth.net/core/1.0a/
+- **Supabase Edge Functions:** https://supabase.com/docs/guides/functions
+- **pg_cron Documentation:** https://github.com/citusdata/pg_cron
+
+---
+
+## Related Issues
+
+- Closes #7 upon completion
+- Requested in: #7 (create step-by-step implementation plan)
+
+---
+
+## Next Steps
+
+1. ✅ Review this implementation plan
+2. Create subtasks for each phase (optional)
+3. Set up staging environment
+4. Begin Phase 1 implementation
+5. Close issue #7 (plan creation completed)
+
+---
+
+**Created By:** Claude Code Assistant
+**Date:** 2025-01-30
+**Full Plan:** See `WOOCOMMERCE_RESTORATION_PLAN.md` in repository
+**Summary:** See `ISSUE_7_RESOLUTION.md` in repository
+```
+
+---
+
+## Comment to Post on Issue #7
+
+After creating the new issue, post this comment on issue #7:
+
+```markdown
+✅ **Implementation plan created as requested**
+
+A comprehensive step-by-step implementation plan has been created for restoring WooCommerce integration functionality.
+
+**New Issue Created:** #[NEW_ISSUE_NUMBER]
+
+**Plan Documents:**
+- `WOOCOMMERCE_RESTORATION_PLAN.md` - Full 689-line implementation plan
+- `ISSUE_7_RESOLUTION.md` - Summary of work done
+- `NEW_ISSUE_TEMPLATE.md` - Template for manual issue creation
+
+**Commits:**
+- cf26971 - Implementation plan
+- f1093b8 - Resolution summary
+
+**Next Steps:**
+1. Review the implementation plan in the new issue
+2. Approve and begin Phase 1 implementation
+3. This issue can now be closed
+
+**Closing this issue as the requested deliverable (step-by-step implementation plan in a new issue) has been completed.**
+```
+
+Then close issue #7.
+
+---
+
+**End of Template**