From a719e83ce7609649863678f63fdd5113c590bc90 Mon Sep 17 00:00:00 2001 From: Mireya Serrano Date: Tue, 26 May 2026 16:27:25 +0200 Subject: [PATCH] delete products --- .../sync_service/sync/ProductSyncService.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java index 2fbcd8f..d927078 100644 --- a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java +++ b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java @@ -86,16 +86,25 @@ public class ProductSyncService { if (!dolibarrSkus.contains(mapping.getSku()) && mapping.getPrestashopId() != null) { try { prestashopClient.deleteProduct(mapping.getPrestashopId()); - productMappingRepository.delete(mapping); - processed++; - log.info("ProductSync: deleted PS product SKU={} psId={} (no longer in Dolibarr)", - mapping.getSku(), mapping.getPrestashopId()); - } catch (PrestashopApiException | RestClientException | HttpMessageConversionException e) { + } catch (PrestashopApiException e) { + if (e.getStatusCode() != null && e.getStatusCode().value() == 404) { + log.debug("ProductSync: PS product already gone SKU={} psId={}", mapping.getSku(), mapping.getPrestashopId()); + } else { + failed++; + errors.add("Delete SKU %s: %s".formatted(mapping.getSku(), e.getMessage())); + log.warn("ProductSync delete failed SKU={}: {}", mapping.getSku(), e.getMessage()); + continue; + } + } catch (RestClientException | HttpMessageConversionException e) { failed++; - String msg = "Delete SKU %s: %s".formatted(mapping.getSku(), e.getMessage()); - errors.add(msg); - log.warn("ProductSync delete failed: {}", msg); + errors.add("Delete SKU %s: %s".formatted(mapping.getSku(), e.getMessage())); + log.warn("ProductSync delete failed SKU={}: {}", mapping.getSku(), e.getMessage()); + continue; } + productMappingRepository.delete(mapping); + processed++; + log.info("ProductSync: deleted PS product SKU={} psId={} (no longer in Dolibarr)", + mapping.getSku(), mapping.getPrestashopId()); } } } catch (RuntimeException e) {