Salve health data setup

Salve reads structured product information from metafields. This guide shows you how to create the definitions, enter data and check the result. You only need the fields you'll use. Every health block shows nothing when its field is empty.

Salve helps you present product information clearly. It does not make your store, products or content compliant with any law or regulation. You are responsible for your product claims, labeling and regulatory obligations. Take professional advice.

How Salve finds your data

For each piece of information, Salve checks two places, in this order:

  1. A block setting that you connected to a metafield with a dynamic source. See the dynamic sources section below.
  2. The product metafield with the namespace health and the key in the tables below, for example health.warnings.

If neither has a value, nothing shows. The namespace is set in theme settings under Health data > Metafield namespace. Keep it as health unless your existing definitions use a different namespace. If you change it, every key below uses your namespace instead.

Create the metafield definitions

  1. In your Shopify admin, go to Settings > Custom data.
  2. Select Products, then Add definition.
  3. Enter a Name. The suggested names are in the tables below, but you can use any name.
  4. In Namespace and key, enter the exact value from the tables, for example health.regulatory_status. The key must match exactly, including underscores.
  5. Select the type. For list types, choose the type and then select List of values.
  6. Add any validation shown in the table. For choices, turn on Limit to preset choices and add the values exactly as shown.
  7. Make sure storefront access is allowed for the definition.
  8. Select Save.

Create the metaobject definitions (next section) before the health.documents and health.reviewed_by metafields, because those metafields point to them.

Tip: pin the fields you use most, such as regulatory status, warnings and documents. Pinned fields appear on the product page in the admin.

Product metafields

All product metafields in one place, grouped by purpose. The type is shown as it appears in the admin, with the API type in parentheses.

Regulatory

Namespace and key Suggested name Type Choices or validation Where it appears
health.regulatory_status Regulatory status Single line text, list of values (list.single_line_text_field) Limit to preset choices: us_510k_cleared, us_pma_approved, us_de_novo_granted, us_510k_exempt, us_otc_drug, us_dietary_supplement, eu_ce_mdr, eu_ce_ivdr, uk_ukca, ca_mdl, au_artg, general_wellness, cosmetic. Regulatory status block, product cards, compare tray. Also triggers the dietary supplement statement.
health.regulatory_reference Regulatory reference Single line text, list of values (list.single_line_text_field) None Regulatory status statements. One reference per status, in the same order as the statuses.
health.device_class Device class Single line text (single_line_text_field) None Regulatory status statements for 510(k) exempt, CE (MDR) and UKCA statuses. Example: Class II.
health.notified_body Notified body number Single line text (single_line_text_field) None CE statements, printed as "notified body 0123".

Use and safety

Namespace and key Suggested name Type Choices or validation Where it appears
health.intended_use Intended use Rich text (rich_text_field) None Intended use block.
health.indications Indications Rich text (rich_text_field) None Intended use block, when Show indications is on.
health.contraindications Contraindications Rich text (rich_text_field) None Safety information band.
health.warnings Warnings Rich text (rich_text_field) None Safety information band.
health.precautions Precautions Rich text (rich_text_field) None Safety information band.
health.side_effects Possible side effects Rich text (rich_text_field) None Safety information band, as "Possible side effects".
health.safety_notice Safety notice Rich text (rich_text_field) None Warning callout on the product page, chip on product cards, flag in the cart, Safety notices list section.
health.safety_notice_url Safety notice URL URL (url) None "Read the full notice" link with the safety notice.

Identifiers and responsible persons

Namespace and key Suggested name Type Choices or validation Where it appears
health.udi_di UDI-DI Single line text (single_line_text_field) None Product identifiers block.
health.gtin_override GTIN override Single line text (single_line_text_field) None Product identifiers block and structured data, when the variant has no barcode.
health.model_number Model number Single line text (single_line_text_field) None Product identifiers block and structured data.
health.manufacturer_name Manufacturer name Single line text (single_line_text_field) None Responsible persons block.
health.manufacturer_address Manufacturer address Multi-line text (multi_line_text_field) None Responsible persons block.
health.manufacturer_contact Manufacturer contact Single line text (single_line_text_field) None Responsible persons block. An email address or URL becomes a link.
health.eu_representative EU authorized representative Multi-line text (multi_line_text_field) None Responsible persons block, labeled "EU responsible person".
health.uk_responsible_person UK responsible person Multi-line text (multi_line_text_field) None Responsible persons block.
health.importer Importer Multi-line text (multi_line_text_field) None Responsible persons block.

Documents and instructions

Namespace and key Suggested name Type Choices or validation Where it appears
health.documents Documents Metaobject, list of values (list.metaobject_reference) Reference the Health document metaobject definition. Documents block and Document library section. Also links the How to use block to the documents.
health.document_files Document files File, list of values (list.file_reference) None Documents block, when the product has no documents entries. The file alt text becomes the title.
health.how_to_use How to use (steps) Single line text, list of values (list.single_line_text_field) None How to use block. One step per list item.
health.how_to_use_images How to use images File, list of values (list.file_reference) Accept images only. How to use block. Image 1 goes with step 1, and so on.

Specifications and sizes

Namespace and key Suggested name Type Choices or validation Where it appears
health.specs Specifications (JSON) JSON (json) None Specifications block, compare tray and Comparison table section.
health.dressing_size_pad Pad size Single line text (single_line_text_field) None Size and features block.
health.dressing_size_overall Overall size Single line text (single_line_text_field) None Size and features block.
health.exudate_level Exudate level Single line text (single_line_text_field) Limit to preset choices: None, Low, Moderate, High. Allow it to be used as a filter. Size and features block. Can be used as a collection filter.
health.wear_time_days Wear time (days) Integer (number_integer) None Size and features block, as "Up to 7 days".
health.latex_free Latex-free True or false (boolean) None Size and features block.
health.waterproof Waterproof True or false (boolean) None Size and features block.
health.sterile Sterile True or false (boolean) None Size and features block.

Supply planner

Namespace and key Suggested name Type Choices or validation Where it appears
health.units_per_pack Units per pack Integer (number_integer) None Supply planner, estimated price per unit on product cards and in the Price block. Units in one pack.
health.unit_label Unit label (singular) Single line text (single_line_text_field) None Supply planner. Singular, for example "dressing".
health.unit_label_plural Unit label (plural) Single line text (single_line_text_field) None Supply planner and product cards. Plural, for example "dressings".
health.default_uses_per_week Default uses per week Decimal (number_decimal) None Supply planner starting value. Default is 7.
health.usage_min_per_week Minimum uses per week Decimal (number_decimal) None Supply planner lowest value. Default is 1.
health.usage_max_per_week Maximum uses per week Decimal (number_decimal) None Supply planner highest value. Default is 28.

Label, ingredients and highlights

Namespace and key Suggested name Type Choices or validation Where it appears
health.supplement_facts Supplement Facts label File (file_reference) Accept images only. What's inside block, as the label image.
health.drug_facts Drug Facts label File (file_reference) None What's inside block, as the label image, when there is no Supplement Facts image. Only images are shown there.
health.ingredients Ingredients Rich text (rich_text_field) None What's inside block.
health.allergens Allergens Single line text (single_line_text_field) None What's inside block.
health.age_suitability Age suitability Single line text (single_line_text_field) None What's inside block, as "Suitable for".
health.benefits Benefits (up to 4) Single line text, list of values (list.single_line_text_field) None Highlights block. Up to four lines are shown.

Editorial

Namespace and key Suggested name Type Choices or validation Where it appears
health.reviewed_by Reviewed by Metaobject (metaobject_reference) Reference the Health reviewer metaobject definition. Content reviewed by block.
health.last_reviewed Last reviewed Date (date) None Content reviewed by block.
health.references References Rich text (rich_text_field) None References block.

Blog post and page metafields

To show a reviewer on articles and pages, create these three definitions for Blog posts and for Pages too, with the same keys and types:

Namespace and key Type Where it appears
health.reviewed_by Metaobject (Health reviewer) "Reviewed by" line on articles, in blog listings and on pages
health.last_reviewed Date "Last reviewed" date with the reviewer line
health.references Rich text References block in the Blog post section

Create the metaobject definitions

Metaobjects hold information that you reuse across products, such as a document or a reviewer. Go to Settings > Custom data, select Metaobject definitions, then Add definition.

Health document

Set the type (handle) to health_document and use Title as the display name. Add these fields:

Field key Suggested name Type Required Validation and notes
title Title Single line text Yes Shown as the document link text.
document_type Document type Single line text Yes Limit to preset choices: Instructions for use, Quick start guide, Drug Facts, Supplement Facts, Declaration of conformity, Safety data sheet, 510(k) summary, Certificate, Warranty, Other. Documents are grouped under these names.
file File File Yes Usually a PDF.
language Language (ISO 639-1) Single line text Yes A two-letter language code, such as en, fr or de.
version Version Single line text No For example "Rev C".
effective_date Effective date Date No Shown as "Effective" with the date.
superseded Superseded True or false No Set to true when a newer version replaces this one.
applies_to Applies to Single line text No For example "Serial numbers from 2025-01".

Health reviewer

Set the type (handle) to health_reviewer and use Name as the display name. Add these fields:

Field key Suggested name Type Required Validation and notes
name Name Single line text Yes The reviewer's full name.
credentials Credentials Single line text No Job title or qualification, for example "Registered nurse".
photo Photo File No Accept images only.
bio Bio Rich text No One or two sentences.
profile_url Profile URL URL No A professional profile or registration page.

A reviewer checks your content for accuracy. The theme labels them as "Content reviewed by", never as recommending a product. Only list people who actually reviewed the content and agreed to be named.

Storefront access and entry status

  • In each metaobject definition, allow storefront access. Without it, the theme can't read the entries.
  • If you turn on the active and draft status option for a definition, set each entry to Active. Draft entries don't show in your store.
  • Add entries in Content > Metaobjects. Then select them in the product's Documents or Reviewed by metafield.

Enter product data

Open a product in the admin and scroll to Metafields. A few tips:

  • Regulatory status is a list. Add one status per item. If a status has a reference number, add it to Regulatory reference in the same position. For example, if the first status is us_510k_cleared, the first reference is its 510(k) number. Leave a reference out and the statement prints without one.
  • How to use (steps) is a list with one step per item. Keep each step to a sentence or two.
  • Specifications (JSON) uses a set format. See Product comparison and specifications.
  • Units per pack is the number of units in one pack. See Supply planner for how pack-size variants work.
  • Write safety text as it appears on your product labeling or instructions for use. The theme prints it as you enter it.

Connect block settings with dynamic sources

If your data already lives in other metafields, you don't need to copy it. Many health blocks have settings for a custom value. Their notes say "Connect a metafield with the dynamic source icon". A connected value is used instead of the health metafield.

  1. In the theme editor, open a product template and select the block, for example Safety information.
  2. Find the setting, for example Warnings under Custom values.
  3. Select the Connect dynamic source icon next to the setting.
  4. Choose your metafield. Only compatible metafields are listed.

Settings you can connect this way include:

  • Safety information: Contraindications, Warnings, Precautions and Possible side effects.
  • Intended use: Intended use (custom value) and Indications (custom value).
  • What's inside: Custom value (ingredients).
  • References: Custom value.
  • Safety notice: Custom value and Notice link (custom value).

Don't type product-specific text directly into these settings. Text you type applies to every product that uses the template.

Bulk editing tips

  • Bulk editor: in Products, select several products and choose Bulk edit. Add metafield columns from the columns menu, then edit values like a spreadsheet.
  • CSV import: export a few products to see the metafield columns for your definitions, fill in the file, then import it. Test with a small file first.
  • Reuse metaobjects: one reviewer entry can be selected on every product and article they reviewed. Update the entry once and every page updates.
  • Templates: text that is the same for a whole product line, such as a shared disclaimer, can go in a block setting on an alternate product template instead of in every product.
  • Work in batches: finish one product type at a time, and check one product of each type in the theme editor.

Check your setup in the theme editor

When you view a product in the theme editor, a Health data setup panel appears at the top of the product information. It lists the main health fields and marks each one Found or Empty for that product. It also links to this guide.

  • The panel shows only in the theme editor. Shoppers never see it.
  • To hide it, turn off Show health data setup checker in the editor in the Product information section.
  • If a field shows Empty but you entered data, check the namespace and key for typos, and check the theme setting Metafield namespace.