PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.16
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.16
1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 1.9.14 1.9.13 All 162 releases
woocommerce-pos / CONTEXT.md

CONTEXT.md in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.16, at CONTEXT.md

57 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 # WCPOS Free Plugin
2
3 Domain language for the `woocommerce-pos` WordPress plugin — the server-side foundation for WCPOS. Terms here are binding for code, docs, and reviews; architecture reviews and grilling sessions update this file as concepts crystallize.
4
5 ## Language
6
7 ### Settings
8
9 **Settings**:
10 User-configurable intent stored in `woocommerce_pos_settings_*` options and read through the Settings module. Distinct from Plugin State.
11 _Avoid_: options, config, preferences
12
13 **Settings Section**:
14 The unit that owns one settings group end to end: schema, defaults, sanitization, secret redaction, merge strategy, and (when not option-backed) custom read/write behaviour. Nine exist: general, checkout, tax_ids, payment_gateways, tools, visibility, cloud_print, access (role-backed), license (Pro-injected). Classes are named `{Id}_Section`.
15 _Avoid_: settings group, settings schema, settings tab
16
17 **Section Registry**:
18 The seam where Settings Sections are registered. The free plugin registers its nine; Pro and extensions register theirs through it instead of hooking ad-hoc filters.
19 _Avoid_: section manager, settings factory
20
21 **Plugin State**:
22 Machine bookkeeping stored in options but not user intent: site UUID, JWT secret keys, install timestamp, DB version. Owned by the module that uses it (e.g. Auth owns its secret keys), never by the Settings module.
23 _Avoid_: settings (for these), internal options
24
25 ### Sync
26
27 **Collection Rule**:
28 One POS query behaviour for one collection — the params it claims, the clauses it contributes, the storage it targets — declared once in the Collection Rules module and applied identically on every read lane, so it cannot be wired into only one.
29 _Avoid_: query filter, orderby mapping, proxy mirror
30
31 **Read Lane**:
32 One of the two paths a collection read reaches the client by — the direct lane (`wcpos/v1` controllers, plus the flat `wcpos/v2` routes with no `wc/v3` proxy backing, e.g. `/variations`) and the proxy lane (`wcpos/v2``wc/v3`). Behaviour that exists on one lane only is a parity bug, not a design. (Code comments also say "lane" for the request shapes *within* one route — include lane, discovery lane; that narrower sense is not this term.)
33 _Avoid_: v1/v2 API, endpoint version
34
35 **Replica policy**:
36 What a collection's client-side copy aims to hold: `complete` (a full replica, e.g. products,
37 variations) or `windowed` (a bounded recent window of an unbounded set, e.g. orders).
38 _Avoid_: cache mode, sync mode
39
40 **Trickle**:
41 Low-priority idle seeding that pages a complete-replica collection down to the client until
42 it holds everything.
43 _Avoid_: background sync, prefetch
44
45 **Pointer stream**:
46 The journal-backed change signal (`/changes/sequence-log`): tiny id-pointers the client
47 filters and hydrates through the collection's read lane (the wc/v3 proxy — or the flat
48 route where the registry has no proxy lane, e.g. variations). The engine's single
49 transport paradigm.
50 _Avoid_: change feed, event stream
51
52 **Canonical revision**:
53 THE content fingerprint of a record — a sha256 over its schema-scoped, canonicalized wc/v3
54 serialization, computed at read time, never stored. The `baseRevision` a client echoes for
55 optimistic concurrency.
56 _Avoid_: version, hash (unqualified), rev
57