dwindown 0c1f5d5047 docs: Critical audit and strategy documents
## Point 1: Addon Bridge Pattern 

Created ADDON_BRIDGE_PATTERN.md documenting:
- WooNooW Core = Zero addon dependencies
- Bridge snippet pattern for Rajaongkir compatibility
- Proper addon development approach
- Hook system usage

**Key Decision:**
-  No Rajaongkir integration in core
-  Provide bridge snippets for compatibility
-  Encourage proper WooNooW addons
-  Keep core clean and maintainable

---

## Point 2: Calculation Efficiency Audit 🚨 CRITICAL

Created CALCULATION_EFFICIENCY_AUDIT.md revealing:

**BLOATED Implementation Found:**
- 2 separate API calls (/shipping/calculate + /orders/preview)
- Cart initialized TWICE
- Shipping calculated TWICE
- Taxes calculated TWICE
- ~1000ms total time

**Recommended Solution:**
- Single /orders/calculate endpoint
- ONE cart initialization
- ONE calculation
- ~300ms total time (70% faster!)
- 50% fewer requests
- 50% less server load

**This is exactly what we discussed at the beginning:**
> "WooCommerce is bloated because of separate requests. We need efficient flow that handles everything at once."

**Current implementation repeats WooCommerce's mistake!**

**Status:**  NOT IMPLEMENTED YET
**Priority:** 🚨 CRITICAL
**Impact:** 🔥 HIGH - Performance bottleneck

---

## Point 3: Settings Placement Strategy 

Created SETTINGS_PLACEMENT_STRATEGY.md proposing:

**No separate "WooNooW Settings" page.**

Instead:
- Store Logo → WooCommerce > Settings > General
- Order Format → WooCommerce > Settings > Orders
- Product Settings → WooCommerce > Settings > Products
- UI Settings → WooCommerce > Settings > Admin UI (new tab)

**Benefits:**
- Contextual placement
- Familiar to users
- No clutter
- Seamless integration
- Feels native to WooCommerce

**Philosophy:**
WooNooW should feel like a native part of WooCommerce, not a separate plugin.

---

## Summary

**Point 1:**  Documented addon bridge pattern
**Point 2:** 🚨 CRITICAL - Current calculation is bloated, needs refactoring
**Point 3:**  Settings placement strategy documented

**Next Action Required:**
Implement unified /orders/calculate endpoint to fix performance bottleneck.
2025-11-10 20:24:23 +07:00

WooNooW

WooNooW is a modern experience layer for WooCommerce — enhancing UX, speed, and reliability without data migration.
It keeps WooCommerce as the core engine while providing a modern React-powered interface for both the storefront (cart, checkout, myaccount) and the admin (orders, dashboard).

Three Admin Modes:

  • Normal Mode: Traditional wp-admin integration (/wp-admin/admin.php?page=woonoow)
  • Fullscreen Mode: Distraction-free interface (toggle in header)
  • Standalone Mode: Complete standalone app at yoursite.com/admin with custom login

🔍 Background

WooCommerce is the most used ecommerce engine in the world, but its architecture has become heavy and fragmented.
With Reactbased blocks (Checkout, Cart, Product Edit) and HPOS now rolling out, many existing addons are becoming obsolete or unstable.
WooNooW bridges the gap between Woos legacy PHP system and the new modern stack — so users get performance and simplicity without losing compatibility.


🚀 Key Principles

  • No Migration Needed Woo data stays intact.
  • Safe Activate/Deactivate revert to native Woo anytime, no data loss.
  • Hybrid by Default SSR + React islands for Cart/Checkout/MyAccount.
  • Full SPA Toggle optional Reactonly mode for max performance.
  • HPOS Mandatory optimized datastore and async operations.
  • Compat Layer hook mirror + slot rendering for legacy addons.
  • Async Mail & Tasks powered by Action Scheduler.

🧱 Tech Stack

Layer Technology
Backend PHP 8.2+, WordPress, WooCommerce (HPOS), Action Scheduler
Frontend React 18 + TypeScript, Vite, React Query, Tailwind (optional)
Build & Package Composer, NPM, ESM scripts, Zip automation
Architecture Modular PSR4 classes, RESTdriven SPA islands

🧩 Project Structure

woonoow/
├── admin-spa/
│   ├── src/
│   │   ├── components/
│   │   │   ├── filters/
│   │   │   │   ├── DateRange.tsx
│   │   │   │   └── OrderBy.tsx
│   │   │   └── CommandPalette.tsx
│   │   ├── hooks/
│   │   │   └── useShortcuts.tsx
│   │   ├── lib/
│   │   │   ├── api.ts
│   │   │   ├── currency.ts
│   │   │   ├── dates.ts
│   │   │   ├── query-params.ts
│   │   │   ├── useCommandStore.ts
│   │   │   └── utils.ts
│   │   ├── pages/
│   │   │   └── orders/
│   │   │       ├── partials
│   │   │       │   └── OrderForm.tsx
│   │   │       ├── Orders.tsx
│   │   │       ├── OrdersNew.tsx
│   │   │       └── OrderShow.tsx
│   │   ├── routes/
│   │   │   └── Dashboard.tsx
│   │   ├── types/
│   │   │   └── qrcode.d.ts
│   │   ├── App.tsx
│   │   ├── index.css
│   │   └── main.tsx
│   └── vite.config.ts
├── includes/
│   ├── Admin/
│   │   ├── Assets.php
│   │   └── Menu.php
│   ├── Api/
│   │   ├── CheckoutController.php
│   │   ├── OrdersController.php
│   │   ├── Permissions.php
│   │   └── Routes.php
│   ├── Compat/
│   │   ├── HideWooMenus.php
│   │   └── HooksShim.php
│   └── Core/
│       ├── DataStores/
│       │   ├── OrderStore_HPOS.php
│       │   └── OrderStore.php
│       ├── Mail/
│       │   ├── MailQueue.php
│       │   └── WooEmailOverride.php
│       ├── Bootstrap.php
│       └── Features.php
├── woonoow.php
└── docs (project notes, SOP, etc.)

⚙️ Development Workflow

  1. LocalWP / Docker setup with WordPress + WooCommerce.
  2. Activate plugin: WooNooW should appear in the admin menu.
  3. Build SPAs:
    npm run build
    
  4. Package zip:
    npm run pack
    
  5. Upload dist/woonoow.zip into WordPress → Plugins → Add New → Upload.

🧭 Vision

“WooCommerce, reimagined for now.”

WooNooW delivers modern speed and UX while keeping WooCommerces ecosystem alive.
No migration. No lockin. Just Woo, evolved.


Description
No description provided
Readme 1.8 MiB
Languages
TypeScript 62.9%
PHP 34.2%
HTML 2.3%
CSS 0.4%
JavaScript 0.2%