5.1 KiB
External Integrations
Allegro (Polish e-commerce — OAuth2)
Auth: OAuth2 Authorization Code Grant
Scopes: orders:read/write, sale:offers:read, shipments:read/write
Token storage: Encrypted in allegro_integration_settings
Token refresh: AllegroTokenManager — auto-refreshes before expiry
User-Agent: Required from 01.07.2026 (env: ALLEGRO_USER_AGENT_URL)
| File | Purpose |
|---|---|
src/Modules/Settings/AllegroApiClient.php |
REST calls: getCheckoutForm(), listCheckoutForms(), getCheckoutFormShipments() |
src/Modules/Settings/AllegroOAuthClient.php |
OAuth2 flow, token exchange |
src/Modules/Settings/AllegroTokenManager.php |
Token refresh & storage |
src/Modules/Settings/AllegroOrderImportService.php |
Transform & insert Allegro orders |
src/Modules/Settings/AllegroOrdersSyncService.php |
Continuous order sync |
src/Modules/Settings/AllegroStatusSyncService.php |
Push status changes to Allegro |
src/Modules/Settings/AllegroStatusDiscoveryService.php |
Fetch available Allegro statuses |
src/Modules/Shipments/AllegroShipmentService.php |
Create shipments via Allegro |
src/Modules/Shipments/AllegroTrackingService.php |
Track delivery status |
shopPRO (Polish e-commerce — API Key)
Auth: API Key + Base URL in integration config
Pagination: page/per_page, max 100 items
Date filter: updated_from parameter
| File | Purpose |
|---|---|
src/Modules/Settings/ShopproApiClient.php |
fetchOrders(), status/payment sync |
src/Modules/Settings/ShopproOrdersSyncService.php |
Order import/sync |
src/Modules/Settings/ShopproPaymentStatusSyncService.php |
Payment sync |
src/Modules/Settings/ShopproStatusSyncService.php |
Status mapping |
src/Modules/Settings/ShopproOrderMapper.php |
Order transformation (867 LOC) |
Apaczka (Polish parcel aggregator)
Auth: App ID + App Secret
Base URL: https://www.apaczka.pl/api/v2
Custom exception: src/Core/Exceptions/ApaczkaApiException.php
| File | Purpose |
|---|---|
src/Modules/Settings/ApaczkaApiClient.php |
getServiceStructure(), sendOrder(), getOrderDetails(), getWaybill() |
src/Modules/Shipments/ApaczkaShipmentService.php |
Implements ShipmentProviderInterface |
src/Modules/Shipments/ApaczkaTrackingService.php |
Implements ShipmentTrackingInterface |
InPost (Parcel lockers + courier)
Auth: Organization token
Production: https://api-shipx-pl.easypack24.net/v1
Sandbox: https://sandbox-api-shipx-pl.easypack24.net/v1
Services: Paczkomat Standard, Kurier Standard, Kurier Express
| File | Purpose |
|---|---|
src/Modules/Shipments/InpostShipmentService.php |
Create shipments |
src/Modules/Shipments/InpostTrackingService.php |
Track delivery status |
Provider Abstraction
Shipment providers implement a common interface:
ShipmentProviderInterface—createShipment(),downloadLabel()ShipmentTrackingInterface—getDeliveryStatus()ShipmentProviderRegistry— selects correct provider by typeShipmentTrackingRegistry— selects correct tracker
Email (SMTP via PHPMailer)
Library: PHPMailer 7.0
Config: Multiple mailboxes from DB (EmailMailboxRepository)
Features: HTML + attachments, template variable resolution, logging
| File | Purpose |
|---|---|
src/Modules/Email/EmailSendingService.php |
Compose & send via configured mailbox |
src/Modules/Email/VariableResolver.php |
Replace {{var}} in templates with order data |
src/Modules/Email/AttachmentGenerator.php |
Generate PDF attachments via Dompdf |
src/Modules/Email/EmailMailboxRepository.php |
SMTP credentials & config |
src/Modules/Email/EmailTemplateRepository.php |
Email template storage |
Print Queue API (Windows client)
Auth: Bearer API key (header Authorization: Bearer {key})
Purpose: Windows desktop client retrieves print jobs (shipment labels)
| File | Purpose |
|---|---|
src/Modules/Printing/PrintApiController.php |
POST /api/print/jobs, status endpoints |
src/Modules/Printing/ApiKeyMiddleware.php |
Validates API key against DB |
src/Modules/Printing/PrintApiKeyRepository.php |
API key management |
src/Modules/Printing/PrintJobRepository.php |
Job queue tracking |
PDF & Excel (Libraries)
| Library | Version | Used For |
|---|---|---|
dompdf/dompdf |
^3.1 | Receipts, invoices, email attachments |
phpoffice/phpspreadsheet |
^5.5 | Accounting export to XLSX |
SSL / HTTP
All external API calls use cURL with certificate validation.
Resolver: src/Core/Http/SslCertificateResolver.php
Config: CURL_CA_BUNDLE_PATH in .env
Integration Config Storage
| Table | Contents |
|---|---|
integrations |
Base record (source type, enabled, API key encrypted) |
allegro_integration_settings |
OAuth tokens (encrypted), Allegro-specific config |
*_status_mappings |
Bidirectional status code translations |
email_mailboxes |
SMTP connection settings |
print_api_keys |
Print client API keys |