Title: Zealot Bulk Image Assign by SKU for WooCommerce
Author: Wpzealot
Published: <strong>10 Agustus 2026</strong>
Last modified: 9 September 2026

---

Cari plugin

![](https://ps.w.org/zealot-bulk-image-assign-by-sku-for-woocommerce/assets/banner-
772x250.png?rev=3639950)

![](https://ps.w.org/zealot-bulk-image-assign-by-sku-for-woocommerce/assets/icon-
256x256.png?rev=3639944)

# Zealot Bulk Image Assign by SKU for WooCommerce

 Oleh [Wpzealot](https://profiles.wordpress.org/wpzealot/)

[Unduh](https://downloads.wordpress.org/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce.0.10.5.zip)

 * [Detail](https://id.wordpress.org/plugins/zealot-bulk-image-assign-by-sku-for-woocommerce/#description)
 * [Ulasan](https://id.wordpress.org/plugins/zealot-bulk-image-assign-by-sku-for-woocommerce/#reviews)
 * [Pengembangan](https://id.wordpress.org/plugins/zealot-bulk-image-assign-by-sku-for-woocommerce/#developers)

 [Bantuan](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/)

## Deskripsi

WooCommerce can set **one featured image**, for **one product**, at the **moment
you upload a file** whose name is exactly the SKU. That is the whole feature, and
if it is all you need, you do not need this plugin.

This plugin is for the rest of it:

 * **Full galleries, not one image.** `<sku>_1.jpg`, `<sku>_2.jpg` become the product
   gallery, in order.
 * **Variation images.** Name a file after a variation’s own SKU and it lands on
   that variation.
 * **The library you already have.** WooCommerce only matches at upload, so it can
   never touch the thousands of images already sitting in your media library. This
   scans all of them.
 * **A preview before anything is written**, and one-click undo afterwards.

WooCommerce’s own setting lives at Settings -> Products -> Advanced. If you leave
it on, both will
 act on new uploads, and anything it assigns bypasses the preview,
the undo and the optional cloud processing here. The plugin notices when it is on
and offers to switch it off for you.

It uses the same filename convention Amazon uses for bulk seller uploads:

 * `<sku>_main.jpg` -> the product’s featured (main) image
 * `<sku>_1.jpg`, `<sku>_2.jpg` -> gallery images, in order
 * `<sku>.jpg` -> featured image (simple fallback)

Matching is case-sensitive: `abc123_main.jpg` will not match a product whose SKU
is `ABC123`. Copy
 the SKU exactly as it appears on the product. Only the SKU is
strict, so `_main` and `_MAIN` mean the same thing. A file that misses on case is
listed under “Unmatched images” after a scan rather than applied to a guess, so 
you can spot it and rename it.

#### Product variations

Name the file after the VARIATION’s own SKU, not the parent’s: `<variation_sku>.
jpg` sets that
 variation’s image. A variation displays a single image, so it has
no gallery. If you name several files for one variation (`<variation_sku>_1.jpg`,`
_2`, `_3`), the lowest number is used as the variation’s image and the rest are 
reported as conflicts rather than applied silently. Put extra shots on the parent
product, whose gallery does show them.

#### What else it does

 * **Unlimited batches**: no 10- or 20-image cap; large catalogs run in safe background
   batches.
 * **Rename-proof matching**: survives WordPress’s own `-scaled`, `-768x1024`, and
   duplicate `-1` filename changes, and records each image’s original upload name
   so later optimization (Imagify, ShortPixel, Smush, EWWW) never breaks a match.
 * **Preview before applying**: see every proposed match and deselect any before
   anything is written.
 * **One-click rollback**: revert a completed run.
 * **Import straight from your supplier**: have the WPZealot service pull images
   from a URL list, or from your supplier’s SFTP folder (Pro).
 * **Optional image resizing/optimization**: offload resize + compression to the
   WPZealot cloud (Pro).

Matching runs entirely on your own server: filename-to-SKU is plain string work,
so no images leave your site for the core feature.

#### Importing from SFTP (Pro)

Most suppliers deliver photography to an SFTP folder rather than a public link. 
Give the WPZealot service the folder details and it fetches new files for you; the
plugin copies them into your media library with their filenames intact, so the usual
SKU matching applies.

The connection is made by the WPZealot cloud service, not by your store. Your username
and password or key are stored by that service, encrypted, and are used only to 
reach the server you nominated. Your store never opens an SSH connection and never
holds the credential. See “External services” below.

The service records the server’s host key the first time it connects and pins it.
If that key ever changes, the import stops rather than handing your credential to
a server that is not the one you set up.

We recommend asking your supplier for key-based access and an account that can do
nothing but read that one folder.

### External services

The core matching and assignment features run locally and contact no external service.

The OPTIONAL cloud features connect to the WPZealot cloud service
 (https://images-
by-sku.wpzealot.com), operated by WPZealot, and are off by default. The service 
is contacted only after you press Connect, and never before. When you enable it:

 * Your site URL, WordPress/WooCommerce/PHP versions, and plan usage counts are 
   sent for licensing and batch sizing.
 * Image resizing: the image files you choose to optimize are uploaded to the service,
   processed, and returned to your store.
 * URL import: the addresses you supply are fetched by the service, which returns
   the image data to your store.
 * SFTP import: the address, username and password or key of the server YOU nominate
   are sent to the
    service and stored there, encrypted, so that it can connect 
   on your behalf and fetch new files. They are used for nothing else, are never
   returned to your site or shared with any third party, and are deleted when you
   remove the server in the plugin or disconnect from the service.
 * No customer or order data is ever read or transmitted.

The service’s terms are at https://wpzealot.com/terms and its privacy policy at 
https://wpzealot.com/privacy.

### Source code and build

The admin screen is a React app. Its compiled bundle ships at `assets/app/wpz-pis.
js` and
 assets/app/wpz-pis.css because a WordPress install has no build step, and
the complete, human-readable source that produced it ships alongside it in the `
src/` folder of this plugin.

To rebuild it, from `src/`:

    ```
    npm install
    npm run build
    ```

Vite writes the result back to `assets/app/`. See `src/README.md` for detail. Every
other file in
 this plugin is source: nothing else is generated, minified or obfuscated.

## Tangkapan Layar

[⌊The naming rules up front, so a scan does what you expect. Past runs are listed
underneath and any of them can be undone in one click.⌉⌊The naming rules up front,
so a scan does what you expect. Past runs are listed underneath and any of them 
can be undone in one click.⌉[

The naming rules up front, so a scan does what you expect. Past runs are listed 
underneath and any of them can be undone in one click.

[⌊Every proposed match shown with thumbnails before anything is written, split into
ready to apply, already applied, and unmatched. Optional cloud resize, aspect and
watermark sit below.⌉⌊Every proposed match shown with thumbnails before anything
is written, split into ready to apply, already applied, and unmatched. Optional 
cloud resize, aspect and watermark sit below.⌉[

Every proposed match shown with thumbnails before anything is written, split into
ready to apply, already applied, and unmatched. Optional cloud resize, aspect and
watermark sit below.

## Ulasan

![](https://secure.gravatar.com/avatar/4129d433a8ac890b38cfc6e66cc4a6807b063f52ada86107407a9401f6430170?
s=60&d=retro&r=g)

### 󠀁[Great, just what I was looking for](https://wordpress.org/support/topic/great-just-what-i-was-looking-for-3/)󠁿

 [hadikarimy](https://profiles.wordpress.org/hadikarimy/) 10 Agustus 2026

It's a great, functional, and flawless plugin. Very smooth and good. I was looking
for something like this.As a suggestion: It would be possible to delete past import
logs.

 [ Baca semua 1 ulasan ](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/)

## Kontributor & Pengembang

“Zealot Bulk Image Assign by SKU for WooCommerce” adalah perangkat lunak open source.
Berikut ini mereka yang sudah berkontribusi pada plugin ini.

Kontributor

 *   [ Wpzealot ](https://profiles.wordpress.org/wpzealot/)

[Terjemahkan “Zealot Bulk Image Assign by SKU for WooCommerce” dalam bahasa Anda.](https://translate.wordpress.org/projects/wp-plugins/zealot-bulk-image-assign-by-sku-for-woocommerce)

### Tertarik mengembangkan?

[Lihat kode](https://plugins.trac.wordpress.org/browser/zealot-bulk-image-assign-by-sku-for-woocommerce/),
periksa [repositori SVN ](https://plugins.svn.wordpress.org/zealot-bulk-image-assign-by-sku-for-woocommerce/),
atau mendaftar ke [log pengembangan](https://plugins.trac.wordpress.org/log/zealot-bulk-image-assign-by-sku-for-woocommerce/)
melalui [RSS](https://plugins.trac.wordpress.org/log/zealot-bulk-image-assign-by-sku-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Log Perubahan

#### 0.10.5

 * Fixed: the WPZealot page could draw its cards at a third of their proper width
   with the titles cut off. It happened on sites where something switches off WordPress’s
   admin stylesheet bundling, most often Jetpack’s Site Accelerator, and WordPress
   7.1 made the clipping visible. Nothing about matching, scanning or applying images
   changes.

#### 0.10.4

 * Resize credits are now genuinely monthly. The allowance resets on the 1st of 
   each month, and the plugin page says how many are left for the current month.
 * Fixed: if a payment failed, the plugin showed the site as being on the free plan
   and offered to upgrade it. Following that offer started a second subscription
   alongside the one that was already there. A site with a subscription is now always
   offered Manage billing instead, and a store can no longer end up paying twice.
 * Fixed: a subscription could be moved to the free plan if it was on a price the
   service did not recognise, for example after a promotional price was introduced.
   An active subscription now keeps its plan.
 * Fixed: saving SFTP details, or a scheduled run finishing, could overwrite the
   plan and billing details recorded for the site. Each of these now writes only
   its own settings.

#### 0.10.3

 * The WPZealot page is now a set of cards covering the apps you have and the ones
   you do not, rather than a plain list. Nothing about matching, scanning or applying
   images changes.
 * Fixed: on a site running several WPZealot plugins, which of them drew that page
   depended on the order they happened to load, so it could show only one app. The
   newest copy now always wins.

#### 0.10.2

 * SKU matching is case-sensitive, and now says so. The naming guide above the Scan
   button, this readme and the documentation all state the rule and show an example,
   so a filename whose letter case does not match is something you can see and fix
   rather than something that quietly matches nothing.

#### 0.10.1

 * Fixed: SKU matching is now consistently case-sensitive. Two internal lookup paths
   disagreed with each other, so whether a filename whose letter case differed from
   the product’s SKU matched at all depended on how the scan happened to run.
 * Fixed: disconnecting from the WPZealot service no longer discards this site’s
   cloud identity. Reconnecting used to register the site as a brand new one, which
   needed its own subscription while the original stayed active and unreachable 
   from Manage billing. Disconnect now revokes the stored key only, so reconnecting
   returns you to the same account and the same plan.

#### 0.10.0

 * Variation matching and one-click Undo are now free, for everyone. They run on
   your own server, so they are simply part of the plugin.
 * SFTP import moved to the WPZealot service. The service now holds the credential
   and makes the connection; your store no longer opens SSH connections and no longer
   stores supplier passwords. See “External services” for exactly what is sent and
   kept.
 * Removed the bundled phpseclib library along with the local SFTP client, which
   takes about 3 MB off the plugin.
 * Scheduled auto-matching has been withdrawn while it moves to the service. It 
   will return as a scheduled run driven by the cloud.
 * The React source for the admin screen now ships in `src/`, with build instructions.

#### 0.9.0

 * Pro: import images from an SFTP folder. Connect the folder your supplier drops
   files into and the plugin copies new images into your media library with their
   filenames intact, so they match by SKU like any upload. Optionally checks the
   folder on a schedule, and hands off to auto-matching so a supplier drop becomes
   live product images unattended.
 * The connection is made by your own site, so the credential never reaches the 
   WPZealot cloud. It is stored encrypted, and removed when you delete the plugin.
 * New servers must have their host key fingerprint confirmed before any credential
   is sent, and a changed fingerprint stops the import instead of trusting it.

#### 0.8.0

 * Pro: scheduled and watch-folder auto-matching. Turn it on and images are assigned
   to matching products automatically: a background sweep runs shortly after new
   uploads and once daily, applying every changed, non-locked product (rollback-
   able, variation-aware). Gated behind the Pro plan.

#### 0.7.0

 * Pro: variation-level matching. Filenames matching a product variation’s SKU (
   e.g. _main.jpg) now set that variation’s image. Variations are detected, shown
   with their attribute label under a “Variations (Pro)” tab, and gated behind the
   Pro plan (server-side).

#### 0.6.0

 * Pro tier: plan/feature model (free vs Pro) with server-side gating. Pro unlocks
   cloud resize, one-click Undo, variation-level matching, and scheduled auto-matching.
   Undo is now a Pro feature. Added an “Upgrade to Pro” button (Stripe Checkout)
   and “Manage billing” (Stripe Customer Portal), mirroring WPZealot Easy Import.

#### 0.5.2

 * Added the `wpz_pis_resize_source_url` filter so sites whose media sits behind
   auth, a private host, or a local dev domain can hand the cloud a publicly-reachable
   image URL for optimization.

#### 0.5.1

 * Resize: when the cloud converts the format (e.g. to WebP), the file is now rewritten
   with the correct extension and the attachment’s file path, MIME type, and URL
   are updated so WordPress serves it correctly. Restore reverses the format change
   too.

#### 0.5.0

 * Pro: cloud image resize/optimization. A “Resize & optimize” panel lets you set
   max dimension, quality, and format (WebP/auto), then downscale + compress the
   matched product images through the WPZealot cloud (image-CDN backed). Originals
   are backed up and one-click restorable. Server-side plan gating. Shown only when
   the cloud is enabled and your plan includes resizing.

#### 0.4.2

 * Renamed the “Needs changes” tab to “Ready to apply”.

#### 0.4.1

 * Preview now separates matches into “Ready to apply”, “Already applied”, and “
   Unmatched images”, so products that already have the matched image aren’t shown
   as pending work. Only changed products are selected by default; new images are
   highlighted and already-assigned ones are dimmed.

#### 0.4.0

 * React admin app: scan the media library, preview every proposed match (featured
   + gallery thumbnails, per product), select/deselect, apply in bulk, watch progress,
   and undo any run. Small runs apply instantly; large runs process in the background.

#### 0.3.0

 * Apply engine (WooCommerce CRUD), background apply queue via Action Scheduler (
   unlimited batches), rollback store, media scanner, and the admin REST API (scan/
   apply/status/rollback/runs).

#### 0.2.0

 * Source-filename capture at upload (`_wpz_pis_source_filename`) so matches survive
   later renaming/optimization.
 * Matcher: turns the media library into a per-product assignment plan, with contextual
   duplicate-suffix and separator-in-SKU fallback resolution, conflict detection,
   and unmatched reporting.

#### 0.1.0

 * Initial scaffold: plugin foundation, shared WPZealot admin menu, and the filename
   normalization + SKU convention parser (the matching core), with unit tests.

## Meta

 *  Versi **0.10.5**
 *  Diperbarui **1 bulan yang lalu**
 *  Instalasi Aktif **10+**
 *  Versi WordPress ** 6.2 atau yang terbaru **
 *  Diuji hingga **7.1.3**
 *  Versi PHP ** 7.4 atau yang terbaru **
 *  Bahasa
 * [English (US)](https://wordpress.org/plugins/zealot-bulk-image-assign-by-sku-for-woocommerce/)
 * Tag
 * [bulk](https://id.wordpress.org/plugins/tags/bulk/)[gallery](https://id.wordpress.org/plugins/tags/gallery/)
   [product images](https://id.wordpress.org/plugins/tags/product-images/)[sku](https://id.wordpress.org/plugins/tags/sku/)
   [woocommerce](https://id.wordpress.org/plugins/tags/woocommerce/)
 *  [Tampilan lanjut](https://id.wordpress.org/plugins/zealot-bulk-image-assign-by-sku-for-woocommerce/advanced/)

## Rating

 5 dari 5 bintang.

 *  [  1 ulasan 5-bintang     ](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/?filter=5)
 *  [  0 ulasan 4-bintang     ](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/?filter=4)
 *  [  0 ulasan 3-bintang     ](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/?filter=3)
 *  [  0 ulasan 2-bintang     ](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/?filter=2)
 *  [  0 ulasan 1-bintang     ](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/#new-post)

[Lihat semua ulasan](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/reviews/)

## Kontributor

 *   [ Wpzealot ](https://profiles.wordpress.org/wpzealot/)

## Bantuan

Ada yang ingin dikatakan? Butuh bantuan?

 [Lihat forum bantuan](https://wordpress.org/support/plugin/zealot-bulk-image-assign-by-sku-for-woocommerce/)