This project contains an installable PrestaShop module that exports product images as a ZIP directly from the standard module configuration page.
internautenimage
- find it under releses
- In the PrestaShop back office, go to Modules > Module Manager.
- Click Upload a module.
- Upload
internautenimage-module-1.1.1.zip. - Install Internauten Product Image Export.
- In Module Manager, click Configure on the module.
- Select language.
- Select shop scope:
- Current shop only
- All shops
- Select product filter:
- All products
- Active products only
- Click Create and download ZIP.
- The download starts directly in the browser.
The module provides a second button for import:
- Select shop scope and product filter.
- Upload a ZIP file.
- Click Upload and import ZIP.
Import Rules:
- File name must match the product reference, e.g.
ABC123.jpg. - Additional images:
ABC123_1.jpg,ABC123_2.jpg, ... - Suffixes
_1,_2are interpreted as 2nd, 3rd, ... image order. - Image legend is set to the product name in all languages.
- First image of a product:
REFERENCE.jpg - Second image:
REFERENCE_1.jpg - Third image:
REFERENCE_2.jpg
If a reference contains special characters, they are sanitized for file names.
- Reads all products in the selected shop scope.
- Language is selectable in the configuration page.
- Shop scope is selectable (current shop or all shops).
- Product filter is selectable (all or active only).
- Copies image files into a temporary directory first.
- Creates the ZIP in the cache directory.
- Sends the ZIP directly as a download from the configuration page.
- Cleans up temporary files after export.
GitHub Releases are created automatically when you push a tag in this format:
- vX.X.X (example: v1.1.2)
Create and push a release tag:
git tag v1.1.2
git push origin v1.1.2The workflow then builds and uploads:
- internautenimage-module-v1.1.2.zip
cd scripts
./push-tag-from-module-version.shdocker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'curl -I http://localhost:8080/de/docker exec prestashop php -r 'echo "upload_max_filesize=".ini_get("upload_max_filesize").PHP_EOL; echo "post_max_size=".ini_get("post_max_size").PHP_EOL;'Dammit die Container bei jedem neuen Modul nicht jedesmal neu erstellt werden müssen, versuchen wir es mit symlinks.
Voraussetzungen: im compose hat es unter volumes einen Eintrag - /home/dmo/internauten:/internauten
Bash ins WSL2 und holen des Repos:
cd ~/internauten
git clone https://github.com/internauten/InternautenImage.gitBash in den Container und dann
ln -s /internauten/InternautenImage/internautenimage /var/www/html/modules/internautenimageThis project is licensed under the MIT License. See details LICENSE.
Copyright (c) 2026 die.internauten.ch GmbH