What this plugin does
Allegro Orders Sync for WooCommerce connects one Allegro seller account to WooCommerce. It imports Allegro checkout forms as native WooCommerce orders every 15 minutes, keeps their status in step with Allegro, uploads tracking and marks orders SENT when you ship, cancels on Allegro when you cancel, and pushes WooCommerce stock to your Allegro offers every hour.
Everything happens in the background on Action Scheduler (or WP-Cron if Action Scheduler is unavailable). Nothing runs until you have connected an account and ticked Enable syncing.
Requirements
- WordPress 5.8 or later and PHP 7.4 or later
- WooCommerce 7.0 or later (tested up to 9.9), HPOS or legacy order storage
- An Allegro seller account and an app registered at apps.developer.allegro.pl
- An HTTPS site, so Allegro can redirect back after authorisation
Installation
- In WordPress go to Plugins → Add New → Upload Plugin, choose the zip, install and activate. WooCommerce must be active first.
- Open WooCommerce → Allegro Sync. The screen has three tabs: Settings, Sync log and Status.
Connecting your Allegro account
- Sign in at apps.developer.allegro.pl with your seller account and register a new application.
- Choose the application type that signs in through a web browser (authorisation-code flow).
- Grant it the order read/write and offer management scopes.
- Copy the redirect URI shown in the Getting connected box on the plugin’s Settings tab and paste it into the app. It looks like
https://yourstore.com/wp-admin/admin-post.php?action=rau_aos_action&do=callback. - Paste the app’s Client ID and Client Secret into the plugin and click Save.
- Click Connect Allegro account, sign in on Allegro and approve access. You return to the settings screen and Connected as shows your seller login.
- Press Test connection, then tick Enable syncing and save.
To try the flow safely first, tick Sandbox and use credentials from an app registered on Allegro’s sandbox with a sandbox seller account. Sandbox and production are separate environments, so switching requires reconnecting.

Settings reference
| Setting | What it does |
|---|---|
| Client ID / Client Secret | Credentials of your Allegro app. The secret is stored encrypted; leave the masked value untouched to keep the saved one. |
| Sandbox | Use Allegro’s sandbox API instead of production. |
| Connected as | Read-only. The Allegro seller login the plugin is authorised for. |
| Enable syncing | Master switch for all scheduled jobs. Untick to pause without losing settings. |
| Import | Import Allegro orders every 15 minutes. |
| Import orders with status | Which checkout forms to import — normally Ready for processing (paid). Other options: Bought (awaiting payment), Filled in, Cancelled. |
| Status for imported orders | The WooCommerce status new Allegro orders get, usually Processing. |
| Mark sent on Allegro when status becomes | When an order reaches this WooCommerce status (usually Completed), tracking is uploaded and the order set to SENT. |
| Default carrier | Carrier used when the order has none set. It can be overridden per order. |
| Cancel on Allegro when status becomes | Cancelling in WooCommerce with this status cancels the order on Allegro, provided it has not been sent. |
| Look back (days) | How far back each sync looks for orders. The free version allows up to 30 days. |
| Stock sync | Push WooCommerce stock to your Allegro offers every hour. |
Buttons on the settings screen
| Button | What it does |
|---|---|
| Connect Allegro account | Starts the OAuth authorisation on Allegro. Appears once the Client ID and Secret are saved. |
| Test connection | Makes a harmless API call and reports the result in the log. |
| Sync orders now | Runs an order import immediately instead of waiting for the schedule. |
| Push stock now | Sends current stock to Allegro immediately. |
| Rebuild offer map | Walks your Allegro offers and records every offer with a seller signature — needed before stock sync can match products. |
| Clear offer map | Forgets the recorded offers. Rebuild afterwards. |
| Refresh token | Forces an access-token refresh. Normally automatic. |
| Disconnect | Removes the stored tokens. Orders already imported are not touched. |
How orders are imported
Every 15 minutes the plugin asks Allegro for checkout forms with your chosen status, updated within the look-back window. Each one becomes a WooCommerce order with its line items, delivery cost, buyer login, delivery address and — when the buyer entered one — the invoice address as billing address.
Products are matched by the offer’s seller signature, which should equal your WooCommerce SKU. A line with no match is still imported as a placeholder line item and the order gets a warning note, so nothing disappears silently.
Imports are keyed on the Allegro checkout-form ID. Running a sync twice never duplicates an order; it updates the existing one when Allegro’s status changes. Orders where the buyer requested a VAT invoice get a note on import and a warning in the log.
Sending tracking and marking orders SENT
Each imported order has an Allegro panel on the order edit screen, showing the Allegro order ID, buyer login, fulfilment status and whether the order has been marked sent. Below that you can set the carrier, a carrier name when the carrier is “Other”, and the tracking number.
When the order reaches the status set in Mark sent on Allegro when status becomes, the plugin uploads the tracking number as a shipment and then sets the fulfilment status to SENT. If you already record tracking with a shipment-tracking plugin, that number is used and popular carriers are mapped to Allegro carrier IDs automatically.
Cancelling the order in WooCommerce (before it is sent) cancels it on Allegro.

Stock sync
Allegro addresses stock per offer, so the plugin first needs to know which offer belongs to which SKU. Press Rebuild offer map once after connecting; it records every offer that has a seller signature. After that, stock is pushed hourly for every mapped offer.
Out-of-stock products push zero. Products that do not manage stock push a large placeholder quantity, which you can change with the rau_aos_unmanaged_stock_value filter, and a safety buffer can be held back with rau_aos_stock_buffer.
The sync log and Status tab
The Sync log tab lists every import, update, shipment, stock push and error, newest first, with filters for Success, Info, Warnings and Errors. Entries about a specific order link straight to it, and errors carry the raw API detail so you can see what Allegro actually said. Entries are kept for seven days.
The Status tab shows the environment, whether the app is configured and the account authorised, the seller, token expiry, mapped offers, last and next order sync, orders imported this month, errors in the last 24 hours and whether Action Scheduler or WP-Cron is running the jobs.

What the free version includes
- Up to 150 imported orders per month
- One Allegro account
- 15-minute order sync and hourly stock sync
- 30-day order look-back
- 7-day log retention
- Whole-order shipments (one tracking number per order)
Troubleshooting
| What you see | What to do |
|---|---|
| The Connect button returns an error from Allegro | The redirect URI in your Allegro app must match the one on the Settings tab exactly, including https and the query string. |
| Stock sync says no offers are mapped | Press Rebuild offer map. If the map stays empty, your offers have no seller signature — add one on each offer that equals the WooCommerce SKU. |
| Orders import with placeholder lines | The seller signature on that Allegro offer does not match any WooCommerce SKU. Fix the signature or SKU; future orders will match. |
| Nothing imports | Check that Enable syncing and Import are ticked, the status filter is Ready for processing, and the Status tab shows a next scheduled run. Then press Sync orders now and read the log. |
| Token errors after a long pause | Press Refresh token. If Allegro has revoked the grant, Disconnect and connect again. |
| The monthly limit was reached | The free version stops importing after 150 orders in a calendar month and logs a warning. Imports resume on the 1st. |
For developers: hooks
Every hook below is part of the plugin’s public surface and safe to use from a theme’s functions.php or a small site plugin.
| Hook | Type | Use it to |
|---|---|---|
rau_aos_order_imported | action | Run your own code after an Allegro order is created. Receives the WC_Order and the raw Allegro checkout form. |
rau_aos_stock_buffer | filter | Hold back a safety quantity per product. Receives 0 and the WC_Product. |
rau_aos_unmanaged_stock_value | filter | Quantity to send for products that don’t manage stock (default 999). |
rau_aos_stock_rows | filter | Adjust or remove rows just before stock is pushed. |
rau_aos_loaded | action | Fires once the plugin has booted. |
// Keep 2 units back on Allegro for every product.
add_filter( 'rau_aos_stock_buffer', function ( $buffer, $product ) {
return 2;
}, 10, 2 );Uninstalling
Deleting the plugin removes its settings, tokens, offer map, monthly counters and log table. Orders already imported stay in WooCommerce — they are ordinary orders.
Questions people ask
What exactly does “mark sent” do?
It uploads the tracking number as a shipment (when there is one) and then sets the order’s fulfilment status to SENT. Depending on your Allegro settings, uploading tracking alone may already move the order; doing both is safe either way.
Can I import unpaid orders?
Yes — set Import orders with status to Bought. Most sellers import only Ready for processing, which are paid.

