chore: complete M1.1 runtime QA and release packaging

This commit is contained in:
XShop
2026-09-13 19:04:41 +03:30
commit f11e1d650d
66 changed files with 3094 additions and 0 deletions
+17
View File
@@ -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.
+17
View File
@@ -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.