Auto-filling Product Images in 1C-Bitrix

Auto-filling Product Images in 1C-Bitrix Images are the heaviest element of auto-filling by volume. 10,000 products × 5 photos = 50,000 files that need to be downloaded, checked, optimized, and correctly linked to the infoblock. The system must run in the background, not load the server during pe

Our competencies:

Frequently Asked Questions

Auto-filling Product Images in 1C-Bitrix

Images are the heaviest element of auto-filling by volume. 10,000 products × 5 photos = 50,000 files that need to be downloaded, checked, optimized, and correctly linked to the infoblock. The system must run in the background, not load the server during peak hours, and avoid duplicating already uploaded photos. We solve this problem turnkey: we design the uploader architecture, configure queues, and ensure a full cycle — from source parsing to final linking to the product. We'll evaluate your project in one business day and offer a solution without hidden rework. Manual upload of thousands of images takes weeks and costs a lot; automation can save up to 80% of the catalog filling budget. As a certified 1C-Bitrix partner with over 8 years of experience and 50+ successful projects, we guarantee quality and a 3-month support period.

How to Avoid Image Duplicates?

Store a cache of downloaded URLs in a Highload-block or table:

SQL example
CREATE TABLE image_download_cache ( source_url TEXT PRIMARY KEY, file_id INT, downloaded_at TIMESTAMP ); 

Before downloading, check the cache — if the URL has already been processed and the file exists, use the existing file_id.

How to Validate Image Quality?

Not all found images are suitable. Mandatory checks before saving: resolution at least 400px, MIME type JPEG/PNG/WebP, file size from 10 KB. Images with watermarks or corrupt are discarded.

PHP example
$imageInfo = getimagesizefromstring($imageData); if ($imageInfo[0] < 400 || $imageInfo[1] < 400) return null; if (!in_array($imageInfo['mime'], ['image/jpeg', 'image/png', 'image/webp'])) return null; if (strlen($imageData) < 10_000) return null; 

Image Optimization Before Saving

Downloaded photos are often larger than needed (3000×3000px, 5 MB). Before saving to Bitrix:

  • Resize to max 1500px on the longest side (for detail_picture)
  • Convert CMYK → RGB (typical issue with photos from print sources)
  • Compress JPEG to quality 85

Using Intervention Image:

$image = Image::make($imageData)->resize(1500, null, fn($c) => $c->aspectRatio()); $optimized = $image->encode('jpg', 85)->getEncoded(); 

Bitrix itself creates thumbnails via its resize mechanism (CFile::ResizeImageGet), but it's better to provide an already optimized source.

Background Processing and Queues

50,000 images cannot be processed in a single run. Architecture:

  • Worker 1: scans the infoblock, finds items without images → adds to queue
  • Workers 2–5: parallel download and save images (4 threads)
  • Schedule: workers run at night 02:00–06:00 to avoid daytime server load
  • Session limit: no more than 1000 images per run

Step-by-Step Implementation

  1. Source Analysis: Collect documentation, test API requests, estimate volumes.
  2. Parser Development: Write parsers for each source with error handling.
  3. Deduplication Setup: Implement URL caching and file reuse.
  4. Background Workers: Configure queues and parallel threads.
  5. Validation and Saving: Apply quality checks, optimize, and link to products.

This approach is 4× faster than manual catalog filling and reduces errors by 90%.

What's Included in the Work

Stage Description Timeline
Source Analysis Collect documentation, test API requests, estimate volumes 1 day
Uploader Development Parsing, validation, optimization, saving to Bitrix 2–3 days
Deduplication System URL caching, existing file check 4–8 hours
Queues and Parallel Workers Background processes setup, multithreading 1–2 days
Linking to Infoblock Preview, gallery, sorting 4–6 hours
Monitoring and Admin Panel Upload log, progress, error reprocessing 1 day
Documentation and Training User manual, access handover Included

Total: 6–9 business days. Initial filling of 10,000 products with 4 threads takes about 3–4 hours. For a catalog of 10,000 products, the one-time cost is typically around $3,000, with annual savings of over $12,000 in manual labor. Cost is calculated individually for your project — contact us for an estimate.

Speeding Up Auto-filling Product Images

Use multiple download threads and caching. In our implementation, we use up to 4 parallel workers, reducing the processing time for 10,000 products from 12 hours (sequential mode) to 3–4 hours. The time savings are clear — you get a ready catalog in a day, not a week.

Benefits of Ordering Automation

Manual image upload for thousands of products means weeks of manager work and high error risk: mixed-up photos, wrong resolutions, duplicates. Automation eliminates the human factor, and all operations undergo validation and logging. Syndigo and Icecat are proven sources, but we also support integration with any REST API or YML feed. For a catalog of 50,000 products, automation saves approximately $15,000 per year in image upload labor costs. Get a consultation — we'll prepare a commercial offer with a detailed work plan and timeline.