Skip to content

Commit b1fe4e8

Browse files
authored
Merge pull request #17 from icdocsoc/feat-skip-products-when-no-changes
feat: skip product import from eactivities when no new purchases found (to avoid unecessary requests to eactivities)
2 parents 9be3d7f + a8c7efc commit b1fe4e8

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

collection/lib/crud/loadSalesFromEActivites.ts

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,9 +109,39 @@ export async function loadSalesFromEActivites(
109109
if (typeof product.eActivitiesId !== "number") {
110110
logger.warn(`Product ${product.id} has an invalid eActivities ID, so skipping!`);
111111
}
112-
112+
113113
// Filter out sales
114114
const sales = allSales.filter((sale) => sale.ProductID === product.eActivitiesId);
115+
if (sales.length === 0) {
116+
logger.warn(`No sales found for product ${product.name} id ${product.id} - skipping`);
117+
continue;
118+
}
119+
120+
// If length of sales === number of sales for product, skip
121+
const existingSales = await prisma.variant.findMany({
122+
select: {
123+
_count: {
124+
select: {
125+
OrderItem: true,
126+
},
127+
},
128+
},
129+
where: {
130+
rootItemId: product.id,
131+
},
132+
});
133+
134+
const existingSalesCount = existingSales.reduce(
135+
(acc, curr) => acc + curr._count.OrderItem,
136+
0,
137+
);
138+
139+
if (existingSalesCount === sales.length) {
140+
logger.warn(
141+
`All sales for product ${product.name} id ${product.id} already imported, skipping. (${existingSalesCount} sales already imported)`,
142+
);
143+
continue;
144+
}
115145

116146
// Pull product data as well
117147
let productData: Awaited<ReturnType<typeof eActivities.getProductById>>;

0 commit comments

Comments
 (0)