Skip to content

OpenImport 1.3.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 14:40
· 45 commits to main since this release
2fb03f2

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 in var/import/images/openimport and 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 type configurable, 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 transform fill_down (Fill from the row above). See
    Presets.
  • Row steps (RowStepInterface, AbstractRowStep): a seam between mapping and Magento's import with observe,
    columns, observeIdentifiers, apply and finish hooks, and PostImportStepInterface for changes after the
    import; pictures, configurable products and missing products are built on it.

Changed

  • Step fields such as configurable:parent_sku are 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.