Import and keep in sync huge supplier catalogs — products, prices, stock, images — from any feed, on a schedule, without touching your hand-made products. Built for catalogs with tens or hundreds of thousands of items.
€499.00 + VAT
Indicative total, incl. Italian VAT: €608.78 — the exact amount is calculated at checkout and is waived for EU business buyers with a valid VAT number (reverse charge).
one-time payment · one domain · perpetual license, 1 year of updates & support (renew at −35%)
✓ License active immediately after payment, sent by email
✓ Instant installation via Composer
✓ First domain change included and instant (handy for staging → production)
✓ Compatible with Magento 2.4.x (tested on 2.4.9) and with the Hyvä theme
What it does
Multiple independent Import Profiles, one per supplier/feed
CSV, XML or JSON feeds — over URL, local file, or FTP
Column-to-attribute mapping, with formulas and text functions
Configurable products (variants), including multiple simultaneous attributes
Grouped products (independent items sold together)
Category tree created automatically from the feed's category path
Image gallery with role mapping (base/small/thumbnail/gallery) and automatic compression
Group/Rule filters to route different subsets of a feed to different categories or markups
Absolute or relative stock updates, backorders, "new" flag
Live preview of unsaved changes, before you save the profile
Scheduling per profile (cron), or run on demand from a button/CLI
Safe, reversible deletions: products are disabled first, deleted only after a configurable grace period
Full compatibility with M2E Pro: changes are correctly reported to it even with the fastest write strategy (direct SQL)
Adopt it on a catalog that is already indexed, without changing a single address: product URL key, category tree root, category path and image file names are configurable templates, so they can match exactly what your current importer already produces.
Fully translated admin, in 7 languages
The whole admin interface — every label, tooltip and guide — is available in:
English Italiano Español Français Deutsch Português Nederlands
Magento automatically shows the module in whichever language each admin user has configured — no setup needed.
Built for real catalog sizes
These are real measurements from a production deployment, not lab estimates — a live store syncing a genuine large supplier catalog (hundreds of thousands of SKUs, hundreds of thousands of images) on ordinary, non-exotic server hardware.
Test
Volume
Result
Full catalog sync (products, prices, stock, categories)
339,707 feed rows
2m 01s, 0 errors
Stock & price-only sync
340,467 feed rows
7.2s, 0 errors
Direct-write throughput (SQL strategy, batched)
500 products/batch
~600 products/second
Parallel image downloads vs sequential
same image set
3.9x faster
Catalog scale handled in production
up to 708,000 images
compressed & queued without blocking catalog sync
Test server: 12-core Intel Xeon E5-2690 @ 2.90GHz, 10GB RAM, PHP 8.5, with the database on a separate dedicated server — a standard mid-range setup, not high-end hardware. The 600 products/second figure compares to roughly 1 product/second with Magento's native import mechanism on the same data.
Two problems you only meet once the shop is running
Neither of these appears while you are configuring an import. They appear weeks later, with real orders and real customers, and by then the catalogue is in production. We build these modules from behind the counter, so they are handled — with a switch, and with the trade-off stated up front.
The order you cannot ship
You sold two pieces on Monday. You have them, boxed, on the bench. On Wednesday you go to create the shipment and Magento refuses: the product is not available. Nothing is wrong with your stock — overnight the supplier ran out, the sync did its job and set the quantity to zero.
When
What happens
Monday, 10:14
Customer orders 2 pieces. Stock goes 5 → 3.
Tuesday, 02:30
Supplier feed says 0. Sync writes quantity 0 and marks the item out of stock.
Wednesday, 09:00
You create the shipment. Magento blocks it: the product is unavailable.
Measured
On a live catalogue, 45 of the 700 out-of-stock items had orders still to ship.
With “Keep items with orders still to ship available” the quantity still drops to zero — that figure is true and stays true — but the stock row is not marked out of stock while an order is waiting to be shipped. You ship. Nobody else can buy it, because the quantity really is zero.
The usual workaround found in forums — turning off stock management on that product — makes it sellable forever, including when it really is finished, and nobody remembers to turn it back on. This switch does not do that. It gets sharper the more often you sync: updating stock every half hour means meeting this case 48 times more often than updating it once a night.
Your photo, somewhere else every morning
You photographed the product better than the supplier did, or added the shot with the measurements — the one that stops the phone calls. You put it last. Next morning it is in the middle. The morning after, somewhere else again. The feed numbers its own images 1 to N without knowing one of those slots is yours: two images end up claiming the same position, and which one wins is decided by an internal id.
Gallery
Before
With the switch on
1
Feed photo 1
Feed photo 1
2
your photo (or feed photo 2 — it changes)
Feed photo 2
3
Feed photo 3
Feed photo 3
4
Feed photo 4
Feed photo 4
5
Feed photo 5
Feed photo 5
6
—
your photo, every night
With “Keep images you added by hand” your photo is placed after the ones from the feed and stays there. An article with 5 feed photos plus yours: yours is number 6, tonight and every night. Turn the switch off instead and the gallery mirrors the feed exactly — images that are not in the feed are detached from the product, while the file itself is kept, because it may belong to another product too.
One thing said up front, rather than discovered later: if the article disappears from the feed and the module deletes it, your photo goes with it. It is the same product page — there is no way to delete the product and keep one of its images attached. If you want to keep it, download it first, or turn off automatic deletion of articles that left the feed.
Documentation
Full installation steps and a complete field-by-field user guide (mapping, formulas, configurable and grouped products, categories, images, scheduling, CLI) live on their own reference page:
Not satisfied within 30 days of purchase? Request a refund yourself from your account area (codingrow.com/login), no questions asked. The refund is processed instantly, automatically, and the license is deactivated upon confirmation.
Changelog
Current version: v3.21.0
v3.21.0Maintenance
Two products with the same URL no longer steal each other’s page: the one already using it keeps it, the other gets its SKU appended.
v3.20.1Maintenance
Configurable product variants show again on Luma-based themes even when their values are new. A catalogue sync is all it takes.
v3.20.0New
The image file name built from the feed now works for variant parent products too.
A warning in the log and in the preview when the file name finds no data: the import carries on.
A repair command for products that were showing another item's photo.
Important fix: every parent product shows its own photo again, the same across the whole store.
v3.19.1Maintenance
Catalogue import no longer stops when two products generate the same web address. Anyone who was blocked can run the synchronisation again.
v3.19.0New
In roles, the Import Profiles checkbox: profiles for a collaborator, without Configuration.
Whoever already opened the module keeps access after the update.
The Global settings button appears only to those who can open it.
v3.18.0New
Items at zero stay purchasable if you chose to sell them: no more carts that refuse the order.
A command lists the ones the cart would refuse, and puts them right.
If any turns up after a sync, the summary email says so.
New field: the feed column that declares availability, if your supplier sends one.
Important fix: availability is decided in one place, and a parent no longer takes it from the supplier.
v3.17.1Maintenance
The page of a product with variants no longer offers another item's options. Catalogues already hit are put right by a forced import.
v3.17.0New
An item stays shippable while an order is waiting, even if the stock has dropped to zero.
The photo you added sits after the supplier's and stays there.
Both have a switch, on by default.
v3.16.1Maintenance
The count of failed images and the count of images actually missing are now two separate numbers.
v3.16.0New
New button to requeue the failed images.
Before pressing it you see the causes grouped by frequency, and can retry just one.
All six languages of the module now cover the whole admin.
v3.15.2Maintenance
Maintenance: a flawless image run could send an email announcing errors, and the notification choices did not behave as selected. Fixed.
v3.15.1Maintenance
On catalogues with variants the attributes you configured reach the parent product, and images shared by several products no longer interfere.
v3.15.0New
You decide how a product's address is built and how the image files are named.
You also decide where the category tree starts.
The defaults match the old behaviour exactly: updating changes nothing.
The preview shows address, path and file names before you save.
v3.14.2Maintenance
Maintenance: large catalogues no longer risk interrupting the import for lack of memory.
v3.14.1Maintenance
A product that comes back in the feed goes back on sale by itself. Catalogues imported with 3.14.0 recover those products with a forced sync.
v3.14.0New
Feed changes are applied field by field: only what really changed gets rewritten.
If only the stock moves, the product address stays and so do the texts.
No images requeued because of a stock movement.
The update asks nothing of you.
v3.13.0Maintenance
Maintenance: deleting all downloaded images now frees all the space it promised.
v3.12.0New
You get back the space of resized copies of images no longer linked to any product.
Removed copies regenerate by themselves on the first visit that asks for them.
Completed queue entries are cleared after a period you choose.
Disk space running out is flagged earlier.
v3.11.1New
The image queue says why an image was not downloaded, instead of one message for everything.
It tells an image the supplier removed from a supplier that was not reached.
v3.10.2Maintenance
Maintenance: products that had disappeared from the feed were not deleted even with the option enabled. Now they are.
v3.10.0Maintenance
An updated image no longer lands in the wrong position when only some of the photos change. Products already hit are put right by support.
v3.9.0New
Allowed categories can be picked at any level of the feed tree, not just the first.
Pick a deep branch or a single leaf to import only that.
It is only a filter on what comes in: the shop's category tree does not change.
v3.8.0New
Mapping formulas now have three roundings: up, down and to the nearest.
It is how a selling price ends on the next whole unit instead of 23.40.
v3.4.0Maintenance
Maintenance: further alignment between category redirects and the sitemap.
v3.3.9Maintenance
Maintenance: product addresses now follow Magento's own Catalog SEO setting for category paths.
v3.3.8New
It accepts the subscription key: one subscription activates this module along with the others.
Single-module licences keep working exactly as before.
v3.3.7New
The Strip HTML tags transform is now available on every text field of the feed.
Handy when the supplier sends descriptions already laid out.
v3.3.6New
New Strip HTML tags transform on mapping rows.
It takes the formatting out of a supplier column's value.
v3.3.5Maintenance
Maintenance: installing the module for the first time on a brand-new store could fail. Fixed.
v3.3.4Maintenance
Maintenance: products whose feed left the thumbnail column empty no longer appear without an image on category and listing pages.
v3.3.3Maintenance
The count of updated rows now counts only real changes, and syncs with few changes are faster.
v3.3.2Maintenance
Maintenance: the sync log messages now appear in the language of the administrator reading them.
v3.3.1Maintenance
Maintenance: the image queue history now shows the figures of each individual run instead of a running total.
v3.3.0Maintenance
The image queue is much faster on large catalogues, and the estimated time left can be trusted.
v3.2.6New
The wait before downloading a supplier's feed again is now a setting.
It keeps repeated tests from eating a supplier's daily download allowance.
v3.2.5Maintenance
Maintenance: a profile with no SKU prefix is now a fully supported choice in every situation.
v3.2.4Maintenance
Maintenance: the image queue messages now appear in the language of the administrator reading them.
v3.2.3Maintenance
Maintenance: the image queue progress message could stay in English on a store in another language. Fixed.
v3.2.2Maintenance
Maintenance: sync messages now follow the language of the store view instead of the server's.
v3.2.0New
Image compression is a per-profile choice, no longer one setting for everyone.
Each supplier can be compressed differently, or not at all.
v3.1.1New
New per-profile option that notifies M2E Pro at the end of a sync.
For those who also sync the same products to marketplaces.
v3.0.1Maintenance
Maintenance: some texts still appeared in Italian on stores in other languages. Fixed.
v3.0.0New
First public version, under the new name MMIS (Massive Multifeed Import&Sync).
Import and sync of several supplier feeds into a single shop.
Import Profiles: each supplier/feed is its own independent profile (mapping, schedule, settings), replacing a single shared configuration
Grouped products: independent items sold together as a kit
Multi-attribute configurable products, verified with several variant attributes changing at once
Mapping engine: math formulas, multi-field text replacement before mapping, 7 template functions (ucase/lcase/proper/trim/left/val/replace)
Live mapping preview, next to the downloadable output file
Three feed sources (URL, Magento file system, FTP) and three formats (CSV/XML/JSON)
Automatic category tree creation, plus one-click orphaned-category cleanup