Gem Attacher - WooCommerce Plugin - BloodWeb.net

Gem Attacher

Version 1.1.0

Let shoppers choose a stone for every setting on a piece, priced from your supplier's own catalogue and picked from the shelf by SKU.

About the Plugin

Gemstone choice is a per-variation problem, not a per-product one. One size of a piece may take four stone types where another takes nine, and the same piece in gold may offer a different range than it does in steel. Gem Attacher binds a list of allowed gem groups to each variation SKU, so the shopper is only ever shown stones that actually fit the piece in front of them.

Gems are not WooCommerce products. Modelling them as products means importing thousands of rows, carrying hundreds of hidden products in your admin and sideloading images into the media library, for stones that are never browsed or sold on their own. Here the catalogue is data: imported once, stored in its own tables and looked up by index.

Key Features

  • 💎 Any Supplier's Catalogue: Import a gem range from JSON or a CSV price list. Nothing about one supplier is baked into the plugin.
  • 🧲 Several Catalogues At Once: Stock more than one house? Each catalogue carries its own currency, multiplier and rounding rule.
  • 📌 Per-Variation Availability: Allowed gem groups are bound to the variation SKU, so a 1.5mm setting never offers a 4mm stone.
  • ✅ Stock What You Carry: No store carries a supplier's whole range. Switch off any gem group and it vanishes from every setting at once, and cannot be bought even by posting its SKU.
  • 🛠 Settings Editor On The Product: Add a setting, name it, say how many stones it takes and tick the groups it accepts. Applied across the variations you choose.
  • 💰 Pricing Stays Yours: The catalogue holds the supplier's list price; a multiplier and rounding rule turn it into your retail price without re-importing.
  • ➕ Optional Extras: Per-stone add-ons such as sandblasting are defined by the catalogue and priced per gem or per order.
  • 🎨 Works Without Photography: Stones with no supplier image fall back to a resolved colour swatch, so an imported price list is usable the moment it lands.
  • 💳 Priced Server-Side: A submitted form can name a stone but never its price, and a stone outside the setting's allowed groups is rejected outright.
  • 📦 One Cart Line: The stone rides on the jewellery line item, so the cart and the packing slip each show one row, with gem SKUs in the line meta.
  • ⚡ Indexed, Not Loaded: A product page resolves its variations in a single query rather than parsing a multi-megabyte catalogue on every request.
  • 🔑 HPOS Ready: Declares compatibility with High-Performance Order Storage.

🎯 How It Works

Import your supplier's range under WooCommerce → Gem Attacher, set the multiplier that turns their list price into yours, and untick any gem group you do not stock. Then edit a product and use the Gem Attacher panel to add a setting for each place a stone goes, ticking the groups it accepts and the variations it applies to.

On the storefront a Gemstone Options button appears; the shopper answers any extras, picks a stone per setting, and confirms. The choice is re-validated and re-priced on the server before it reaches the cart.

Perfect For

  • Body Jewellery Retailers: Piercing studios and online stores carrying stone-set ends from one or several houses.
  • Fine Jewellery: Any made-to-order piece where the setting is fixed and the stone is the customer's choice.
  • Anyone Handed A Supplier Price List: A CSV of stones becomes a working storefront selector without creating a single product.

Installation Instructions

  1. Download the Plugin: Click the download button to get the latest version.
  2. Upload to WordPress: Go to Plugins → Add New → Upload Plugin, then select the downloaded zip file.
  3. Activate the Plugin: Click “Activate Plugin” after the upload completes.
  4. Import a Catalogue: Go to WooCommerce → Gem Attacher and import your supplier's gem range.
  5. Set Your Pricing: Give the catalogue a multiplier and rounding rule, then open a bound product to see the selector.

🔄 Upgrading From Anatometal Gem Selector

Gem Attacher replaces it. On activation it reads that plugin's bundled catalogue and its pricing settings, writes them in as a normal catalogue called Anatometal, and copies the gem swatches into your uploads folder so they outlive the old plugin. Sandblasting becomes an ordinary per-stone extra. Nothing is written back to the old plugin, so it can be deactivated once you have checked a product page.

⚠️ Requirements

WordPress: 5.0 or higher
WooCommerce: 7.0 or higher
PHP: 7.4 or higher
License: GPLv2 or later

📥 Download Plugin

Get the latest version of the Gem Attacher plugin for free!

📦 Download V1.1.0

Free • GPL License • 3,619 lines of code

🔧 Support

Need help or have questions?

Email: support@bloodweb.net

Documentation: Included in plugin

Custom Development: Contact us

📄 Catalogue CSV Format

One row per stone. Only the first three columns are required.

group_handle
sku
name
group_label
size
material
round
price
image
colour

🔄 Updates

Latest: v1.1.0 (September 2026)

  • 🛠 Settings editor on the product screen, applied across variations
  • ✅ Per-group stock control, honoured on the storefront and at add-to-cart
  • 🔄 A supplier price refresh no longer re-enables what you switched off
  • 💎 Supplier-neutral: catalogues are imported, not bundled
  • 🧲 Several catalogues side by side, each with its own pricing
  • ⚡ Catalogue in indexed tables, one query per product page
  • 🎨 Colour swatch fallback for stones with no photograph