3 min read

WooCommerce Product Images in Multilingual Imports

Images are often the slowest part of a catalog import. Text and prices arrive in the CSV; images must still be reached over the network, downloaded, validated, added to the Media Library, and associated with the right product.

In a multilingual store, there is another decision: should every language share the same product photography, or does a market require a different image? Make that rule explicit before building the file.

Use the supported image fields

Shirely recognizes product image sources through:

  • featured_image;
  • image_url;
  • _product_image_gallery;
  • product_gallery.

An image list can use pipes or commas. The first image that resolves successfully becomes the featured image; the remaining resolved images become gallery images.

Keep ordering intentional. Do not rely on a media filename sort to decide which photograph becomes the product's primary image.

Make every remote URL testable

The WordPress server—not your browser—must be able to fetch the URL and receive an actual image. A link that works while you are logged into a supplier portal may fail for the importer.

Before a batch, test that the source:

  • is reachable without an interactive login;
  • returns the intended image rather than an HTML page;
  • does not depend on a short-lived token;
  • uses a stable HTTPS URL;
  • responds within a reasonable time;
  • permits the WordPress host to download it.

Shirely blocks private or reserved remote destinations as a safety boundary. Do not work around that protection by exposing an internal service publicly. Move approved media to a legitimate, controlled source instead.

Shared photography is the simplest multilingual model

For most stores, product photographs are shared catalog data. Titles and descriptions use language-suffixed Matrix columns, while the image URL appears once beside the shared SKU.

For example:

sku,title|en,title|de,featured_image,product_gallery
DRILL-100,Power Drill,Bohrmaschine,https://media.example.com/drill-front.webp,https://media.example.com/drill-side.webp|https://media.example.com/drill-case.webp

If different languages genuinely need different artwork, verify that the chosen Shirely field contract and the store's WPML media configuration support the intended outcome. Do not assume that adding language suffixes to an image column creates a complete translated-media workflow.

Alt text needs a separate content decision

An image URL identifies a file. It does not automatically provide accurate, localized alternative text, captions, or media descriptions.

Shirely's product-image import should not be presented as a complete multilingual alt-text workflow. Decide where accessible image text is owned and reviewed. Product images that communicate important information need meaningful alt text; purely decorative images may need different treatment.

If localized alt text matters, test the exact WordPress/WPML media behavior on staging instead of hiding unreviewed phrases inside an image list.

Test an image-heavy sample on staging

Choose a sample with:

  • a featured image plus several gallery images;
  • a remote URL that redirects legitimately;
  • a large source image;
  • a broken URL, so warnings are visible;
  • a product that already has media;
  • multilingual titles around shared photography.

After import, check the Media Library and product editor, then inspect the storefront on desktop and mobile. Confirm the featured/gallery order, aspect ratios, thumbnails, zoom behavior, and language variants.

External download time can dominate the run even when the CSV processing itself is fast. A smaller batch size may make an image-heavy job easier to observe, but actual performance depends on the host and the image origin.

Re-import with stable product identity

Use SKU for standard cross-store matching or Matrix ID / External ID in a multilingual Matrix workflow. Product rows are processed on every import; Smart Sync's skip-unchanged behavior does not apply to products.

On a repeat test, confirm that Shirely updates the intended product and does not create a duplicate. Also inspect whether existing media associations match the workflow you intended before running the full catalog.

Automation still depends on the remote source

Shirely 1.3 can save a supported import as an Automation slot. Run now and Run History help test it, while WP-Cron or WP-CLI can execute it later.

Scheduling does not make a slow or expiring image source reliable. Use system cron with WP-CLI for more predictable large jobs, and do not overlap imports that can write the same products or translation groups.

For the complete field workflow, read importing WooCommerce products from CSV and the Shirely documentation.