---
tags: [accounting, service, integration]
module: Accounting
---

# IntegrationSyncServices

## Connections
[[_Accounting]] · [[[Model]JournalEntry]] · [[[Service]JournalEntryServices]] · [[[Model]IntegrationModels]] · [[[Job]Jobs]] · [[[Repo]Repositories]] · [[[Cross]CrossModuleDependencies]] · [[CompanyUser/[Job]Jobs]]

## Source
`Modules/Accounting/Services/JournalEntry/` (sync-related files)
`Modules/Accounting/Services/DeletingIntegrationOrders/`

## Orchestration Services
| Service | Responsibility |
|---|---|
| `SyncingIntegratedOrdersService` | Top-level orchestrator: fetches unsynced orders from all enabled integrations and dispatches per-integration sync |
| `SyncingIntegratedOrdersForSegmentsService` | Syncs a pre-divided batch (segment) of orders |
| `SyncingIntegratedOrdersForSingleDayService` | Syncs all orders for a specific calendar day |
| `SyncSegmentService` | Creates/manages SyncSegment records for batch tracking |

## Sales Sync Services (per integration)
| Service | Integration |
|---|---|
| `SyncingFoodicsOrdersService` | Foodics POS |
| `SyncingZidOrdersService` | Zid e-commerce |
| `SyncingMarnSalesService` | Marn POS |
| `SyncingPrexleOrdersService` | Prexle e-commerce |
| `HandleSyncingZidOrderService` | Zid-specific order mapping |

## Purchase Sync Services
| Service | Responsibility |
|---|---|
| `SyncingPurchaseOrderService` | Syncs a single purchase order to a [[[Model]JournalEntry]] |
| `SyncingPurchaseReturnsOrderService` | Syncs purchase return orders |
| `SyncingIntegratedPurchaseOrdersService` | Batch purchase order sync |

## VomPay / LazyWait
- `Services/JournalEntry/Integrations/` — payment gateway journal entry creation

## Deletion Services
(`Services/DeletingIntegrationOrders/`)
| Service | Responsibility |
|---|---|
| `DeletingIntegrationOrdersService` | Orchestrates deletion across all integrations |
| `DeletingFoodicsOrdersService` | Removes Foodics JEs + success sync records |
| `DeletingZidOrdersService` | Removes Zid JEs |
| `DeletingMarnOrdersService` | Removes Marn JEs |
| `DeletingPrexleOrdersService` | Removes Prexle JEs |

## Sync Flow (Foodics example)
```
CompanyUser module triggers sync
  → SyncingIntegratedOrdersService
  → SyncingFoodicsOrdersService
      → For each order: check SuccessSyncedOrderManualEntry (skip if exists)
      → CreatingNewJournalEntryService ([[[Service]JournalEntryServices]])
      → Create SuccessSyncedOrderManualEntry record
      → On failure: Create FailedSyncedOrder record
```

## Shared Trait
`SyncingIntegratedOrdersTrait` — common pagination/retry logic used across all sync services
