diff --git a/app/skus/page.tsx b/app/skus/page.tsx
index 398b27acf..21bb8fcfd 100644
--- a/app/skus/page.tsx
+++ b/app/skus/page.tsx
@@ -31,23 +31,40 @@ export default async function SKUCheckPage() {
dbxFiles = await dbx.filesListFolder({
path: '/scape squared/004 print ready - print files'
});
+
+ // sabotage?
+ // dbxFiles.result.entries = dbxFiles.result.entries.filter(file => file.name !== "SCSQ300262_NECK.png");
} catch (e) {
dbxError = e + ""
}
- // sabotage?
- // dbxFiles.result.entries.splice(5, 1);
-
return (
{products.map((product) => {
const skus = createProductSKUs(product.title);
+ if (!skus) return
SKU error for product {product.title}
+
// sabotage?
// product.variants[3]!.sku = 'SCSQ10001_STTU781_M_C002_B_NT';
+ const productCode = skus[0]!.split('_')[0]
+ const productBase = productCode!.slice(0, (productCode!.length -1))
+
const productFiles = dbxFiles?.result.entries
- .filter((file) => file.name.startsWith(skus[0]!.split('_')[0]!))
+ .filter((file) => file.name.startsWith(productBase!))
+
+ const productFileNames = productFiles?.map(file => file.name);
+
+ const sizeDigits = ["1", "2", "3"];
+ const sideSuffixes = ["_NECK.png", "_BACK.png"];
+
+ const expectedFiles = sizeDigits.flatMap((sizeDigit) =>
+ sideSuffixes.flatMap((sideSuffix) => productBase + sizeDigit + sideSuffix)
+ );
+
+ const missingFiles = expectedFiles.filter(expected => !productFileNames?.includes(expected));
+ const extraFiles = productFileNames?.filter(filename => !expectedFiles.includes(filename));
return (
@@ -55,10 +72,15 @@ export default async function SKUCheckPage() {
0 ? 'bg-amber-300' : '')
}
>
- Dropbox: {productFiles?.map(file => file.name).join(", ")}{dbxError}
+ Dropbox:{' '}
+ {missingFiles.length === 0
+ ? '✅ All expected files found'
+ : '⛔️ Missing files: ' + missingFiles.join(', ')}
+ {extraFiles &&
(Extra files: {extraFiles.join(", ")})
}
+ {dbxError}
{product.variants.map((variant, i) => (
<>