attlaz / magento2-module-attlaz-order
Attlaz Magento2 Order Module
Package info
github.com/Attlaz-Platform/magento2-module-attlaz-order
Type:magento2-module
pkg:composer/attlaz/magento2-module-attlaz-order
Requires
- php: >=8.2
- attlaz/magento2-module-attlaz-base: ^3.2
- magento/framework: >=103.0.6
- magento/module-backend: >=102
- magento/module-sales: >=103
- magento/module-ui: >=101
Requires (Dev)
- friendsofphp/php-cs-fixer: ^v3.17.0
- phpstan/phpstan: ^1.10.16
- phpunit/phpunit: ^9.5
- thecodingmachine/phpstan-safe-rule: ^v1.2.0
README
Attlaz is a cloud-based integration, automation and data management platform.
Getting started
composer require attlaz/magento2-module-attlaz-order
Requirements
- PHP >= 8.2
- Magento Open Source / Adobe Commerce 2.4.6+
attlaz/magento2-module-attlaz-base3.2+
How order synchronization works
The module hands Magento orders to an Attlaz flow. Four fields are stored on each order (and mirrored to the sales order grid):
attlaz_external_id— set once the order has been handed to Attlaz; its presence marks the order as syncedattlaz_sync_id— the Attlaz flow-run id used to poll statusattlaz_sync_status— one ofrequested,running,complete,failed,invalid,unknownattlaz_sync_time— timestamp of the last sync attempt
Two cron jobs run every 5 minutes (default group), each handling up to 20 orders per run:
attlaz_order_sync_unsynced— finds orders without anattlaz_external_idand requests an Attlaz flow run for eachattlaz_order_sync_status— polls the flow-run status of in-progress orders and updatesattlaz_sync_status
Synchronization only runs when Enable order sync is turned on (see Configuration below) and, for flow-based sync, a sync order flow is configured (Stores → Configuration → Attlaz).
You can also trigger a sync manually from the admin order view (the Sync button) or via CLI:
bin/magento attlaz:sync:orders bin/magento attlaz:sync:order-statuses
Configuration
Stores → Configuration → Attlaz → Order sync:
- Enable order sync — master on/off switch for the automatic (cron) sync. Disabled by default (since 3.1.0), so on upgrade the sync stays off until you turn it on. The manual per-order Sync button still works regardless.
- Synchronize order key — the Attlaz flow that receives the orders. (Not required if the sync is driven by a
custom plugin on
SyncOrderCommand::sync()instead of a flow.) - Sync orders from date — only orders created on or after this date are synced; leave empty to sync all. Useful on first rollout to avoid re-sending your whole order history.
- Order states to sync — restrict the sweep to selected order states (e.g. Processing, Complete); leave empty to sync all states.
Retry behaviour
A failed sync request marks the order failed and leaves it without an attlaz_external_id, so the
attlaz_order_sync_unsynced cron picks it up again and retries it on the next run.
Note: there is currently no retry limit or backoff. An order that fails permanently (e.g. because of invalid data) will keep being retried indefinitely — one API request and one log line per cron run. This is intentional so that transient failures self-heal, but keep it in mind when investigating repeated failures. A future version may add a capped / backing-off retry.
Getting Help
- Attlaz Documentation
- Issue Tracker — questions, bug reports and feature requests
- Developer support: developers@attlaz.com