diff --git a/apps/api/src/server.ts b/apps/api/src/server.ts index 900d6e6..a10ce9a 100644 --- a/apps/api/src/server.ts +++ b/apps/api/src/server.ts @@ -183,12 +183,17 @@ export const app = new Elysia() case Printful.Webhook.Event.ProductUpdated: { const printfulProduct = payload.data.sync_product; log.info({ productId: printfulProduct.id }, "printful webhook: product updated"); + await syncService.sync({ filter: { printfulProductIds: [printfulProduct.id] } }); break; } case Printful.Webhook.Event.ProductDeleted: { - log.info({ externalId: payload.data.sync_product.external_id }, "printful webhook: product deleted"); - await webflow.Products.remove(payload.data.sync_product.external_id); + const printfulProduct = payload.data.sync_product; + const webflowProductId = printfulProduct.external_id.split("-")[0]; + log.info({ externalId: payload.data.sync_product.external_id, webflowProductId }, "printful webhook: product deleted"); + if (!webflowProductId) throw new NotFoundError("Missing webflow product ID"); + + await webflow.Products.remove(webflowProductId); break; } case Printful.Webhook.Event.PackageShipped: {