etechflow / module-variant-links

etechflow/module-variant-links

Dynamic 'View Other Options/Finishes/Sizes' PDP buttons driven by per-product link attributes; replaces hardcoded in-description buttons and strips the old ones at render time.

magento2-module Compatibility: Not yet tested Code Quality: Pending Tests: N/A Security: Pending proprietary
Viewing version 1.1.0. Latest version is 1.2.1. Switch to latest

ETechFlow_VariantLinks

Dynamic "View Other Options / Finishes / Sizes" product-detail-page (PDP) buttons for
Magento 2 (Hyvä), driven by per-product link attributes — replacing hardcoded
in-description buttons and stripping the old ones at render time.

What it does

Many catalogues link product variants ("see this lock in another finish/size") with
anchors hand-baked into the product description HTML. That's unmaintainable: the links
rot, the markup is inconsistent, and the domain is hardwired. This module replaces that
pattern with three editable product attributes and renders clean, on-brand buttons on the
PDP.

  • Adds three per-product attributes — variant_options_url, variant_finishes_url,
    variant_sizes_url — each holding a relative URL (path + filter query), e.g.
    /euro-cylinders?manufacturer=2081. The frontend prepends the store base URL, so the
    domain is always correct. A blank value hides that button.
  • Editable in the admin product form (group Variant Links) and importable via the
    standard product CSV.
  • Legacy stripping: removes old hand-coded "View Other …" anchors from the
    description at render time, so the migration is reversible — the source description is
    untouched.
  • Dynamic mode (optional, off by default): instead of stored URLs, build the target
    link at render time from a category + filter attribute, via DynamicLinkBuilder /
    FilterUrlBuilder.
  • Bulk import + a legacy-button migration CLI for one-shot catalogue conversion.

Install

composer require etechflow/module-variant-links
bin/magento module:enable ETechFlow_VariantLinks
bin/magento setup:upgrade
bin/magento setup:di:compile        # production

The setup:upgrade runs the data patch that creates the three attributes.

Configuration

Stores → Configuration → ETechFlow → Variant Links (etechflow_variantlinks/*):

Setting Default Purpose
buttons/enabled variant_finishes,variant_sizes Which buttons render
buttons/options_label View Other Options Label for the options button
buttons/finishes_label View Other Finishes Label for the finishes button
buttons/sizes_label View Other Sizes Label for the sizes button
dynamic/enabled 0 Build links at render time instead of from stored URLs
dynamic/default_size_attribute Attribute used for dynamic size links
dynamic/size_attribute_map Per-category size-attribute overrides

Rendering

The buttons are produced by ViewModel\VariantLinks. Wire it into the theme's
product-info template (or equivalent) to output the buttons; LegacyButtonStripper
cleans the old anchors out of the description in the same pass.

Note: FilterUrlBuilder is intentionally kept as a separate seam so a future SEO
layered-navigation module can share readable filter-URL generation.

CLI

bin/magento etechflow:variantlinks:import        # bulk import variant link attributes
bin/magento etechflow:variantlinks:migrate-legacy # convert hardcoded in-description buttons

Requirements

  • PHP >= 8.1
  • Magento 2 (magento/framework, magento/module-catalog)

License

Proprietary — © ETechFlow.

No changelog yet

The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.

Versions
Version Stability QA Status Compatibility Released
1.2.1 stable Fail Magento 2.4.7-2.4.8 Details 2026-06-22 14:35:24
1.2.0 stable Not tested Not yet tested Details 2026-06-22 14:25:41
1.1.1 stable Not tested Not yet tested Details 2026-06-15 15:38:57
1.1.0 stable Not tested Not yet tested Details 2026-06-15 12:02:54

Requires 3

Package Constraint
magento/framework *
magento/module-catalog *
php >=8.1

No QA results yet

QA pipelines haven't run for this version. Compatibility and quality results appear here once the vendor publishes a tagged release that gets ingested.

License
proprietary

More from etechflow

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.