platform-types 1.10.728 → 1.10.729

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -74,11 +74,16 @@ declare global {
74
74
  * `'queued'` — accepted for delivery, not yet handed to the transport.
75
75
  * `'sent'` — the transport ACCEPTED it; acceptance is never proof of inbox
76
76
  * placement. `'failed'` — the transport refused or errored. `'skipped'` — the
77
- * segment matched the recipient but the recipient was not eligible at send
78
- * time (no marketing consent for the channel, or a suppressed address).
77
+ * segment matched the recipient but the send was withheld at send time: the
78
+ * recipient was not eligible (no marketing consent for the channel, no
79
+ * address, a suppressed address, a customer that no longer exists), the
80
+ * campaign was cancelled, or the store had its Marketing module switched off
81
+ * (`reason: 'MODULE_OFF'`). `CampaignRecipient.reason` carries which.
79
82
  *
80
83
  * ⚠️ `'skipped'` is a REFUSAL that was honoured, not a delivery problem:
81
- * never retry it, and never roll it into a failure rate.
84
+ * never retry it, and never roll it into a failure rate. A `'MODULE_OFF'`
85
+ * skip is the STORE'S choice, not the customer's — group on `reason` before
86
+ * reading a skip as a consent refusal.
82
87
  */
83
88
  type CampaignRecipientStatus = 'queued' | 'sent' | 'failed' | 'skipped';
84
89
  /**
@@ -548,8 +553,9 @@ declare global {
548
553
  /**
549
554
  * `'queued'` — accepted, not yet handed to a transport. `'sent'` — handed
550
555
  * over. `'failed'` — the transport refused or errored. `'skipped'` — the rule
551
- * matched but the send was withheld, by the frequency cap or by a live
552
- * consent re-check.
556
+ * matched but the send was withheld, by the frequency cap, by a live
557
+ * consent re-check, or because the store had its Marketing module switched
558
+ * off (`reason: 'MODULE_OFF'`, a store choice rather than a customer's).
553
559
  *
554
560
  * Deliberately the same four values as {@link CampaignRecipientStatus}, and
555
561
  * deliberately a SEPARATE type rather than an alias: the two vocabularies
package/dist/store.d.ts CHANGED
@@ -917,7 +917,7 @@ declare global {
917
917
  * `409 STORE_MODULE_BALANCE_CHECK_INCOMPLETE` when the bounded read could
918
918
  * not finish).
919
919
  *
920
- * Enforced on the server for four modules only:
920
+ * Enforced on the server for six modules only:
921
921
  * - `promotions` — applying one is refused `PROMOTION_NOT_ACTIVE` (the
922
922
  * existing promotion refusal, not `STORE_MODULE_DISABLED`), a grant already
923
923
  * frozen on a cart stays on the row but derives no money (its
@@ -934,6 +934,11 @@ declare global {
934
934
  * - `multiWarehouse` — every sale resolves to the primary depósito (a
935
935
  * scoped operator's sale to their own home depósito when the primary is
936
936
  * outside their scope), and only the primary feeds MercadoLibre.
937
+ * - `loyalty` — the automatic earn credits nothing (the `loyalty-earn`
938
+ * worker skips it, including one queued before the switch). The
939
+ * operator's `POST /loyalty/earn` and every read stay reachable.
940
+ * - `marketing` — automation and campaign sends go out to nobody: each is
941
+ * settled `'skipped'` with reason `MODULE_OFF` at its send worker.
937
942
  * Every other module is hide-only: its endpoints stay reachable. Public
938
943
  * reads carry only `appointments`, `surveys`, `promotions` and
939
944
  * `customerAccounts`. `PUT /platform/stores/{storeId}` refuses the leaf.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "platform-types",
3
- "version": "1.10.728",
3
+ "version": "1.10.729",
4
4
  "description": "Shared wire and entity contracts for the platform.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",