* A mapped `post_name` (product slug) is now imported verbatim instead of being overwritten with a de-duplicated slug derived from the title.
* Fixed: choosing a field as the **Unique item identifier** now matches your existing items on that field's native postmeta key (e.g. SKU → <code>_sku</code>) instead of SSI's private <code>_ssi_unique_item_id</code> key. Previously, setting the unique identifier to your SKU field would fail to find products created outside SSI (manually, or by another importer) because they don't carry the private key — so a re-import created a duplicate of every existing product instead of updating it. Existing imports are migrated automatically; no reconfiguration needed. See <code>.docs/2026-06-23-unique-identifier-matching-redesign.md</code> and the developer KB article <code>unique-identifier-matching-internals</code>.
* Changed: the Unique item identifier is now chosen from your mapped postmeta fields. The PHP-function and raw-CSV-column options have been removed — a function computed from the CSV row cannot be evaluated against existing database items, which is the root cause of the duplicate-on-update problem. (Composite identifiers across multiple fields are planned next.)
* **Products now get assigned every level of a category path, not just the deepest one.** When a product is in <code>Men > T-Shirts</code>, WooCommerce expects BOTH <code>Men</code> and <code>T-Shirts</code> to be attached to it — that's what WP All Import does, and it's what makes <code>/product-category/men/</code> list the product, breadcrumbs render the full path, and layered-navigation filters include parent categories. SSI previously assigned only the leaf term (<code>T-Shirts</code>), so parent category pages showed nothing. This was the single biggest functional difference between SSI and WPAI in our benchmark comparisons. There's a new **Assign every category level** option in Additional Options to control it. **New imports default it ON.** Existing imports created before this release keep their previous leaf-only behaviour until you switch it on, so nothing changes under you on a re-run unless you opt in. This replaces the undocumented `SSI_ADD_ALL_TERMS_FROM_HIERARCHY` PHP constant, which no longer has any effect. See `.docs/2026-05-26-leaf-vs-all-level-term-assignment.md`.
* Further optimisation for local image searching to use post_name instead of post_title and no longer needs to use open-ended LIKE wildcard so it's FAST!
* Removed early access auto-update prevention
* Added full namespacing for plugin update checker to prevent conflicts with 3rd party plugins
* Further hardening for collation checks and forced collation for virtual columns in CTEs