Skip to main contentSkip to Content
Skip to Content
Displaying ReviewsTrust signals

Trust signals

Trust signals are five small blocks that each show one line of proof, like 120+ sold in the last 7 days or 95% 5-star reviews.

BlockShowsExample
BestsellerThe product’s sales rank#2 best-selling in the last 30 days
Sold CountUnits sold120+ sold in the last 7 days
Last PurchasedTime since the last purchaseLast purchased 6 hours ago
Returning CustomersShare of buyers who came back38% are returning customers
Rating ShareShare of reviews at a star level95% 5-star reviews

The first four read the live signals FiveOh calculates from your orders, for the last 24 hours, 7 days, 30 days and all time. Rating Share reads the review distribution. On product pages, every signal uses the product’s figures; elsewhere, the store’s, except Bestseller, which only works on product pages.

Where to place it

  1. Product page, around the add-to-cart button

Adding a signal

  1. In the Theme Editor, open a product template.
  2. In the section with the add-to-cart button, click Add block and choose the signal from the Apps tab, for example FiveOh Sold Count.
  3. Set its period and threshold, then update its text to match: the text is not changed for you when you pick another period.

Each signal hides itself when there is no data, or when the figure is outside the thresholds you set. So you can place a signal on every product and it only shows where it is worth showing.

Each block has one text in its Texts setting, with the values listed below. Change, extend and translate it like any block text, see Customising blocks.

Bestseller

Shows the product’s rank by units sold in a period, among all products or within collections you pick. Only on product pages.

SettingWhat it does
PeriodLast 24 hours, 7 days, 30 days (default) or all time.
Rank within collectionsUp to 50 collections, in order. Shows the rank within the first of them the product is in, like Women before Men. Empty by default: the rank among all products.
Maximum rank to showShows the block only for the top products, 10 by default. Ranks within collections go up to 50.
KeyDefaultValues
bestseller#{a} best-selling in the last 30 days{a} rank, {b} title of the collection the rank is in (empty without collections)

Ranks change with sales, so a text like Top {a} this month or simply Bestseller works too. With collections, name the collection: #{a} in {b}.

Sold Count

Shows how many units were sold in a period.

SettingWhat it does
PeriodLast 24 hours, 7 days (default), 30 days or all time.
Minimum count to showHides the block below this number, 1 by default.
KeyDefaultValues
sold_count{a}+ sold in the last 7 days{a} units sold, {b} the same, short (12.9k)

Last Purchased

Shows how long ago something was last bought, like 4 days ago, in the shopper’s language. On product pages it is the product or the selected variant; elsewhere the store’s last purchase. The relative time is calculated in the browser, so it needs the FiveOh Core app embed.

SettingWhat it does
Maximum age to showHides the block when the purchase is older: 1 hour, 24 hours, 3 days, 7 days (default) or 30 days, or always show.
KeyDefaultValues
last_purchasedLast purchased {a}{a} relative time, {b} relative time for the selected variant, {c} date, {d} date for the selected variant

Returning Customers

Shows the share of buyers in a period who had ordered from your store before. On product pages, the buyers of that product.

This measures customers returning to your store, not customers buying the same product again. Word the text accordingly.

SettingWhat it does
PeriodLast 24 hours, 7 days (default), 30 days or all time.
Minimum percent to show, Minimum count to showHide the block below these. 0 ignores them.
KeyDefaultValues
returning_customers{a}% are returning customers{a} percent, {b} number of returning customers

Rating Share

Shows the share of reviews at a star level, from the product’s reviews on product pages and from all reviews elsewhere.

SettingWhat it does
Share type5 stars (default), 4 stars and more, 2 stars and less, or 1 star.
Minimum percent to show, Minimum count to showHide the block below these. 0 ignores them.
Maximum percent to show, Maximum count to showHide the block above these. 100 and 0 ignore them.
KeyDefaultValues
rating_share{a}% 5-star reviews{a} percent, {b} number of reviews

The maximums are for the negative share types: with 1 star and a Maximum percent to show of 5, a text like Only {a}% 1-star reviews shows only while it is true.

Data

The block reads these metafields. Your theme code can read the same ones; their full structure is in the reference. On product pages they are the product’s, elsewhere the shop’s.

  1. live_signals: units sold, sales rank and returning customers for four periods, and the time of the last purchase. Bestseller, Sold Count, Last Purchased and Returning Customers read it. Bestseller with collections reads the collections’ live_signals instead, which hold the rank within each collection.
  2. rating_distribution: the number and share of reviews per star. Rating Share reads it.

Examples

Every value these blocks use is in the live_signals and rating_distribution metafields of the product, the shop and your collections, so you can show signals anywhere in your theme. Their structure is in the Data section above.

The examples are one line of text each, so they need no CSS: they take the font and color of the spot in your theme where you put them.

Units sold in the last 24 hours

Shown only from five units, a higher minimum than the block’s default of 1:

12 sold in the last 24 hours

{%- assign fiveoh = product.metafields['app--324569563137'] -%} {%- assign day = fiveoh.live_signals.value.periods.last_24_hours -%} {%- if day.sold_count >= 5 -%} <p>{{ day.sold_count }} sold in the last 24 hours</p> {%- endif -%}

The texts are in English to keep the code short. Other languages

Bestseller rank

sold_rank is the product’s place among all products by units sold, here in the last 30 days, shown for the top 10:

#2 best-selling in the last 30 days

{%- assign month = product.metafields['app--324569563137'].live_signals.value.periods.last_30_days -%} {%- if month.sold_rank and month.sold_rank <= 10 -%} <p><strong>#{{ month.sold_rank }}</strong> best-selling in the last 30 days</p> {%- endif -%}

The texts are in English to keep the code short. Other languages

Bestseller rank within a collection

sold_ranks on a collection holds each product’s place within that collection. Its keys are product IDs as text, so product.id gets append: ''. Here the place in the Shirts collection in the last 30 days, shown for the top 10:

#1 best-selling in Shirts

{%- assign shirts = collections['shirts'] -%} {%- assign product_key = product.id | append: '' -%} {%- assign place = shirts.metafields['app--324569563137'].live_signals.value.periods.last_30_days.sold_ranks[product_key] -%} {%- if place and place <= 10 -%} <p><strong>#{{ place }}</strong> best-selling in {{ shirts.title }}</p> {%- endif -%}

The texts are in English to keep the code short. Other languages

Share of 5-star reviews

rating_distribution holds the count and percent per star. Its keys are strings, so '5' is quoted:

87% of reviews give 5 stars

{%- assign five = product.metafields['app--324569563137'].rating_distribution.value['5'] -%} {%- if five.percent >= 80 -%} <p>{{ five.percent | round }}% of reviews give 5 stars</p> {%- endif -%}

The texts are in English to keep the code short. Other languages

Troubleshooting

  1. A signal does not show: the figure is outside its thresholds, or there were no orders in the period. Try a longer period or a lower minimum.
  2. The text names the wrong period: the text does not follow the Period setting. Update it by hand.
  3. Last Purchased shows a date in the wrong language, or nothing: turn on the FiveOh Core app embed.
Last updated on