Installation
The plugin has two independent installations: the PHP module in Magento and the .NET microservice on the Optima server. Install order doesn't matter — it only works once both are configured and can see each other over the network.
1. Sisl.Sync.Service (Windows Server)
Server requirements
- Windows Server 2019 or newer
- Comarch Optima installed, database in SQL Server (local or remote)
- Windows administrator account (for service installation)
- Free TCP port 5000 (or other, configurable)
Step by step
1.1. Extract Sisl.Sync.Service-v0.1.0-win-x64.zip to C:\Sisl\sync\publish\ (or other location).
1.2. Open appsettings.Local.json (copy from appsettings.Local.json.example) and fill in:
{
"Sisl": {
"Backend": "optima",
"ListenUrl": "http://0.0.0.0:5000",
"SharedSecret": "<32-byte hex, openssl rand -hex 32>",
"Optima": {
"Server": "YOUR-SERVER\\OPTIMA",
"Database": "CDN_Firma_Yours",
"IntegratedSecurity": true,
"TrustServerCertificate": true,
"ConnectTimeoutSec": 10
},
"License": {
"Key": "SISL-OPT-XXXX-XXXX-XXXX-XXXX",
"ServerUrl": "https://license.sisl.pl",
"ProductCode": "sisl_optima"
}
}
}
1.3. Grant the service account (NT AUTHORITY\SYSTEM) db_datareader access on the Comarch database:
USE [CDN_Firma_Yours];
CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;
CREATE USER [NT AUTHORITY\SYSTEM] FOR LOGIN [NT AUTHORITY\SYSTEM];
ALTER ROLE [db_datareader] ADD MEMBER [NT AUTHORITY\SYSTEM];
1.4. Register as a Windows Service (PowerShell as Administrator):
sc.exe create SislSyncService binPath= "C:\Sisl\sync\publish\Sisl.Sync.Service.exe" start= auto DisplayName= "SISL Optima Sync Service"
sc.exe description SislSyncService "SISL Sync — bridge between Magento and Comarch ERP Optima"
sc.exe start SislSyncService
1.5. Open port 5000 in Windows Firewall (only for internal network / VPN):
New-NetFirewallRule -DisplayName "SISL Sync Service - LAN" `
-Direction Inbound -Protocol TCP -LocalPort 5000 `
-RemoteAddress "192.168.0.0/16","10.0.0.0/8","100.64.0.0/10" `
-Action Allow -Profile Any
1.6. Internal test:
Invoke-WebRequest http://localhost:5000/healthz | Select-Object -ExpandProperty Content
Expected response:
{"backend":"optimasqlclient","databaseName":"CDN_Firma_Yours","connected":true,
"info":"products=143","license":{"valid":true,"reason":"valid"}}
2. Magento module
Composer install (recommended)
cd /var/www/html
composer config repositories.sisl composer https://repo.sisl.pl
composer require sisl/module-optima:^0.1
bin/magento module:enable Sisl_Optima
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
Manual install (from ZIP)
cd /var/www/html
mkdir -p app/code/Sisl
unzip Sisl_Optima-v0.3.0.zip -d app/code/Sisl/
bin/magento module:enable Sisl_Optima
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
Required PHP extension
Magento 2.4.8+ requires ext-ftp. If you use Mark Shust's Docker image, add to your Dockerfile:
FROM markoshust/magento-php:8.3-fpm-2
USER root
RUN docker-php-ext-install ftp
USER app
3. Magento admin configuration
Stores → Configuration → SISL → Optima Connector
In section 0. License:
- License key (received via email after purchase)
- License server: https://license.sisl.pl (default)
In section 1. Connection:
- Enabled: Yes
- Sisl.Sync.Service URL: http://192.168.x.x:5000 (LAN IP of Optima server)
- HMAC shared secret: same value as in appsettings.Local.json/SharedSecret
- HTTP timeout: 15
Other sections: see Configuration →
4. First sync
After saving configuration:
SISL Optima → Dashboard in left sidebar → button "Sync products + stock now".
First run pulls all products from Optima into Magento. Time depends on SKU count (1000 products ≈ 15-30s).
5. Verification
SISL Optima → Diagnostics should show 14 green OK. If something is WARN/FAIL — click on it, the hint will show what to fix.
Next: Configuration →