Automating Akeneo Exports: Scheduled Sync Without Custom Scripts
Running a one-time Akeneo export is the easy part. Setting up recurring, reliable exports that keep your database fresh — without babysitting a cron job — is where most teams struggle.
Why one-time exports aren't enough
Your Akeneo catalog changes continuously — product managers update descriptions, prices change, new SKUs are added, discontinued products get disabled. A database export that runs once is stale within hours.
Hourly
E-commerce storefronts where price or stock changes matter
Use incremental only — full hourly export is too expensive for large catalogs
Daily
Most analytics, BI reporting, and recommendation engine use cases
Sweet spot: incremental at 2am, weekly full on Sunday
Weekly
Marketing catalogs, print assets, static data consumers
Full export weekly is fine when data freshness requirements are loose
The DIY cron approach: what it actually involves
If you decide to build scheduled exports yourself, here's what you're signing up for:
# Typical cron setup for daily Akeneo export: # /etc/cron.d/akeneo-export 0 2 * * * www-data /usr/bin/python3 /opt/akeneo-export/incremental.py >> /var/log/akeneo-export.log 2>&1 0 3 * * 0 www-data /usr/bin/python3 /opt/akeneo-export/full-export.py >> /var/log/akeneo-export.log 2>&1 # What your scripts need to handle: # - OAuth2 token acquisition # - Token refresh during long exports # - API pagination (search_after for large catalogs) # - Product model flattening (parent attribute merging) # - State tracking: "what was the last successful export timestamp?" # - Database upsert logic (insert new, update changed, mark deleted) # - Error handling + alerting when it fails # - Log rotation # - Server uptime (if the server restarts mid-export, what happens?)
What goes wrong
- •Cron fires but server is under load — export times out midway
- •Token expires during a 2-hour full export
- •Network blip causes 5 minutes of data gap
- •Script fails silently — you find out 3 days later
What you need to add
- •Retry logic with exponential backoff
- •Alerting (PagerDuty / Slack) on failure
- •State file to resume from last checkpoint
- •Monitoring dashboard for export health
Incremental vs full exports: when to use each
| Incremental | Full export | |
|---|---|---|
| What it syncs | Only products updated since last run | All products in the catalog |
| Speed | Fast — typically < 1 min for daily changes | Slow — scales with catalog size (10k products ≈ 5–10 min) |
| Handles deletions? | No — deleted products stay in DB | Yes — full reconciliation removes deleted products |
| Best for | Daily/hourly freshness updates | Weekly reconciliation, initial load, disaster recovery |
| API filter used | updated_after={last_run_timestamp} | No filter — fetches all pages |
Recommended setup: daily incremental at 2am + weekly full on Sunday at 3am. The daily run keeps data fresh; the weekly full run catches any drift or deletions.
Recommended schedule patterns by use case
E-commerce storefront
Every 2 hours (incremental) + daily full at 1amPrices and stock need to be reasonably fresh; a 2h lag is acceptable for most headless commerce setups
Analytics / BI reporting
Daily incremental at 2am + weekly full on SundayDashboards refresh daily — there's no value in more frequent exports. Weekly full catches catalog cleanup.
Search index (Algolia, Elasticsearch)
Every 30 minutes (incremental) during business hours, hourly at nightSearch results should reflect catalog edits quickly; 30-min lag is typical for PIM-to-search pipelines
ERP / inventory system sync
Real-time webhooks (if available) or every 15 minutesERP integration typically needs near-real-time data. Consider Akeneo's event API if on Serenity.
Setting up scheduled exports in SyncPIM (5 minutes)
SyncPIM has built-in scheduling — no cron jobs, no servers to manage, no infrastructure to maintain:
- 1
Create your export configuration
Connect Akeneo + destination database, configure field mapping and enrichers.
- 2
Open the Scheduling tab
In the export configuration editor, click the Schedule tab.
- 3
Choose incremental or full
Select 'Incremental sync' (recommended for recurring) or 'Full export' (for weekly reconciliation).
- 4
Set the schedule
Choose from presets (every hour, daily at 2am, weekly on Sunday) or enter a custom cron expression.
- 5
Activate
Toggle the schedule on. SyncPIM will run the export automatically — you'll see run history, duration, and any errors in the Monitoring tab.
Set up your first scheduled export in minutes
No cron jobs. No servers. SyncPIM handles scheduling, retries, and monitoring automatically.