Color Enhancer
A focused color-variant manager for nopCommerce 4.90 — purpose-built admin screen, per-variant gallery management, and a polished storefront experience for color-driven catalogues.
Overview
NopCommerce's stock attribute editor was designed for generic attributes — not for the day-to-day reality of running a color-driven catalogue, where you need to inline-edit dozens of color values, swap swatch images, manage per-variant pictures, and keep stock-aware
ordering across the whole catalogue. Color Enhancer replaces that workflow with a single dedicated screen, and adds the small storefront touches (URL parameter, dynamic label, stock UX) that turn color selection from a clunky form into something customers actually enjoy
using.
It works with any nopCommerce theme — no theme edit is required for the storefront features. The variant info table is the only piece that lives in the theme, and the default placement works out of the box.
Why use it
- Cut clicks — manage every color value of a product (name, hex, swatch, SKU, GTIN, stock, backorder, default) inline in one table. The "Save all" button pushes only the dirty rows in one shot.
- Per-variant galleries — drag-and-drop reorder, X to remove, upload or pick from existing pictures. Backed by nopCommerce's native
ProductAttributeCombinationPicture model, so Display attribute combination images only actually
works.
- First-color-for-free — adding the first color to a "plain" product no longer means hopping between three admin pages. The plugin lazily creates the color
ProductAttribute and a ColorSquares mapping on the spot, named in the
admin's working language (Color / Renk / Farbe / …) with localised overlays for every other installed language.
- Truly multilingual — every color name carries per-language overlays. The "add new color" form exposes one input per installed language and a translations modal lets you edit existing rows without leaving the screen. The storefront then shows the right
name per visitor.
- Stock UX that converts — out-of-stock colors dim and disable, backorder colors show a dashed outline, and a single click reorders every product's colors by stock state. No more customers clicking a color only to discover it's gone.
- Deep-linkable swatches — selecting a color writes a slugified color-name parameter into the URL via
history.replaceState (no reload). Visiting the same URL preselects the matching color on arrival — perfect for campaign URLs.
Features
- color management admin screen: every product (even ones without colors yet) searchable; per-row inline editing of name (with per-language overlay), hex, swatch, SKU, GTIN, stock, backorder flag, pre-selected; dirty-row highlight; bulk save; per-row
delete; per-row picture management modal.
- Lazy mapping creation: adding the first color creates the color
ProductAttribute and a ColorSquares mapping automatically, named according to the admin's working language and translated for every other installed language.
Admins never leave the screen.
- Swatch auto-upgrade: uploading a swatch image promotes the attribute mapping from
ColorSquares to ImageSquares so the storefront actually renders the image. Self-heals on the next page load for already-imported products.
- Variant picture CRUD: add (multi-upload or pick existing), remove, reorder via native HTML5 drag-and-drop. Auto-enables
DisplayAttributeCombinationImagesOnly on first picture so the storefront gallery follows the customer's color
selection.
-
One-click reordering:
- Per-product: reorder colors by stock state (in-stock → backorder → out-of-stock).
- "Reorder all variants": apply the same reorder across the catalogue.
- "Reorder products by stock": push out-of-stock products to the bottom of each category and manufacturer listing.
- Storefront URL parameter: clicking a swatch writes a slugified parameter via
history.replaceState (no reload). Visiting a deep link preselects the matching color on arrival.
- Dynamic color label: live "color: Black"-style label updated as the customer cycles through swatches, replacing nopCommerce's generic attribute description.
- Stock-aware swatch styling: dimmed and unclickable for out-of-stock colors, dashed outline for backorder colors, with the buy button text automatically swapping to the localised "Out of stock" string when no combination is purchasable.
- Variant info table: SKU + GTIN table under the product description so search engines surface the product on barcode queries.
- Last-variant cleanup: deleting the final color offers to drop the color attribute as well and revert the product to plain product-level stock — no orphan attribute mappings.
- Auto stock-by-attributes: adding the first color switches the product's
ManageInventoryMethod to ManageStockByAttributes, so the per-combination stock you just entered is actually honoured at checkout.
- Optional Smart Delivery Date integration: when
Nop.Plugin.Misc.SmartDeliveryDate is installed, listing swatches and the variant table surface per-color delivery estimates. Silently no-ops without it.
Requirements
- nopCommerce 4.90 (any patch release)
- .NET 9 runtime (nopCommerce 4.90 default)
Compatibility
- Tested with the default nopCommerce 4.90 theme. Works alongside custom themes; the storefront UX hooks rely on the standard
ul.color-squares / ul.image-squares markup that nopCommerce always emits.
- Compatible with
Nop.Plugin.Misc.SmartDeliveryDate — opt-in via the Per-variant delivery estimate setting.
- Multi-store compatible; widget activation respects per-store overrides.
- Compatible with bulk import / migration workflows. Imported products with swatch images but a
ColorSquares mapping are self-healed on first visit to the manage screen.
- Fully localised admin UI — English baseline plus a Turkish overlay shipped in the box. Every server-side response message (success toasts, error alerts, reorder summaries) is localised so admins working in any language see consistent feedback. Additional languages can be
added through nopCommerce's standard resource import.
Installation
- Purchase the plugin and download
Nop.Plugin.Widgets.ColorEnhancer-x.y.z.zip from your account.
- In your nopCommerce admin, open Configuration → Local plugins, click Upload plugin or theme, and select the zip.
- Find Color Enhancer in the plugin list and click Install.
- A new menu node appears under RedPazar → Color Enhancer. Open Manage colors and pick a product to manage its colors.
For most stores, no further setup is needed. The settings page exposes two optional toggles — the variant info table and the SmartDeliveryDate bridge — both off by default.
Changelog
- 2.0.0 — Initial marketplace release
-
The major-version bump reflects the carve-out from the original internal 1.x line: shipping and delivery badges have moved out to the companion Nop.Plugin.Misc.SmartDeliveryDate plugin (consumed here through an optional bridge), and Color Enhancer is now a
focused color-variant manager.
- Dedicated color management admin screen with searchable product picker (every simple product, not just ones with color attributes already configured).
- Inline editing of color values: name (with per-language overlay), hex, swatch, SKU, GTIN, stock, backorder flag, pre-selected default.
- Dirty-row highlight + bulk "Save all" with sequential progress and per-row error reporting.
- Per-row delete; deleting the last color optionally drops the attribute mapping and reverts the product to plain product-level stock.
- Per-variant picture management modal: multi-file upload, pick from the existing product gallery, drag-and-drop reorder, click-to-remove. Backed by the native
ProductAttributeCombinationPicture entity; DisplayAttributeCombinationImagesOnly is
auto-enabled so the storefront gallery follows the color selection.
- Lazy creation of the color
ProductAttribute and the ColorSquares mapping when the admin adds the first color to a product that has none.
- Culture-aware auto-naming for the lazily created attribute: TR → Renk, EN → Color, DE → Farbe, FR → Couleur, ES → Color, IT → Colore, PT → Cor, NL → Kleur, RU → Цвет, PL → Kolor, AR → نوللا, ZH → 颜色, JA
→ 色 (unknown culture → Color). Every other installed language gets a localised overlay automatically.
- Per-value localised name editor — collapsible "other languages" block on the add form and a translations modal on existing rows.
- Swatch auto-upgrade from
ColorSquares to ImageSquares on first image, self-heals legacy data when the manage screen is opened.
- Auto-flip the product's
ManageInventoryMethod to ManageStockByAttributes on the first variant so per-combination stock is honoured at checkout.
- One-click stock-based reordering: per product, across the catalogue, or pushing out-of-stock products to the bottom of every category and manufacturer listing.
- Storefront URL parameter, dynamic color label, stock-aware swatch styling (out-of-stock dim, backorder dashed outline, native buy-button "Out of stock" toggle).
- Variant info table (SKU + GTIN) under the product description for search-engine discovery on barcode queries.
- Optional Smart Delivery Date bridge for per-color delivery estimates.
- Fully localised admin UI: English baseline + Turkish overlay; FriendlyName localisation, menu labels, table headers, modals, tooltips, JS confirms and every server-side response message.
- Marketplace-ready packaging: square 256×256 logo, README + LICENSE bundled, dedicated
pack.ps1 distribution script.
Support
- Email: [email protected] — typically replied within one business day (Mon–Fri, Europe/Istanbul).
- Documentation: a comprehensive
README.md ships inside the plugin folder, covering every setting, troubleshooting, and the public bridge interface.
- Updates: included for the lifetime of the major version. nopCommerce 4.90.x patch releases are covered without an additional purchase.
- Refund: 14-day money-back if the plugin doesn't work on a clean nopCommerce 4.90 install.
- License: proprietary, per-store. See the bundled
LICENSE.md.
Frequently asked
Does it require a specific theme?
No. The storefront features hook into nopCommerce's standard ul.color-squares / ul.image-squares markup, which every theme emits. The variant info table is rendered with a single Component.InvokeAsync call; the default theme handles
placement automatically.
Does it work with Smart Delivery Date?
Yes — Color Enhancer ships with a bridge (IDeliveryEstimateBridge). Enable the Per-variant delivery estimate setting and listing swatches will show per-color ETA. Without SmartDeliveryDate the bridge silently no-ops.
What if my products already have colors configured?
The plugin self-heals. Open color Management for the product once — if swatch images are present but the mapping is still ColorSquares, it's promoted to ImageSquares on the spot and the storefront starts rendering swatch images on the next
request.
Can I use it on a product without any color attribute?
Yes. Search the product, click Add the first color (the same button is on the admin product-edit page), and the plugin creates the color ProductAttribute and ColorSquares mapping for you. The attribute is named in your admin's
working language and translated for every other installed language.
Does it support multilingual stores?
Yes — per-language color names are first-class. The "add new color" form exposes one input per installed language and existing rows have a translations modal accessible from a globe icon next to the color name. The storefront then displays the matching name per visitor
language.
What about non-color attributes (e.g., size + color)?
Color Enhancer focuses on color management. For multi-attribute matrix workflows (size + color combination editor, full attribute wizard), see our companion product Variant Manager (coming soon).