Image Management
Storage Location
Section titled “Storage Location”All product images are stored on the host filesystem:
/mnt/data/pim_data/├── spranz/ # Spranz supplier images (code 01)│ ├── 5325-00.001.jpg # Variant image│ ├── 376-00.svg # Base SVG│ └── ...├── moxz/ # Moxz supplier images (code 02)├── langenberg/ # Langenberg supplier images (code 03)├── xdconnect/ # XD Connect supplier images (code 04)├── pfconcept/ # PF Concept supplier images (code 05)├── midocean/ # Midocean supplier images (code 06)├── toppoint/ # Toppoint supplier images (code 07)├── newwave/ # NewWave Textiles supplier images (code 09)├── svg/ # SVG logos for personalization│ ├── spranz/ # Spranz SVGs│ │ ├── 376-00.001.svg # Variant SVG│ │ └── 376-00.svg # Base SVG (fallback)│ ├── langenberg/ # Langenberg SVGs│ ├── pfconcept/ # PF Concept SVGs│ ├── xdconnects/ # XD Connect SVGs│ ├── logohorloge/ # Logohorloge SVGs│ ├── dwf/ # DWF SVGs│ ├── grafotex/ # Grafotex SVGs│ ├── artwork/ # Artwork SVGs│ ├── convert/ # Converted SVGs│ └── jpg/ # JPG versions of SVGs├── customers/ # Customer-specific files├── documents/ # Product documents├── images/ # General images├── 3d_models/ # 3D model files├── movies/ # Product videos└── scripts/ # Utility scriptsNaming Conventions
Section titled “Naming Conventions”- Lowercase extensions: Always
.jpg, never.JPG - Path format:
supplier/sku.jpg(relative, no leading slash in DB) - Database storage: Image columns store relative paths (e.g.,
5325-00.001.jpg)
SVG Files
Section titled “SVG Files”Naming Pattern
Section titled “Naming Pattern”- Variant:
{variant_code}.svg→376-00.001.svg - Base:
{sku}.svg→376-00.svg
Designer Lookup Order
Section titled “Designer Lookup Order”- First:
/{svg_path}/{variant_code}.svg(e.g.,/svg/spranz/376-00.001.svg) - Fallback:
/{svg_path}/{sku}.svg(e.g.,/svg/spranz/376-00.svg)
Serving Images
Section titled “Serving Images”Via Nginx (Static)
Section titled “Via Nginx (Static)”Nginx serves images directly for performance:
location /pim_data/ { alias /mnt/data/pim_data/; expires 30d; add_header Cache-Control "public, immutable";}Via Backend API (Authenticated)
Section titled “Via Backend API (Authenticated)”GET /api/products/images/[supplier]/[filename]Requires authentication. Reads from /mnt/data/pim_data/.
Via Backend API (Public)
Section titled “Via Backend API (Public)”GET /api/static/products/[supplier]/[filename]Public access. Used by storefronts.
Via Next.js Proxy
Section titled “Via Next.js Proxy”The storefront proxies image requests:
GET /api/images/[...path]Forwards to the backend API.
Docker Volume Mounts
Section titled “Docker Volume Mounts”Product images are mounted read-only in all tenant containers:
volumes: - /mnt/data/pim_data:/mnt/data/pim_data:ro - /mnt/data/magic_pim/backend/uploads:/app/uploads:ro - /mnt/data/magic_pim/backend/static/branding:/mnt/data/magic_pim/backend/static/branding:roBackground Removal Service
Section titled “Background Removal Service”For product images that need background removal:
- Service: RemBG (port 5050)
- URL:
rembg.magiceverse.online - Access: Restricted to Spranz server IP (23.88.122.78)
- Container:
rembg-service
Spranz Designer Integration
Section titled “Spranz Designer Integration”SVG files are also hosted on the external Spranz Designer server:
- Server:
designer.spranz.de(23.88.122.78) - SSH:
ssh spranz-live - SVG Location:
/var/www/designer.spranz.de/svg/ - Management:
https://designer.spranz.de/managementtool/