fix: adjusted store label

This commit is contained in:
Brennan Wilkes (Text Groove) 2026-01-29 13:27:42 -08:00
parent b9cb92cf5d
commit 5dd38fe6be

View file

@ -15,11 +15,21 @@ function isRealSku(v) {
return Boolean(normalizeCspc(v)); return Boolean(normalizeCspc(v));
} }
function normalizeSkuForDb(raw, { storeLabel, url } = {}) { function dbStoreLabel(prevDb) {
const lab = storeLabel || ""; return String(prevDb?.storeLabel || prevDb?.store || "").trim();
}
function itemStoreLabel(prevDb, it) {
return String(it?.storeLabel || it?.store || dbStoreLabel(prevDb)).trim();
}
function normalizeSkuForDb(prevDb, raw, { storeLabel, url } = {}) {
const lab = String(storeLabel || dbStoreLabel(prevDb)).trim();
// IMPORTANT: if we still don't have a label, don't accidentally use "store"
// (but in practice dbStoreLabel(prevDb) should always exist)
return normalizeSkuKey(raw, { storeLabel: lab, url }); return normalizeSkuKey(raw, { storeLabel: lab, url });
} }
function mergeDiscoveredIntoDb(prevDb, discovered) { function mergeDiscoveredIntoDb(prevDb, discovered) {
const merged = new Map(prevDb.byUrl); const merged = new Map(prevDb.byUrl);
@ -107,10 +117,7 @@ function mergeDiscoveredIntoDb(prevDb, discovered) {
if (!prev) { if (!prev) {
const now = { const now = {
...nowRaw, ...nowRaw,
sku: normalizeSkuForDb(nowRaw.sku, { sku: normalizeSkuForDb(prevDb, nowRaw.sku, { storeLabel: itemStoreLabel(prevDb, nowRaw), url }),
storeLabel: nowRaw.storeLabel || nowRaw.store || "",
url,
}),
img: normImg(nowRaw.img), img: normImg(nowRaw.img),
removed: false, removed: false,
}; };
@ -124,11 +131,8 @@ function mergeDiscoveredIntoDb(prevDb, discovered) {
const now = { const now = {
...nowRaw, ...nowRaw,
sku: sku:
normalizeSkuForDb(nowRaw.sku, { normalizeSkuForDb(prevDb, nowRaw.sku, { storeLabel: itemStoreLabel(prevDb, nowRaw), url }) ||
storeLabel: nowRaw.storeLabel || nowRaw.store || prev.storeLabel || prev.store || "", normalizeSkuForDb(prevDb, prev.sku, { storeLabel: itemStoreLabel(prevDb, prev), url: prev.url }),
url,
}) ||
normalizeSkuForDb(prev.sku, { storeLabel: prev.storeLabel || prev.store || "", url: prev.url }),
img: normImg(nowRaw.img) || normImg(prev.img), img: normImg(nowRaw.img) || normImg(prev.img),
removed: false, removed: false,
}; };
@ -146,13 +150,9 @@ function mergeDiscoveredIntoDb(prevDb, discovered) {
const prevPrice = normPrice(prev.price); const prevPrice = normPrice(prev.price);
const nowPrice = normPrice(nowRaw.price); const nowPrice = normPrice(nowRaw.price);
const prevSku = normalizeSkuForDb(prev.sku, { storeLabel: prev.storeLabel || prev.store || "", url: prev.url }); const prevSku = normalizeSkuForDb(prevDb, prev.sku, { storeLabel: itemStoreLabel(prevDb, prev), url: prev.url });
const nowSku = const nowSku = normalizeSkuForDb(prevDb, nowRaw.sku, { storeLabel: itemStoreLabel(prevDb, nowRaw), url }) || prevSku;
normalizeSkuForDb(nowRaw.sku, {
storeLabel: nowRaw.storeLabel || nowRaw.store || prev.storeLabel || prev.store || "",
url,
}) || prevSku;
const prevImg = normImg(prev.img); const prevImg = normImg(prev.img);
let nowImg = normImg(nowRaw.img); let nowImg = normImg(nowRaw.img);
if (!nowImg) nowImg = prevImg; if (!nowImg) nowImg = prevImg;