chore: complete M1.1 runtime QA and release packaging
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# ADR 001 – No Custom Tables in v1
|
||||
|
||||
**Status**: Accepted
|
||||
|
||||
## Context
|
||||
|
||||
Wishlist/compare/Q&A/banners could use custom tables for performance. Customs add migration/upgrade burden and risk for a commercial theme sold on RTL-Theme where host environments vary.
|
||||
|
||||
## Decision
|
||||
|
||||
Store all v1 data in WP primitives: CPT (`xshop_banner`, `xshop_qa`), `wp_usermeta` + cookies for wishlist/compare, single option `xshop_settings`. No custom tables.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Simpler install/uninstall, no `dbDelta` fragility.
|
||||
- Query performance acceptable at ≤100k products; revisit if profiling shows bottleneck.
|
||||
- Future ADR can introduce tables with migration path.
|
||||
@@ -0,0 +1,17 @@
|
||||
# ADR 002 – REST API as Primary for AJAX
|
||||
|
||||
**Status**: Accepted
|
||||
|
||||
## Context
|
||||
|
||||
Search/filter/wishlist/compare/Q&A need async endpoints. `admin-ajax.php` is uncacheable and fires `admin_init`. REST is cache-friendly and has `permission_callback`.
|
||||
|
||||
## Decision
|
||||
|
||||
- REST (`xshop/v1/*`) for search, filter, wishlist, compare, Q&A.
|
||||
- Keep `admin-ajax` only where WC core expects it (cart fragments/mini-cart) or as fallback.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Requires nonce via `X-WP-Nonce` + localized `wpApiSettings` or custom `xshopData.nonce`.
|
||||
- Better compatibility with caching plugins; clearer permission model.
|
||||
Reference in New Issue
Block a user