How can I add... /m² /sheet /pack /roll after the price on all pages?

Topic summary

Goal: Display prices with a unit suffix (e.g., £49.94/m²) across all pages (product, collection, cart) in the Shopify “Craft” theme.

Proposed approach: Replace the theme’s price rendering snippet. A participant advised locating snippets/price.liquid and replacing its contents with a Liquid snippet that appends “/m²” after displayed prices, including regular, sale, and volume pricing, and respecting currency settings. They noted Craft is based on Dawn, implying compatibility.

Outcome so far: The requester reports the provided code “does not work.” The responder suggests it was implemented incorrectly. No step-by-step troubleshooting or verified fix was shared publicly.

Notes: A code snippet is central to the solution; it was posted inline from mobile (no attachment), and specific cart-page adjustments were not detailed.

Status: Unresolved/ongoing. The requester moved to private messages with the helper.

Open questions:

  • Confirm exact files/sections to edit for cart, collection, and product pages if they use different snippets.
  • How to toggle different units (/m², /sheet, /pack, /roll) per product consistently.
Summarized with AI on December 28. AI used: gpt-5.

We sell tiles and would like to have the price like… £49.94m² on all pages..

What code would I need to add and where for in the theme?

Currently using /m2 or any of the other options above in the metatags for our current theme ‘craft’.

Ware.house

Thanks!

That should be pretty easy. I have an idea. Ima test it really quick

Hey @TileOutlets , I got it now.

Search for price.liquid on your theme code, delete the code that’s in the snippet and replace it with my code (I am on mobile so I can’t attach code so I gotta do it this way, sorry):

{% comment %}
Renders a list of product’s price (regular, sale)

Accepts:

  • product: {Object} Product Liquid object (optional)
  • use_variant: {Boolean} Renders selected or first variant price instead of overall product pricing (optional)
  • show_badges: {Boolean} Renders ‘Sale’ and ‘Sold Out’ tags if the product matches the condition (optional)
  • price_class: {String} Adds a price class to the price element (optional)
  • show_compare_at_price: {Boolean} Renders the compare at price if the product matches the condition (optional)

Usage:
{% render ‘price’, product: product %}
{% endcomment %}
{%- liquid
if use_variant
assign target = product.selected_or_first_available_variant
else
assign target = product
endif

assign compare_at_price = target.compare_at_price
assign price = target.price | default: 1999
assign price_min = product.price_min
assign price_max = product.price_max
assign available = target.available | default: false
assign money_price = price | money
assign money_price_min = price_min | money
assign money_price_max = price_max | money
if settings.currency_code_enabled
assign money_price = price | money_with_currency
assign money_price_min = price_min | money_with_currency
assign money_price_max = price_max | money_with_currency
endif

if target == product and product.price_varies
assign money_price = ‘products.product.price.from_price_html’ | t: price: money_price
endif
-%}

{%- comment -%} Explanation of description list: - div.price__regular: Displayed when there are no variants on sale - div.price__sale: Displayed when a variant is a sale {%- endcomment -%}
{%- if product.quantity_price_breaks_configured? -%} {%- if show_compare_at_price and compare_at_price -%} {%- unless product.price_varies == false and product.compare_at_price_varies %} {{- 'products.product.price.regular_price' | t -}} {% if settings.currency_code_enabled %} {{ compare_at_price | money_with_currency }} {% else %} {{ compare_at_price | money }} {% endif %} {%- endunless -%} {%- endif -%} {{ 'products.product.price.regular_price' | t }} {{- 'products.product.volume_pricing.price_range' | t: minimum: money_price_min, maximum: money_price_max -}}/m² {%- else -%} {{ 'products.product.price.regular_price' | t }} {{ money_price }}/m² {%- endif -%}
{%- unless product.price_varies == false and product.compare_at_price_varies %} {{ 'products.product.price.regular_price' | t }} {% if settings.currency_code_enabled %} {{ compare_at_price | money_with_currency }} {% else %} {{ compare_at_price | money }} {% endif %} {%- endunless -%} {{ 'products.product.price.sale_price' | t }} {{ money_price }}/m²
{{ 'products.product.price.unit_price' | t }} {{- product.selected_or_first_available_variant.unit_price | money -}} /  {{ 'accessibility.unit_price_separator' | t }}  {%- if product.selected_or_first_available_variant.unit_price_measurement.reference_value != 1 -%} {{- product.selected_or_first_available_variant.unit_price_measurement.reference_value -}} {%- endif -%} {{ product.selected_or_first_available_variant.unit_price_measurement.reference_unit }}
{%- if show_badges -%} {{ 'products.product.on_sale' | t }} {{ 'products.product.sold_out' | t }} {%- endif -%}

It will look like this then:

Unfortunately, this does not work.

IG you did it wrong then since craft is bassed on dawn, as all other free themes

have messaged you.