Repository navigation
OpenImport 1.4.0
OpenImport 1.4.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/
Connectors: every file source and destination of the paid import modules (plan 1.3–1.6, release 1.4).
Added
- Saved connections (System › Data Transfer › OpenImport Connections): SFTP and FTP logins with Test connection, shared
by profiles as source or export destination; secrets encrypted and never shown again; a connection in use cannot be
deleted; profile files name the connection instead of carrying a login. New ACL resource Manage connections. See
Saved connections. - Amazon S3 and S3-compatible storage (Cloudflare R2, Wasabi, MinIO, Garage, ...) as import source and export
destination, through a saved S3 connection: own Signature Version 4 client (no SDK), folders as key prefixes, all
matching files, move after success; every request through the URL guard. Tested against AWS's published signature
examples and an S3-compatible server in CI. - Google Drive and Google Sheets with a login, as import source and export destination: a service account (JSON key,
signed JWT) or a Google account (Sign in with Google: your own OAuth client, state and PKCE, refresh token stored
encrypted). Folders by link, id or path, Sheets read as Excel files, exports replace a file of the same name or
become a Google Sheet, moves intoprocessed, deletes go to the bin. - Dropbox and OneDrive / SharePoint as import source and export destination, through Sign in with Dropbox /
Sign in with Microsoft with the shop's own app (state, PKCE, refresh token stored encrypted). SharePoint document
libraries by site address; uploads in 10 MB parts on OneDrive. - REST APIs as import source and export destination: saved REST connection (header token, Basic, OAuth 2 client
credentials), paging by page numbers, offsets, cursors, next addresses or the Link header, records path, a page
limit that stops instead of importing a partial list, retries after 429/503 with Retry-After; exports send the
file or JSON batches. - Archives: a
.zip,.gz,.taror.tar.gzfile from any source is unpacked and the file inside is read
(File inside the archive: a name or pattern, else the first CSV, Excel, ODS, JSON or XML file); exports can be
packed as ZIP, gzip or tar.gz (Compress). Zip-slip-safe (fixed file name), size counted while unpacking (1 GB),
nested and password-protected archives refused. See Archives. - OpenDocument spreadsheets (
.ods, LibreOffice Calc) as import format (typed values, repeated cells and rows,
sheet by name or position, streamed) and export format (own writer, bold header row). Detected by the file's
mimetypeentry when the name says nothing. - XSLT: XSLT before reading (XML) turns a supplier's XML into records before the reader sees it, XSLT after
writing (XML) reshapes an XML export before delivery. libxslt runs with no file, network or PHP access
(document(),xsl:include,xsl:importrefused), no DOCTYPE, a 64 MB file limit; stylesheets are checked at
save. See File formats.
Fixed
openimport:secrets:reencryptnow also encrypts the secrets of export destinations again, and goes on when one
profile cannot be saved.- Uninstalling removes the
openimport_imagetable too.