@cogenta/commerce 0.2.0 → 0.4.3
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.
- package/dist/admin/permissions.d.ts +8 -0
- package/dist/admin/permissions.d.ts.map +1 -1
- package/dist/admin/permissions.js +1 -0
- package/dist/admin/permissions.js.map +1 -1
- package/dist/admin/router.d.ts +47 -5
- package/dist/admin/router.d.ts.map +1 -1
- package/dist/admin/router.js +942 -24
- package/dist/admin/router.js.map +1 -1
- package/dist/cart/store.d.ts +23 -0
- package/dist/cart/store.d.ts.map +1 -1
- package/dist/cart/store.js +49 -2
- package/dist/cart/store.js.map +1 -1
- package/dist/catalog/csv.d.ts +29 -0
- package/dist/catalog/csv.d.ts.map +1 -0
- package/dist/catalog/csv.js +396 -0
- package/dist/catalog/csv.js.map +1 -0
- package/dist/catalog/store.d.ts +24 -4
- package/dist/catalog/store.d.ts.map +1 -1
- package/dist/catalog/store.js +238 -11
- package/dist/catalog/store.js.map +1 -1
- package/dist/catalog/types.d.ts +92 -0
- package/dist/catalog/types.d.ts.map +1 -1
- package/dist/catalog/types.js +20 -0
- package/dist/catalog/types.js.map +1 -1
- package/dist/coupon/store.d.ts +63 -5
- package/dist/coupon/store.d.ts.map +1 -1
- package/dist/coupon/store.js +140 -7
- package/dist/coupon/store.js.map +1 -1
- package/dist/customer/store.d.ts +17 -0
- package/dist/customer/store.d.ts.map +1 -1
- package/dist/customer/store.js +26 -0
- package/dist/customer/store.js.map +1 -1
- package/dist/index.d.ts +18 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/invoice/credit-note.d.ts +45 -0
- package/dist/invoice/credit-note.d.ts.map +1 -0
- package/dist/invoice/credit-note.js +109 -0
- package/dist/invoice/credit-note.js.map +1 -0
- package/dist/invoice/sequence.d.ts +21 -0
- package/dist/invoice/sequence.d.ts.map +1 -0
- package/dist/invoice/sequence.js +64 -0
- package/dist/invoice/sequence.js.map +1 -0
- package/dist/invoice/store.d.ts +23 -1
- package/dist/invoice/store.d.ts.map +1 -1
- package/dist/invoice/store.js +23 -56
- package/dist/invoice/store.js.map +1 -1
- package/dist/order/csv.d.ts +24 -0
- package/dist/order/csv.d.ts.map +1 -0
- package/dist/order/csv.js +42 -0
- package/dist/order/csv.js.map +1 -0
- package/dist/order/notify.d.ts +65 -0
- package/dist/order/notify.d.ts.map +1 -0
- package/dist/order/notify.js +180 -0
- package/dist/order/notify.js.map +1 -0
- package/dist/order/store.d.ts +58 -1
- package/dist/order/store.d.ts.map +1 -1
- package/dist/order/store.js +145 -10
- package/dist/order/store.js.map +1 -1
- package/dist/order/types.d.ts +35 -1
- package/dist/order/types.d.ts.map +1 -1
- package/dist/order/types.js +2 -0
- package/dist/order/types.js.map +1 -1
- package/dist/payment/paypal.d.ts +9 -0
- package/dist/payment/paypal.d.ts.map +1 -0
- package/dist/payment/paypal.js +583 -0
- package/dist/payment/paypal.js.map +1 -0
- package/dist/payment/registry.d.ts +15 -6
- package/dist/payment/registry.d.ts.map +1 -1
- package/dist/payment/registry.js +17 -6
- package/dist/payment/registry.js.map +1 -1
- package/dist/payment/types.d.ts +6 -0
- package/dist/payment/types.d.ts.map +1 -1
- package/dist/shipping/store.d.ts +29 -3
- package/dist/shipping/store.d.ts.map +1 -1
- package/dist/shipping/store.js +68 -4
- package/dist/shipping/store.js.map +1 -1
- package/dist/subscription/renewal-notifier.d.ts +17 -0
- package/dist/subscription/renewal-notifier.d.ts.map +1 -0
- package/dist/subscription/renewal-notifier.js +33 -0
- package/dist/subscription/renewal-notifier.js.map +1 -0
- package/dist/subscription/store.d.ts +126 -3
- package/dist/subscription/store.d.ts.map +1 -1
- package/dist/subscription/store.js +348 -8
- package/dist/subscription/store.js.map +1 -1
- package/dist/tables.d.ts +17 -0
- package/dist/tables.d.ts.map +1 -1
- package/dist/tables.js +273 -0
- package/dist/tables.js.map +1 -1
- package/dist/tax/store.d.ts +20 -0
- package/dist/tax/store.d.ts.map +1 -1
- package/dist/tax/store.js +51 -7
- package/dist/tax/store.js.map +1 -1
- package/package.json +3 -2
package/dist/catalog/store.js
CHANGED
|
@@ -1,7 +1,43 @@
|
|
|
1
|
-
import { CogentaError, identifier, limit, newId, sql, } from '@cogenta/core';
|
|
1
|
+
import { CogentaError, identifier, limit, newId, sql, unsafeRaw, } from '@cogenta/core';
|
|
2
2
|
import { assertCurrency, assertMinor } from '../money.js';
|
|
3
|
-
import { fromBool, toBool, toInt, toNullableText, toText } from '../rows.js';
|
|
3
|
+
import { fromBool, toBool, toInt, toNullableInt, toNullableText, toText } from '../rows.js';
|
|
4
4
|
import { TABLES } from '../tables.js';
|
|
5
|
+
/**
|
|
6
|
+
* `image_media_ids` is a JSON array of strings, stored as text (see
|
|
7
|
+
* `tables.ts`). A row written before this column existed, or a value this
|
|
8
|
+
* package did not itself write, decodes to "no images" rather than throwing
|
|
9
|
+
* — a gallery is not load-bearing data the way a price or a stock count is.
|
|
10
|
+
*/
|
|
11
|
+
function toStringArray(value) {
|
|
12
|
+
if (value === null || value === undefined)
|
|
13
|
+
return [];
|
|
14
|
+
const text = typeof value === 'string' ? value : String(value);
|
|
15
|
+
if (text.trim() === '')
|
|
16
|
+
return [];
|
|
17
|
+
try {
|
|
18
|
+
const parsed = JSON.parse(text);
|
|
19
|
+
return Array.isArray(parsed)
|
|
20
|
+
? parsed.filter((item) => typeof item === 'string')
|
|
21
|
+
: [];
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/** Trims, drops empties, and de-duplicates while keeping the first
|
|
28
|
+
* occurrence's position — the order a merchant arranged the gallery in. */
|
|
29
|
+
function normalizeImageIds(ids) {
|
|
30
|
+
const seen = new Set();
|
|
31
|
+
const result = [];
|
|
32
|
+
for (const id of ids) {
|
|
33
|
+
const trimmed = id.trim();
|
|
34
|
+
if (trimmed === '' || seen.has(trimmed))
|
|
35
|
+
continue;
|
|
36
|
+
seen.add(trimmed);
|
|
37
|
+
result.push(trimmed);
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
5
41
|
function decodeProduct(row) {
|
|
6
42
|
const collection = toNullableText(row.content_collection);
|
|
7
43
|
const entryId = toNullableText(row.content_entry_id);
|
|
@@ -12,6 +48,7 @@ function decodeProduct(row) {
|
|
|
12
48
|
title: toText(row.title, 'product.title'),
|
|
13
49
|
status: toText(row.status, 'product.status'),
|
|
14
50
|
contentRef: ref,
|
|
51
|
+
imageMediaIds: toStringArray(row.image_media_ids),
|
|
15
52
|
createdAt: toText(row.created_at, 'product.created_at'),
|
|
16
53
|
updatedAt: toText(row.updated_at, 'product.updated_at'),
|
|
17
54
|
};
|
|
@@ -29,10 +66,31 @@ function decodeVariant(row) {
|
|
|
29
66
|
weightGrams: toInt(row.weight_grams, 'variant.weight_grams'),
|
|
30
67
|
taxCategory: toText(row.tax_category, 'variant.tax_category'),
|
|
31
68
|
position: toInt(row.position, 'variant.position'),
|
|
69
|
+
lowStockThreshold: toNullableInt(row.low_stock_threshold, 'variant.low_stock_threshold'),
|
|
70
|
+
compareAtPriceMinor: toNullableInt(row.compare_at_price_minor, 'variant.compare_at_price_minor'),
|
|
71
|
+
saleStartsAt: toNullableText(row.sale_starts_at),
|
|
72
|
+
saleEndsAt: toNullableText(row.sale_ends_at),
|
|
73
|
+
widthMm: toNullableInt(row.width_mm, 'variant.width_mm'),
|
|
74
|
+
heightMm: toNullableInt(row.height_mm, 'variant.height_mm'),
|
|
75
|
+
depthMm: toNullableInt(row.depth_mm, 'variant.depth_mm'),
|
|
76
|
+
imageMediaId: toNullableText(row.image_media_id),
|
|
32
77
|
createdAt: toText(row.created_at, 'variant.created_at'),
|
|
33
78
|
updatedAt: toText(row.updated_at, 'variant.updated_at'),
|
|
34
79
|
};
|
|
35
80
|
}
|
|
81
|
+
function decodeStockMovement(row) {
|
|
82
|
+
return {
|
|
83
|
+
id: toText(row.id, 'stockMovement.id'),
|
|
84
|
+
variantId: toText(row.variant_id, 'stockMovement.variant_id'),
|
|
85
|
+
delta: toInt(row.delta, 'stockMovement.delta'),
|
|
86
|
+
balanceAfter: toInt(row.balance_after, 'stockMovement.balance_after'),
|
|
87
|
+
reason: toText(row.reason, 'stockMovement.reason'),
|
|
88
|
+
actorId: toNullableText(row.actor_id),
|
|
89
|
+
referenceId: toNullableText(row.reference_id),
|
|
90
|
+
note: toNullableText(row.note),
|
|
91
|
+
createdAt: toText(row.created_at, 'stockMovement.created_at'),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
36
94
|
const HANDLE_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
37
95
|
function assertHandle(handle) {
|
|
38
96
|
const value = handle.trim().toLowerCase();
|
|
@@ -50,6 +108,32 @@ function assertHandle(handle) {
|
|
|
50
108
|
}
|
|
51
109
|
return value;
|
|
52
110
|
}
|
|
111
|
+
/** For a nullable non-negative integer field (fiche 51 tasks 4-5: a threshold, a dimension). `null`/`undefined` pass through untouched. */
|
|
112
|
+
function assertNullableNonNegativeInt(value, what) {
|
|
113
|
+
if (value === null || value === undefined)
|
|
114
|
+
return value;
|
|
115
|
+
if (!Number.isInteger(value) || value < 0) {
|
|
116
|
+
throw new CogentaError({
|
|
117
|
+
code: 'COMMERCE_QUANTITY_INVALID',
|
|
118
|
+
message: `${what} must be a whole, non-negative number, got ${String(value)}.`,
|
|
119
|
+
hint: 'Leave it unset (null) rather than sending zero when there is nothing to report.',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
/** A date/time field carries an ISO string or nothing — never free text a `Date` cannot parse. */
|
|
125
|
+
function assertNullableIsoDate(value, what) {
|
|
126
|
+
if (value === null || value === undefined)
|
|
127
|
+
return value;
|
|
128
|
+
if (Number.isNaN(new Date(value).getTime())) {
|
|
129
|
+
throw new CogentaError({
|
|
130
|
+
code: 'COMMERCE_PRODUCT_INVALID',
|
|
131
|
+
message: `${what} is not a usable date.`,
|
|
132
|
+
hint: 'Send an ISO 8601 timestamp, such as "2026-09-01T00:00:00.000Z".',
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
return value;
|
|
136
|
+
}
|
|
53
137
|
function assertQuantity(quantity, what) {
|
|
54
138
|
if (!Number.isInteger(quantity) || quantity <= 0) {
|
|
55
139
|
throw new CogentaError({
|
|
@@ -80,6 +164,8 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
80
164
|
const d = db.dialect;
|
|
81
165
|
const products = identifier(TABLES.products, d);
|
|
82
166
|
const variants = identifier(TABLES.variants, d);
|
|
167
|
+
const productTerms = identifier(TABLES.productTerms, d);
|
|
168
|
+
const stockMovements = identifier(TABLES.stockMovements, d);
|
|
83
169
|
const stamp = () => new Date(now()).toISOString();
|
|
84
170
|
async function loadProduct(id) {
|
|
85
171
|
const found = await readProduct(id);
|
|
@@ -97,6 +183,29 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
97
183
|
const row = result.rows[0];
|
|
98
184
|
return row === undefined ? null : decodeProduct(row);
|
|
99
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* One row per stock-moving write, in the same transaction the write itself
|
|
188
|
+
* ran in — a rollback of the write (a short basket in `takeStock`) rolls
|
|
189
|
+
* this back with it, so the history never shows a movement whose sale
|
|
190
|
+
* never actually happened.
|
|
191
|
+
*/
|
|
192
|
+
async function recordMovement(executor, variantId, delta, balanceAfter, reason, options) {
|
|
193
|
+
const id = newId(now);
|
|
194
|
+
await executor.query(sql `
|
|
195
|
+
insert into ${stockMovements}
|
|
196
|
+
(id, variant_id, delta, balance_after, reason, actor_id, reference_id, note, created_at)
|
|
197
|
+
values (${id}, ${variantId}, ${delta}, ${balanceAfter}, ${reason},
|
|
198
|
+
${options?.actorId ?? null}, ${options?.referenceId ?? null}, ${options?.note ?? null},
|
|
199
|
+
${stamp()})`);
|
|
200
|
+
}
|
|
201
|
+
async function readProductTerms(productId) {
|
|
202
|
+
const result = await db.query(sql `select taxonomy, term_id from ${productTerms}
|
|
203
|
+
where product_id = ${productId} order by taxonomy asc, created_at asc`);
|
|
204
|
+
return result.rows.map((row) => ({
|
|
205
|
+
taxonomy: toText(row.taxonomy, 'productTerm.taxonomy'),
|
|
206
|
+
termId: toText(row.term_id, 'productTerm.term_id'),
|
|
207
|
+
}));
|
|
208
|
+
}
|
|
100
209
|
async function loadVariant(id, executor = db) {
|
|
101
210
|
const result = await executor.query(sql `select * from ${variants} where id = ${id}`);
|
|
102
211
|
const row = result.rows[0];
|
|
@@ -132,7 +241,7 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
132
241
|
where id = ${variant.id} and on_hand >= ${quantity}`);
|
|
133
242
|
return result.rowsAffected > 0;
|
|
134
243
|
}
|
|
135
|
-
async function takeStock(requests, tx) {
|
|
244
|
+
async function takeStock(requests, tx, options) {
|
|
136
245
|
const wanted = coalesce(requests);
|
|
137
246
|
if (wanted.length === 0)
|
|
138
247
|
return { kind: 'taken' };
|
|
@@ -150,7 +259,14 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
150
259
|
requested: request.quantity,
|
|
151
260
|
available: Math.max(0, variant.onHand),
|
|
152
261
|
});
|
|
262
|
+
continue;
|
|
153
263
|
}
|
|
264
|
+
// Recorded inside the same transaction as the UPDATE above: a later
|
|
265
|
+
// shortfall in this same basket throws below, which rolls this row
|
|
266
|
+
// back with everything else — the history never shows a sale that
|
|
267
|
+
// did not, in the end, happen.
|
|
268
|
+
const after = await loadVariant(request.variantId, executor);
|
|
269
|
+
await recordMovement(executor, request.variantId, -request.quantity, after.onHand, 'sale', options);
|
|
154
270
|
}
|
|
155
271
|
if (shortfalls.length > 0) {
|
|
156
272
|
// Throwing is what rolls the whole thing back — all lines or none.
|
|
@@ -176,11 +292,12 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
176
292
|
const id = newId(now);
|
|
177
293
|
const at = stamp();
|
|
178
294
|
const handle = assertHandle(input.handle);
|
|
295
|
+
const imageMediaIds = normalizeImageIds(input.imageMediaIds ?? []);
|
|
179
296
|
await db.query(sql `
|
|
180
|
-
insert into ${products} (id, handle, title, status, content_collection, content_entry_id, created_at, updated_at)
|
|
297
|
+
insert into ${products} (id, handle, title, status, content_collection, content_entry_id, image_media_ids, created_at, updated_at)
|
|
181
298
|
values (${id}, ${handle}, ${input.title}, ${input.status ?? 'active'},
|
|
182
299
|
${input.contentRef?.collection ?? null}, ${input.contentRef?.entryId ?? null},
|
|
183
|
-
${at}, ${at})`);
|
|
300
|
+
${JSON.stringify(imageMediaIds)}, ${at}, ${at})`);
|
|
184
301
|
return loadProduct(id);
|
|
185
302
|
},
|
|
186
303
|
readProduct,
|
|
@@ -193,6 +310,9 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
193
310
|
const current = await loadProduct(id);
|
|
194
311
|
const handle = input.handle === undefined ? current.handle : assertHandle(input.handle);
|
|
195
312
|
const ref = input.contentRef === undefined ? current.contentRef : input.contentRef;
|
|
313
|
+
const imageMediaIds = input.imageMediaIds === undefined
|
|
314
|
+
? current.imageMediaIds
|
|
315
|
+
: normalizeImageIds(input.imageMediaIds);
|
|
196
316
|
await db.query(sql `
|
|
197
317
|
update ${products}
|
|
198
318
|
set handle = ${handle},
|
|
@@ -200,6 +320,7 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
200
320
|
status = ${input.status ?? current.status},
|
|
201
321
|
content_collection = ${ref?.collection ?? null},
|
|
202
322
|
content_entry_id = ${ref?.entryId ?? null},
|
|
323
|
+
image_media_ids = ${JSON.stringify(imageMediaIds)},
|
|
203
324
|
updated_at = ${stamp()}
|
|
204
325
|
where id = ${id}`);
|
|
205
326
|
return loadProduct(id);
|
|
@@ -212,6 +333,7 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
212
333
|
deleteProduct: async (id) => {
|
|
213
334
|
await db.transaction(async (tx) => {
|
|
214
335
|
await tx.query(sql `delete from ${variants} where product_id = ${id}`);
|
|
336
|
+
await tx.query(sql `delete from ${productTerms} where product_id = ${id}`);
|
|
215
337
|
await tx.query(sql `delete from ${products} where id = ${id}`);
|
|
216
338
|
});
|
|
217
339
|
},
|
|
@@ -229,7 +351,12 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
229
351
|
statement =
|
|
230
352
|
index === 0 ? sql `${statement} where ${condition}` : sql `${statement} and ${condition}`;
|
|
231
353
|
}
|
|
232
|
-
|
|
354
|
+
// `id` breaks a tie on the sort column deterministically — the same
|
|
355
|
+
// reason the original `created_at desc, id desc` default already did.
|
|
356
|
+
const column = identifier(options?.sort === 'title' ? 'title' : options?.sort === 'handle' ? 'handle' : 'created_at', d);
|
|
357
|
+
const direction = unsafeRaw(options?.direction === 'asc' ? 'asc' : 'desc');
|
|
358
|
+
const idColumn = identifier('id', d);
|
|
359
|
+
statement = sql `${statement} order by ${column} ${direction}, ${idColumn} ${direction}`;
|
|
233
360
|
// `limit()` inlines the count: MySQL prepared statements reject a
|
|
234
361
|
// placeholder there, and the helper validates it so inlining is safe.
|
|
235
362
|
statement = sql `${statement} limit ${limit(options?.limit ?? 100)} offset ${limit(options?.offset ?? 0)}`;
|
|
@@ -263,14 +390,31 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
263
390
|
hint: 'Use allowBackorder if this variant should sell past zero.',
|
|
264
391
|
});
|
|
265
392
|
}
|
|
393
|
+
const lowStockThreshold = assertNullableNonNegativeInt(input.lowStockThreshold ?? null, 'A low-stock threshold');
|
|
394
|
+
const compareAtPriceMinor = input.compareAtPriceMinor === undefined || input.compareAtPriceMinor === null
|
|
395
|
+
? null
|
|
396
|
+
: assertMinor(input.compareAtPriceMinor, 'A compare-at price');
|
|
397
|
+
const saleStartsAt = assertNullableIsoDate(input.saleStartsAt ?? null, 'A sale start date');
|
|
398
|
+
const saleEndsAt = assertNullableIsoDate(input.saleEndsAt ?? null, 'A sale end date');
|
|
399
|
+
const widthMm = assertNullableNonNegativeInt(input.widthMm ?? null, 'A width');
|
|
400
|
+
const heightMm = assertNullableNonNegativeInt(input.heightMm ?? null, 'A height');
|
|
401
|
+
const depthMm = assertNullableNonNegativeInt(input.depthMm ?? null, 'A depth');
|
|
402
|
+
const imageMediaId = input.imageMediaId === undefined || input.imageMediaId === null
|
|
403
|
+
? null
|
|
404
|
+
: input.imageMediaId.trim() || null;
|
|
266
405
|
await db.query(sql `
|
|
267
406
|
insert into ${variants} (id, product_id, sku, title, price_minor, currency, on_hand,
|
|
268
|
-
allow_backorder, weight_grams, tax_category, position,
|
|
407
|
+
allow_backorder, weight_grams, tax_category, position,
|
|
408
|
+
low_stock_threshold, compare_at_price_minor, sale_starts_at, sale_ends_at,
|
|
409
|
+
width_mm, height_mm, depth_mm, image_media_id, created_at, updated_at)
|
|
269
410
|
values (${id}, ${input.productId}, ${sku}, ${input.title},
|
|
270
411
|
${assertMinor(input.priceMinor, 'A variant price')}, ${assertCurrency(input.currency)},
|
|
271
412
|
${onHand}, ${fromBool(input.allowBackorder ?? false, d)},
|
|
272
413
|
${input.weightGrams ?? 0}, ${input.taxCategory ?? 'standard'},
|
|
273
|
-
${input.position ?? 0}, ${
|
|
414
|
+
${input.position ?? 0}, ${lowStockThreshold ?? null}, ${compareAtPriceMinor},
|
|
415
|
+
${saleStartsAt ?? null}, ${saleEndsAt ?? null},
|
|
416
|
+
${widthMm ?? null}, ${heightMm ?? null}, ${depthMm ?? null}, ${imageMediaId},
|
|
417
|
+
${at}, ${at})`);
|
|
274
418
|
return loadVariant(id);
|
|
275
419
|
},
|
|
276
420
|
readVariant: async (id) => {
|
|
@@ -293,6 +437,34 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
293
437
|
hint: 'A SKU identifies one sellable thing. Pick another.',
|
|
294
438
|
});
|
|
295
439
|
}
|
|
440
|
+
const lowStockThreshold = input.lowStockThreshold === undefined
|
|
441
|
+
? current.lowStockThreshold
|
|
442
|
+
: assertNullableNonNegativeInt(input.lowStockThreshold, 'A low-stock threshold');
|
|
443
|
+
const compareAtPriceMinor = input.compareAtPriceMinor === undefined
|
|
444
|
+
? current.compareAtPriceMinor
|
|
445
|
+
: input.compareAtPriceMinor === null
|
|
446
|
+
? null
|
|
447
|
+
: assertMinor(input.compareAtPriceMinor, 'A compare-at price');
|
|
448
|
+
const saleStartsAt = input.saleStartsAt === undefined
|
|
449
|
+
? current.saleStartsAt
|
|
450
|
+
: assertNullableIsoDate(input.saleStartsAt, 'A sale start date');
|
|
451
|
+
const saleEndsAt = input.saleEndsAt === undefined
|
|
452
|
+
? current.saleEndsAt
|
|
453
|
+
: assertNullableIsoDate(input.saleEndsAt, 'A sale end date');
|
|
454
|
+
const widthMm = input.widthMm === undefined
|
|
455
|
+
? current.widthMm
|
|
456
|
+
: assertNullableNonNegativeInt(input.widthMm, 'A width');
|
|
457
|
+
const heightMm = input.heightMm === undefined
|
|
458
|
+
? current.heightMm
|
|
459
|
+
: assertNullableNonNegativeInt(input.heightMm, 'A height');
|
|
460
|
+
const depthMm = input.depthMm === undefined
|
|
461
|
+
? current.depthMm
|
|
462
|
+
: assertNullableNonNegativeInt(input.depthMm, 'A depth');
|
|
463
|
+
const imageMediaId = input.imageMediaId === undefined
|
|
464
|
+
? current.imageMediaId
|
|
465
|
+
: input.imageMediaId === null
|
|
466
|
+
? null
|
|
467
|
+
: input.imageMediaId.trim() || null;
|
|
296
468
|
// Stock is deliberately absent from this method. Setting it as one field
|
|
297
469
|
// among many is how a concurrent sale gets overwritten by a form that
|
|
298
470
|
// was rendered a minute ago; setStock/restock/takeStock say what they do.
|
|
@@ -306,6 +478,14 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
306
478
|
weight_grams = ${input.weightGrams ?? current.weightGrams},
|
|
307
479
|
tax_category = ${input.taxCategory ?? current.taxCategory},
|
|
308
480
|
position = ${input.position ?? current.position},
|
|
481
|
+
low_stock_threshold = ${lowStockThreshold ?? null},
|
|
482
|
+
compare_at_price_minor = ${compareAtPriceMinor ?? null},
|
|
483
|
+
sale_starts_at = ${saleStartsAt ?? null},
|
|
484
|
+
sale_ends_at = ${saleEndsAt ?? null},
|
|
485
|
+
width_mm = ${widthMm ?? null},
|
|
486
|
+
height_mm = ${heightMm ?? null},
|
|
487
|
+
depth_mm = ${depthMm ?? null},
|
|
488
|
+
image_media_id = ${imageMediaId},
|
|
309
489
|
updated_at = ${stamp()}
|
|
310
490
|
where id = ${id}`);
|
|
311
491
|
return loadVariant(id);
|
|
@@ -317,7 +497,15 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
317
497
|
const result = await db.query(sql `select * from ${variants} where product_id = ${productId} order by position asc, created_at asc, id asc`);
|
|
318
498
|
return result.rows.map(decodeVariant);
|
|
319
499
|
},
|
|
320
|
-
|
|
500
|
+
listLowStock: async () => {
|
|
501
|
+
const thresholdColumn = identifier('low_stock_threshold', d);
|
|
502
|
+
const result = await db.query(sql `
|
|
503
|
+
select * from ${variants}
|
|
504
|
+
where ${thresholdColumn} is not null and on_hand <= ${thresholdColumn}
|
|
505
|
+
order by on_hand asc, id asc`);
|
|
506
|
+
return result.rows.map(decodeVariant);
|
|
507
|
+
},
|
|
508
|
+
setStock: async (variantId, onHand, options) => {
|
|
321
509
|
if (!Number.isInteger(onHand) || onHand < 0) {
|
|
322
510
|
throw new CogentaError({
|
|
323
511
|
code: 'COMMERCE_QUANTITY_INVALID',
|
|
@@ -325,17 +513,23 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
325
513
|
hint: 'A stock take sets what is on the shelf. It is never negative.',
|
|
326
514
|
});
|
|
327
515
|
}
|
|
328
|
-
await loadVariant(variantId);
|
|
516
|
+
const current = await loadVariant(variantId);
|
|
329
517
|
await db.query(sql `update ${variants} set on_hand = ${onHand}, updated_at = ${stamp()} where id = ${variantId}`);
|
|
518
|
+
const delta = onHand - current.onHand;
|
|
519
|
+
if (delta !== 0) {
|
|
520
|
+
await recordMovement(db, variantId, delta, onHand, 'stock_take', options);
|
|
521
|
+
}
|
|
330
522
|
return loadVariant(variantId);
|
|
331
523
|
},
|
|
332
|
-
restock: async (requests, tx) => {
|
|
524
|
+
restock: async (requests, tx, options) => {
|
|
333
525
|
const wanted = coalesce(requests);
|
|
334
526
|
if (wanted.length === 0)
|
|
335
527
|
return;
|
|
336
528
|
const run = async (executor) => {
|
|
337
529
|
for (const request of [...wanted].sort((a, b) => a.variantId.localeCompare(b.variantId))) {
|
|
338
530
|
await executor.query(sql `update ${variants} set on_hand = on_hand + ${request.quantity}, updated_at = ${stamp()} where id = ${request.variantId}`);
|
|
531
|
+
const after = await loadVariant(request.variantId, executor);
|
|
532
|
+
await recordMovement(executor, request.variantId, request.quantity, after.onHand, 'restock', options);
|
|
339
533
|
}
|
|
340
534
|
};
|
|
341
535
|
if (tx === undefined)
|
|
@@ -344,6 +538,39 @@ export function createCatalogStore(db, now = Date.now) {
|
|
|
344
538
|
await run(tx);
|
|
345
539
|
},
|
|
346
540
|
takeStock,
|
|
541
|
+
listStockMovements: async (variantId) => {
|
|
542
|
+
const result = await db.query(sql `select * from ${stockMovements} where variant_id = ${variantId} order by created_at desc, id desc`);
|
|
543
|
+
return result.rows.map(decodeStockMovement);
|
|
544
|
+
},
|
|
545
|
+
listProductTerms: readProductTerms,
|
|
546
|
+
setProductTerms: async (productId, taxonomy, termIds) => {
|
|
547
|
+
await loadProduct(productId);
|
|
548
|
+
const trimmedTaxonomy = taxonomy.trim();
|
|
549
|
+
if (trimmedTaxonomy === '') {
|
|
550
|
+
throw new CogentaError({
|
|
551
|
+
code: 'COMMERCE_PRODUCT_INVALID',
|
|
552
|
+
message: 'A taxonomy name is required to classify a product.',
|
|
553
|
+
hint: 'Name the taxonomy this set of terms belongs to.',
|
|
554
|
+
});
|
|
555
|
+
}
|
|
556
|
+
const uniqueTermIds = [...new Set(termIds.map((termId) => termId.trim()).filter(Boolean))];
|
|
557
|
+
await db.transaction(async (tx) => {
|
|
558
|
+
await tx.query(sql `delete from ${productTerms} where product_id = ${productId} and taxonomy = ${trimmedTaxonomy}`);
|
|
559
|
+
for (const termId of uniqueTermIds) {
|
|
560
|
+
const id = newId(now);
|
|
561
|
+
await tx.query(sql `
|
|
562
|
+
insert into ${productTerms} (id, product_id, taxonomy, term_id, created_at)
|
|
563
|
+
values (${id}, ${productId}, ${trimmedTaxonomy}, ${termId}, ${stamp()})`);
|
|
564
|
+
}
|
|
565
|
+
});
|
|
566
|
+
return readProductTerms(productId);
|
|
567
|
+
},
|
|
568
|
+
readProductByContentRef: async (collection, entryId) => {
|
|
569
|
+
const result = await db.query(sql `select * from ${products}
|
|
570
|
+
where content_collection = ${collection} and content_entry_id = ${entryId}`);
|
|
571
|
+
const row = result.rows[0];
|
|
572
|
+
return row === undefined ? null : decodeProduct(row);
|
|
573
|
+
},
|
|
347
574
|
};
|
|
348
575
|
}
|
|
349
576
|
/** Internal. Rolls a partial reservation back by unwinding the transaction. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/catalog/store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/catalog/store.ts"],"names":[],"mappings":"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"}
|
package/dist/catalog/types.d.ts
CHANGED
|
@@ -23,6 +23,13 @@ export interface Product {
|
|
|
23
23
|
readonly title: string;
|
|
24
24
|
readonly status: ProductStatus;
|
|
25
25
|
readonly contentRef: ContentRef | null;
|
|
26
|
+
/** Media library ids, in display order — the first is the cover shown in
|
|
27
|
+
* admin lists and order lines. Direct on the commercial record rather than
|
|
28
|
+
* only reachable through `contentRef`: a product with no linked entry (most
|
|
29
|
+
* of them, day one) still needs a photo to be sellable at all. Opaque ids,
|
|
30
|
+
* same as `contentRef` — this package does not depend on the media store
|
|
31
|
+
* and never validates that one exists, only that the admin's own picker did. */
|
|
32
|
+
readonly imageMediaIds: readonly string[];
|
|
26
33
|
readonly createdAt: string;
|
|
27
34
|
readonly updatedAt: string;
|
|
28
35
|
}
|
|
@@ -39,6 +46,26 @@ export interface Variant {
|
|
|
39
46
|
/** Names a tax category, matched by the tax rules. `standard` by default. */
|
|
40
47
|
readonly taxCategory: string;
|
|
41
48
|
readonly position: number;
|
|
49
|
+
/** Below this count (inclusive), `CatalogStore.listLowStock` reports the
|
|
50
|
+
* variant. `null` means "not watched" — never "watched at zero" (fiche 51
|
|
51
|
+
* task 4). */
|
|
52
|
+
readonly lowStockThreshold: number | null;
|
|
53
|
+
/** The "was" price, shown struck through next to `priceMinor`. `null` means
|
|
54
|
+
* no promotion is running (fiche 51 task 5). */
|
|
55
|
+
readonly compareAtPriceMinor: number | null;
|
|
56
|
+
/** The window `compareAtPriceMinor` applies in. Either may be `null` alone —
|
|
57
|
+
* an open start or an open end — but a promotion needs `compareAtPriceMinor`
|
|
58
|
+
* set to mean anything; see `isOnSale`. */
|
|
59
|
+
readonly saleStartsAt: string | null;
|
|
60
|
+
readonly saleEndsAt: string | null;
|
|
61
|
+
/** Millimetres. `null` when not measured, same convention as the price fields above. */
|
|
62
|
+
readonly widthMm: number | null;
|
|
63
|
+
readonly heightMm: number | null;
|
|
64
|
+
readonly depthMm: number | null;
|
|
65
|
+
/** A single media library id, or `null` — one photo per variant (a colour,
|
|
66
|
+
* a size), same convention as the product's own gallery above but never a
|
|
67
|
+
* list: a variant is one sellable thing, not a set to browse. */
|
|
68
|
+
readonly imageMediaId: string | null;
|
|
42
69
|
readonly createdAt: string;
|
|
43
70
|
readonly updatedAt: string;
|
|
44
71
|
}
|
|
@@ -47,12 +74,14 @@ export interface CreateProductInput {
|
|
|
47
74
|
readonly title: string;
|
|
48
75
|
readonly status?: ProductStatus;
|
|
49
76
|
readonly contentRef?: ContentRef | null;
|
|
77
|
+
readonly imageMediaIds?: readonly string[];
|
|
50
78
|
}
|
|
51
79
|
export interface UpdateProductInput {
|
|
52
80
|
readonly handle?: string;
|
|
53
81
|
readonly title?: string;
|
|
54
82
|
readonly status?: ProductStatus;
|
|
55
83
|
readonly contentRef?: ContentRef | null;
|
|
84
|
+
readonly imageMediaIds?: readonly string[];
|
|
56
85
|
}
|
|
57
86
|
export interface CreateVariantInput {
|
|
58
87
|
readonly productId: string;
|
|
@@ -65,6 +94,14 @@ export interface CreateVariantInput {
|
|
|
65
94
|
readonly weightGrams?: number;
|
|
66
95
|
readonly taxCategory?: string;
|
|
67
96
|
readonly position?: number;
|
|
97
|
+
readonly lowStockThreshold?: number | null;
|
|
98
|
+
readonly compareAtPriceMinor?: number | null;
|
|
99
|
+
readonly saleStartsAt?: string | null;
|
|
100
|
+
readonly saleEndsAt?: string | null;
|
|
101
|
+
readonly widthMm?: number | null;
|
|
102
|
+
readonly heightMm?: number | null;
|
|
103
|
+
readonly depthMm?: number | null;
|
|
104
|
+
readonly imageMediaId?: string | null;
|
|
68
105
|
}
|
|
69
106
|
export interface UpdateVariantInput {
|
|
70
107
|
readonly sku?: string;
|
|
@@ -75,6 +112,52 @@ export interface UpdateVariantInput {
|
|
|
75
112
|
readonly weightGrams?: number;
|
|
76
113
|
readonly taxCategory?: string;
|
|
77
114
|
readonly position?: number;
|
|
115
|
+
readonly lowStockThreshold?: number | null;
|
|
116
|
+
readonly compareAtPriceMinor?: number | null;
|
|
117
|
+
readonly saleStartsAt?: string | null;
|
|
118
|
+
readonly saleEndsAt?: string | null;
|
|
119
|
+
readonly widthMm?: number | null;
|
|
120
|
+
readonly heightMm?: number | null;
|
|
121
|
+
readonly depthMm?: number | null;
|
|
122
|
+
readonly imageMediaId?: string | null;
|
|
123
|
+
}
|
|
124
|
+
/** One classification of a product against a term of a taxonomy the site
|
|
125
|
+
* declares (ADR-0022) — never a foreign key, for the reason `tables.ts`'s
|
|
126
|
+
* `productTerms` comment gives. */
|
|
127
|
+
export interface ProductTerm {
|
|
128
|
+
readonly taxonomy: string;
|
|
129
|
+
readonly termId: string;
|
|
130
|
+
}
|
|
131
|
+
/** Why a stock movement happened. `manual` covers a correction typed directly
|
|
132
|
+
* into the admin — anything that is not a sale, a restock or a stock take. */
|
|
133
|
+
export declare const STOCK_MOVEMENT_REASONS: readonly ['sale', 'restock', 'stock_take', 'manual'];
|
|
134
|
+
export type StockMovementReason = (typeof STOCK_MOVEMENT_REASONS)[number];
|
|
135
|
+
/** What every stock-moving method (`setStock`/`restock`/`takeStock`) records
|
|
136
|
+
* beyond the movement itself — optional everywhere, since none of this
|
|
137
|
+
* package's own callers (an order placing or cancelling) currently supply it,
|
|
138
|
+
* and their movements are still recorded, just with `actorId`/`referenceId`
|
|
139
|
+
* left `null`. */
|
|
140
|
+
export interface StockMovementOptions {
|
|
141
|
+
readonly actorId?: string | null;
|
|
142
|
+
readonly referenceId?: string | null;
|
|
143
|
+
readonly note?: string | null;
|
|
144
|
+
}
|
|
145
|
+
/** One row of a variant's append-only stock history (fiche 51 task 4). Never
|
|
146
|
+
* updated or deleted after it is written — a correction is a further row,
|
|
147
|
+
* never an edit to this one. */
|
|
148
|
+
export interface StockMovement {
|
|
149
|
+
readonly id: string;
|
|
150
|
+
readonly variantId: string;
|
|
151
|
+
/** Positive for stock added, negative for stock taken. */
|
|
152
|
+
readonly delta: number;
|
|
153
|
+
/** What `onHand` became right after this movement. */
|
|
154
|
+
readonly balanceAfter: number;
|
|
155
|
+
readonly reason: StockMovementReason;
|
|
156
|
+
readonly actorId: string | null;
|
|
157
|
+
/** An order id, most often — `null` when the movement has no such origin (a stock take). */
|
|
158
|
+
readonly referenceId: string | null;
|
|
159
|
+
readonly note: string | null;
|
|
160
|
+
readonly createdAt: string;
|
|
78
161
|
}
|
|
79
162
|
/** What one reservation asked for. */
|
|
80
163
|
export interface StockRequest {
|
|
@@ -92,4 +175,13 @@ export interface StockShortfall {
|
|
|
92
175
|
readonly requested: number;
|
|
93
176
|
readonly available: number;
|
|
94
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Whether a variant's promotion (fiche 51 task 5) applies right now.
|
|
180
|
+
*
|
|
181
|
+
* `compareAtPriceMinor` is what makes a promotion exist at all — a schedule
|
|
182
|
+
* with no "was" price to show has nothing to display. An open start or end
|
|
183
|
+
* means "always", not "never": a sale with only an end date is already
|
|
184
|
+
* running, and one with only a start date has no announced finish.
|
|
185
|
+
*/
|
|
186
|
+
export declare function isOnSale(variant: Pick<Variant, 'compareAtPriceMinor' | 'saleStartsAt' | 'saleEndsAt'>, now?: Date): boolean;
|
|
95
187
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"AAAA;;+EAE+E;AAC/E,eAAO,MAAM,gBAAgB,YAAI,QAAQ,EAAE,UAAU,CAAU,CAAA;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB;+DAC2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/catalog/types.ts"],"names":[],"mappings":"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"}
|