Repository navigation
OpenImport 1.3.0
OpenImport 1.3.0 — import and export for Magento 2 and Mage-OS. Free, MIT, built on Magento's own import engine.
Install: composer require iranimij/openimport && bin/magento module:enable Iranimij_Base Iranimij_OpenImport && bin/magento setup:upgrade
Documentation: https://iranimij.github.io/openimport/
Catalog helpers: every product helper of the paid import modules (plan 1.3–1.6, release 1.3).
Added
- Product pictures from web addresses: OpenImport downloads them itself (SSRF check on every redirect, JPG/PNG/GIF
checked by their first bytes, size and time limits), keeps them invar/import/images/openimportand asks the
server with ETag/Last-Modified before downloading again. Profile option Pictures that cannot be read: report the
row or import it without the picture. Settings under Pictures from web addresses; housekeeping removes pictures
no run used for 30 days. See Product pictures. - Configurable products from simple rows: map a column to Parent SKU (configurable products), choose the variation
attributes; OpenImport builds the parent (name from the variants or a mapped column, values from the first
variant), hides the variants, gives new variants unique URL keys and lists every variant in the file even with
Skip unchanged rows. A parent's own row (product typeconfigurable, as WooCommerce exports) is used. See
Configurable products. - Products missing from the file: a product profile can treat its file as the complete list and disable, set out of
stock or delete the products of a scope (all, a website, an attribute value such as a supplier) that the file does
not name, after the import, in the dry run, under the safety limit with a typed confirmation (DISABLE, OUT OF
STOCK, DELETE); a run with row errors changes nothing. See
Products missing from the file. - Quantities as changes: Quantities in the file → are changes (+5, -3) for products, Stock & prices and stock per
source (MSI); current quantities are read per batch, repeated SKUs add up, the dry run shows the result. See
Quantities as changes. - URL keys from a pattern (
{name}-{sku}) for rows without a URL key, with duplicate keys reported with the other
SKU, and Redirect old URLs (301) for changed URL keys. See
URL keys and redirects. - Conditional transforms: every transform can have Only when (an expression such as
{Brand} = 'Acme'or
value > 20); other rows keep their value. - Several files per run: Which file → All matching files, one run each (by name) for folder, SFTP and FTP
sources, each file with its own run, report and move; When a file fails: go on or stop. - Presets: Or start from a preset creates a product profile for Shopify (current and classic columns),
WooCommerce and Magento 1 product files. New transformfill_down(Fill from the row above). See
Presets. - Row steps (
RowStepInterface,AbstractRowStep): a seam between mapping and Magento's import withobserve,
columns,observeIdentifiers,applyandfinishhooks, andPostImportStepInterfacefor changes after the
import; pictures, configurable products and missing products are built on it.
Changed
- Step fields such as
configurable:parent_skuare never sent to Magento, also when their step is off. - The dry-run preview compares what Magento receives (after pictures, variants and quantity changes), not the raw
mapped values. - Live imports lock Magento's entity, so products and Stock & prices runs no longer run at the same time.
- Product pictures given as file names are read from
var/import/images(as in Magento's own import), not from
pub/media/import.