SkuWatch AI Visibility Agent Scan your store or site

Product evidence

How to Expose Shopify Product Compatibility in Structured HTML

Core answer

Model power, network, fit, material, subscription, and exclusion facts with Shopify metafields and accessible HTML using Ring Australia as a worked case.

By skuwatch editor

Difficulty
Intermediate
Time
60 minutes
Risk
Theme and catalog changes
Last tested
July 27, 2026
SkuWatch AI Visibility loopFix

Why compatibility needs structure

A recommendation such as “battery doorbell for 2.4 GHz Wi-Fi without existing wiring” cannot be answered from the phrase “easy installation.” It requires explicit power, network, installation, and exclusion facts.

Worked case: Ring Australia Battery Video Doorbell

Observed public facts on July 27, 2026 included:

Dimension Public fact
primary power built-in rechargeable battery
optional wiring 8–24 VAC within documented limits
network 2.4 GHz Wi-Fi
recommended upload 2 Mbps
installation approximately five minutes
operating range -20°C to 50°C
dimensions 6.19 × 2.30 × 12.65 cm
feature qualification selected alerts require a subscription

This is strong evidence because unsupported conditions are documented alongside supported ones.

Step 1: define typed fields

In Shopify admin:

SettingsCustom dataProducts

Create fields appropriate to the catalog, for example:

compatibility.power_source        single-line text or controlled list
compatibility.wiring_range        single-line text
compatibility.wifi_bands          list of single-line text
compatibility.minimum_upload      measurement or text
compatibility.operating_range     structured text/metaobject
compatibility.exclusions          list of single-line text
compatibility.subscription_notes  rich text

Use metaobjects when several related fields repeat across product families. Avoid one giant rich-text field if buyers filter or compare individual dimensions.

Step 2: publish visible semantic HTML

{% assign wifi_bands = product.metafields.compatibility.wifi_bands.value %}

<section class="product-compatibility" aria-labelledby="compatibility-heading">
  <h2 id="compatibility-heading">Compatibility and requirements</h2>
  <dl>
    {% if product.metafields.compatibility.power_source.value != blank %}
    <div>
      <dt>Power</dt>
      <dd>{{ product.metafields.compatibility.power_source.value | escape }}</dd>
    </div>
    {% endif %}

    {% if wifi_bands != blank %}
    <div>
      <dt>Wi-Fi</dt>
      <dd>{{ wifi_bands | join: ', ' | escape }}</dd>
    </div>
    {% endif %}

    {% if product.metafields.compatibility.minimum_upload.value != blank %}
    <div>
      <dt>Recommended upload speed</dt>
      <dd>{{ product.metafields.compatibility.minimum_upload.value | escape }}</dd>
    </div>
    {% endif %}
  </dl>

  {% if product.metafields.compatibility.exclusions.value != blank %}
  <h3>Not compatible with</h3>
  <ul>
    {% for exclusion in product.metafields.compatibility.exclusions.value %}
      <li>{{ exclusion | escape }}</li>
    {% endfor %}
  </ul>
  {% endif %}
</section>

A definition list gives each value a visible label. Do not rely on icons, tooltips, or an image of a specification table.

Step 3: separate product and policy claims

“Works without a subscription” and “selected smart alerts require a subscription” can both be true for different features. Record the scope:

base_functions:
  - live view
  - two-way talk
subscription_functions:
  - selected person or package alerts
terms_url: canonical subscription policy

Link the policy instead of copying volatile prices into every product description.

Step 4: connect compatibility to variants

Voltage, plug, size, device generation, or regional certification may differ by variant. Store those values on variants or linked metaobjects when they are not shared by the parent product.

Expected result

A shopper and retrieval client can answer:

  • what conditions are required
  • what is supported
  • what is explicitly unsupported
  • whether a subscription changes feature availability
  • which market the specification applies to

Common failures

  • compatibility exists only in a PDF
  • icons have no text labels
  • accordion content loads only after an API request
  • a universal Product description mixes regional voltage
  • accessory compatibility lists outdated device generations
  • subscription conditions are omitted from marketing summaries

Verification

Fetch the canonical product HTML and search the decisive values:

curl -sSL https://example.com/products/example-product -o product.html
rg -n '2.4 GHz|8.?24 VAC|subscription|not compatible|upload speed' product.html

Verify mobile, selected variants, and one intentionally incompatible product.

Community discussion

Add to the article

Ask a technical question, share a storefront result, or challenge a conclusion with evidence.

Comments are public. Do not post customer data, credentials, private store information, promotional spam, or unsupported accusations. Comments may be moderated.