Unit pricing
If a merchant sells products in specific quantities or measurements, they might need to display a price per unit for those products. For example, if a product is sold in weights of 500g, 1kg, and 1.5kg, a merchant might want to show the price per 100g for each variant.
In this tutorial, you'll learn how to display unit prices for product variants.
Unit prices are available only to stores located in the European Union (EU) or Switzerland. Unit prices can be added to products through the Shopify admin.
Anchor to ResourcesResources
To display unit prices in your theme, you'll use the following:
- The
unit_price
property on theline_item
orvariant
objects - The
unit_price_measurement
object
Depending on where you're implementing your unit price display, you'll access unit price information through the associated parent object:
Context | Example template types | Parent object |
---|---|---|
Variants that have been added to a cart or are part of an order | line_item | |
Product and variant listings | variant |
Anchor to Implementing unit price displaysImplementing unit price displays
You should add support for unit prices wherever you have a price display. Common locations include:
- The collection template
- The product template
- The cart template
- The customers/order template
You can include this code in the relevant template or a section in the template.
Your code should do the following:
- Check whether the variant or line item has a unit price measurement using
variant.unit_price_measurement
orline_item.unit_price_measurement
. - If the variant or line item uses a unit price measurement, then use the
unit_price_with_measurement
filter to display the unit price based on the store's HTML without currency setting.
Example
{% if variant.unit_price_measurement %}
{{ variant.unit_price | unit_price_with_measurement: variant.unit_price_measurement }}
{% endif %}
{% if line_item.unit_price_measurement %}
{{ line_item.unit_price | unit_price_with_measurement: line_item.unit_price_measurement }}
{% endif %}
- Use money filters combined with the
unit_price_with_measurement
filter to display the unit price with a different money format.
Example
{% if variant.unit_price_measurement %}
{{ variant.unit_price | money_with_currency | unit_price_with_measurement: variant.unit_price_measurement }}
{% endif %}
{% if line_item.unit_price_measurement %}
{{ line_item.unit_price | money_with_currency | unit_price_with_measurement: line_item.unit_price_measurement }}
{% endif %}