Marketplace Sync Issues
When to use this runbook
- Stock levels drifting between Logidav and marketplaces
- Orders missing from marketplace import
- Product catalog out of sync
- Price updates not propagating
Step 1: Identify the affected marketplace
| Marketplace | Connector | Key commands |
|---|---|---|
| Amazon | ShoppingFeed / direct | menzzo:erp:shopping-feed:sync:sales |
| Lengow Menzzo | Lengow V3 account 5622 | menzzo:lengow:sales --marketplace=5622 |
| Lengow Cotecosy | Lengow V3 account 6395 | menzzo:lengow:sales --marketplace=6395 |
| Mosaikasa | Lengow V3 account 17220 | menzzo:lengow:sales --marketplace=17220 |
| Cdiscount | ShoppingFeed / Lengow | menzzo:lengow:sales --marketplace=<account> |
| ManoMano | ShoppingFeed / Lengow | menzzo:lengow:sales --marketplace=<account> |
Check which sync commands are failing:
# Check recent marketplace-related errors
grep -i "shopping.feed\|lengow\|amazon\|cdiscount\|manomano" var/logs/prod.log | tail -30
Step 2: Check sync command status
Verify the relevant cronjobs ran successfully:
# Check if the sync commands have run recently
ls -lt /var/log/logidav/ | grep -i "shopping\|lengow\|sync"
# Check for errors in the last run
grep -i "error\|exception" /var/log/logidav/<sync-command>.log | tail -20
Review the cronjob catalog for expected schedules.
Step 3: Diagnose stock drift
Compare Logidav stock quantities with marketplace inventory:
# Check current Logidav stock for a product
mysql -e "SELECT sku, qty, name FROM mz_product WHERE sku = '<sku>';"
# Check recent stock mutations
# ProductQtyLogService records all stock changes
mysql -e "SELECT * FROM product_qty_log WHERE product_id = <product_id> ORDER BY created_at DESC LIMIT 20;"
Stock drift usually happens when a sync command fails silently or when the marketplace API rejects an update without a clear error.
Step 4: Diagnose missing orders
Check the order import cursor/timestamp:
# Check the last imported order ID (cursor)
mysql -e "SELECT * FROM configuration WHERE path LIKE '%cursor%' OR path LIKE '%last_id%';"
Verify the marketplace API returns the expected orders:
- Check the marketplace seller portal for recent orders
- Compare with orders in Logidav
- Look for orders that exist on the marketplace but not in Logidav
Step 5: Recovery
Stock drift
Force a full stock sync via the dedicated command:
php bin/console app:publish-products-managestock-and-qty-to-queue
Missing orders
Re-run the import with an adjusted cursor:
# Adjust the cursor to re-import missed orders
# Be cautious: ensure the import is idempotent (upsert)
php bin/console menzzo:v2:sales --from-id=<last_known_good_id>
For Lengow V3, replay by account and import date instead of a Magento cursor:
php bin/console menzzo:lengow:sales --marketplace=5622 --importFrom=2026-05-01
php bin/console menzzo:lengow:sales --marketplace=6395 --importFrom=2026-05-01
php bin/console menzzo:lengow:sales --marketplace=17220 --importFrom=2026-05-01
When a Lengow sale is present but stuck, check whether it is status = holded or has lengow_error_message set. Those paths are maintained by src/ErpBundle/Services/Lengow/V3/LengowService.php, src/ErpBundle/Command/Lengow/V3/UpdateLengowStatusCommand.php, and src/ErpBundle/Command/Lengow/V3/LengowOrderIssueAlertCommand.php.
Catalog sync
Re-run the product sync command:
php bin/console menzzo:v2:products
Price updates
Re-run the price calculation and sync:
php bin/console menzzo:marketing:product:calculate-price
Common failure patterns
| Symptom | Likely cause | Resolution |
|---|---|---|
| Stock shows 0 on marketplace but available in Logidav | Sync command failed or was skipped | Force stock sync |
| Orders appearing late | Import cursor stuck or API pagination issue | Reset cursor and re-import |
| Products missing from marketplace | Catalog sync error or product validation failure | Check product data, re-run sync |
| Prices not updating | Price calculation cron not running | Run price calculation, then sync |
Lengow order imported as holded | Product resolution or sale creation failed | Check the cart merchant product id, especially Mosaikasa account 17220 where it must match mz_product.ean_bis |
| Lengow status mismatch alert | Lengow action status does not map to the local sale status | Review lengow_error_message, then rerun menzzo:lengow:update-status after fixing the underlying action |
| Old Auchan feed still appears | Retired V2 feed 113959 was left in cron or menu docs | Keep /erp/lengow/v2/all/113959 and menzzo:lengow:v2:sales --feedId=113959 retired |
See also
- API Failure Triage — if the marketplace API itself is failing
- Lengow Integration
- Stock Update workflow
- Sales Import workflow
- Sync cronjobs