Solved

How to display product regular price and discounted price in the product block in Klaviyo?

  • 1 December 2020
  • 38 replies
  • 13727 views

Badge +3

Hello,

In my email content in Klaviyo, I added a product block into the email. Right now i can link the products either from the feed or from the catalog. It shows the products ok with only 1 product price. I would like it to show 2 product prices, one is for regular price with a strike across it and the second one is the discounted price . I can’t seem to figure this out or if Klaviyo even support it. Anyone here know how to do this or if you know this is even possible in Klaviyo?

 

Thanks

 

icon

Best answer by David To 29 July 2021, 20:12

View original

This topic has been closed for comments

38 replies

Userlevel 7
Badge +60

Hello @Shopado.com.au and @KuyaEddie,

Thank you both for showing such strong interest in having a comparative price feature within Klaviyo. 

We understand that the lack of this feature has been an inconvenience for many, and we highly appreciate your feedback and concerns. Our internal product teams have been made aware of the strong outpour of support for such a feature. In the interim, @walid.bendris has shared guidance on a workaround within their Solution Recipe 4: Extending Klaviyo’s Product Block Functionality article.

This solution is not a native feature of Klaviyo and is written mainly for developers and technically-advanced users. Due to its custom nature, we would not be able to provide specific guidance to its implementation or troubleshooting assistance. For this reason we do highly recommend working with a developer or working with a member of our Partner Agencies that are better geared towards assisting in this regard. 

We'll be closing this thread at this time as we do not have any updates to share. If there is an update to share we will be sure to reopen the topic for visibility. Again, we appreciate your patience as our teams actively works on exploring this feature.

Thanks for being members of our Klaviyo Community!

David

Badge +1

@david.to I’m still trying to use https://medium.com/solutions-klaviyo/solution-recipe-4-extending-klaviyos-product-block-functionality-7cea60ae9cda

To get my head around the code and functions. I’ve pored over that article word by word and there’s just some assumed knowledge and jargon that is a road block. And “going to a partner” for this just isn’t an option. 

 

My main goal is to be able to use that code to be able to manually retrieve data from my catalogue that I’ve fed to Klaviyo using an XML feed. Which I’ve been told is possible. 

 

In that article above, I draw blanks at 

Use a lookup on product_feed to get the ID of the first item, then use that ID to look up the same item in the Catalog using a Catalog Lookup and pull that item’s name into the HTML table. If you preview the template now, you should be able to see the name of the first item in the selected Product Feed.

 

I’m sorry what? Lookup on product_feed? How do you mean lookup. Manually? Is there a process? Am I setting up the catalogue/product feeds wrong? I’ve even followed the links around to get an animated step by step to find the catalogue.item** info but it just gives me a broken link even if I follow exactly what’s shown. 

It’s a struggle to begin with and I’m desperate to get through this but the articles don’t really help unless there’s some knowledge there. It should really link back and keep linking back till it gets to the basic steps then you can build forward there.

 

I’ve asked support for assistance with this but still no reply. 

 

{% with columns=3 product_feed=feeds.ExampleProductFeed|slice:":6" %}
<table>
<tbody>
<tr>{% for item in product_feed %}
<td>{% catalog item.item_id %}
<table>
<tbody>
<tr>
<th><a href="{{ catalog_item.url }}"><img alt="{{ catalog_item.title }}" src="{{ catalog_item.featured_image.thumbnail.src }}" /> </a></th>
</tr>
<tr>
<th>{{ catalog_item.title }}</th>
</tr>
<tr>
<td><p>{% currency_format catalog_item.metadata|lookup:"$price"|floatformat:2 %}</p></td>
</tr>
<tr>
<td>
<p><a href="{{ catalog_item.url }}">Buy Now</a></p>
</td>
</tr>
</tbody>
</table>
{% endcatalog %}</td>
{% if forloop.counter|divisibleby:columns %}</tr><tr>{% endif %}
{% endfor %}</tr>
</tbody>
</table>
{% endwith %}

 

Badge +1

Ive Just read through this whole thread really hoping that Klaviyo would have had the functionality added by the end of it. I honestly cant believe that they have such a detailed and complex application and yet dont have such a simple function. Get your act together Klaviyo …..people are loosing money and sales over this !! 

Badge +3

I've been asking for this for a year. I was told multiple times they would put it on the roadmap. I now have a potential new client (ready to move forward, only this issue is holding them back). They have a business where they only do promotions, so for them it’s essential and it should work out of the box, without too much work. 


I can't believe that not more clients complain about this. Isn't this essential for an ecommerce business?

Userlevel 7
Badge +60

Hey @KuyaEddie,

The Solution Recipe was actually published on August 17, 2021 which proceeds when our new template editor was available. All screenshots shown in the guide is using Klaviyo’s classic editor. In addition, all functions highlighted in the Recipe can be implemented using both the classic and new editors as the core function stayed the same between the two. 

With the launch of Klaviyo’s new editor we also have a slew of newly published Help Center articles that go over the similar usages but referencing specifically to the new editor. You can find these article by searching “new editor” within the Klaviyo Help Center. I’ve also listed out a few below for your convenience:

 

To retrieve the data-tags to reference your collections, I would suggest reading up on @walid.bendris’s point under the Preview Objects section which i’ve highlighted below. Here, he explains how to print a list of the available fields pertaining to the object which you can use to identify the field you want to reference the collections.

 

There are a few data objects being used in the examples below but we won’t go into detail about all of the existing data on each of these objects. Instead, you can preview the available data by just printing out that object on the template itself after it’s initialized. For example, if you want to see all of the available fields on the catalog_item initialized by a Catalog Lookup, you can print it out in a template by adding the tag:

{{ catalog_item }}

by itself within that Catalog Lookup scope (i.e. between the {% catalog %)and {% endcatalog %}tags). After adding this tag, save the block and preview it to see a full list of available fields for that object.

David

 

Badge +1

Hi David,

Thanks for that will review. You may want to specify or create a forenote in the guide that it uses the new editor. I am looking to DIY this so partners are out of the question for the moment. Is there a comprehensive guide for the new editor, particularly 1) with feature comparison or update comparison between old editor and 2) particular with retrieving the data-tags to reference collections? 

Userlevel 7
Badge +60

Hey @KuyaEddie,

If you were having any troubles following @walid.bendris’s Solution Recipe, I would strongly recommend reaching out and working with a developer or an email designer you are familiar. You can also reach out for additional assistance from our expanse network of Klaviyo Partners who can further offer you a hand. 

In addition, you may notice some differences in the email template you are using with the screenshots found in the Solution Recipe as you may be using our new email template builder which was recently released! This new template editor retains many of the classic editor’s capability with the inclusion of some other new ones. Building out a custom product block would still be possible in the new editor. If you wanted to follow along to the screenshots within the Recipe, you can still access the classic editor by selecting the classic editor option when creating a new template. 

In case you missed our KPE event, you can watch a recording of the event and all the exciting new features that were released from the following Community post:

David

Badge +1

Actually the guides and their subsequent guides look to be dated? The editor doesn’t look like that now. Sorry I’m getting no where with this one. 

Badge +1

Hi david. Thanks for that! 

 

Going to definitely need some assistance with that one I’m already stuck on Set the show/hide block feature logic for this Product Block to false.

 

What do I put in the logic text field? 

Userlevel 7
Badge +60

Hey @KuyaEddie,

That’s an interesting point you make. One thing to keep in mind though is that although you can certainly include an additional price field in the XLM feed, you wouldn’t be able to map it to the standard price field if it has already been used. This would lead you to need to map this secondary price field to something else. Because Klaviyo’s default product block can only take advantage of the default price field for use to display the product price, we recommend building your own custom product block within Klaviyo as mentioned my previous comment to this thread. 

When building your own custom product block, you can then take advantage of these multiple price fields you have included within your XML feed. As a reminder, you can find further instructions on how to leverage this and build your own custom product block from the Solution Recipe 4: Extending Klaviyo’s Product Block Functionality published by the @walid.bendris.

David

 

Badge +1

I’m into this now, using the XML Product Feed to feed products into the system. I’m looking to add an additional price point. (e.g. “Standard Price” + “Member Price”) that sort of thing. I can see it IS possible to add additional <price></price> to the xml field, - it displays as a list in the preview. but no way to utilise it. 

 

I’ve raised this in a support request but still no reply. 

Userlevel 7
Badge +60

Hey @stouchette,

Appreciate you sharing your feedback pertaining to including an additional Compare at Price field within the Klaviyo Product Block! 

To address your concern surrounding the possibility of @walid.bendris’s custom product block block solution mentioned in the Solution Recipe displaying an outdated price; because you are using a Shopify integration, the catalog would actually be updated in real time. This would result in the custom product block you have built referencing your Shopify catalog in real-time pulling in the most up to date pricing. Once built, this custom product block would act the same way as the native product block Klaviyo offers within its template builder. 

You can find a chart pertaining to a number of Klaviyo integrations and how often they sync from the How Often Integrations Sync Help Center article. For your convenience, I’ve also included the chart pertaining specifically to ecommerce integrations and what comes through as part of the sync and how frequent the syncs occur below:

Ecommerce Type What syncs How often it runs
Shift4Shop (formerly 3dcart) Ecommerce Order, and catalog, and customer data every hour
BigCommerce Ecommerce Order, and catalog, and customer data real time
Magento 1 Ecommerce Order, and catalog, and customer data every 30 minutes
Magento 2 Ecommerce Order, and catalog, and customer data every 30 minutes
OpenCart Ecommerce Order and customer data every hour
PrestaShop Ecommerce Order, and catalog, and customer data Transactional: every 30 minutes
Customer: real time
Salesforce Commerce Cloud Ecommerce Order, and catalog, and customer data Orders & customers: every hour
Catalog: every 8 hours
Shopify Ecommerce Order, and catalog, and customer data real time
Spree Ecommerce Order, and catalog, and customer data every hour
Woocommerce Ecommerce Order, and catalog, and customer data real time

 

Thanks for being a part of the Klaviyo Community!

David

Badge +1

We stumbled on this limitation as well. Is it really that hard to pull in the extra field from Shopify to get the Compare at price? For now doing the work around, but  could lead to outdated prices displayed. Seems like a rookie miss on getting this in the roadmap since it still is not in the product 8 months later.

Userlevel 7
Badge +60

Good morning,

I just wanted to share a new update! 

@walid.bendris recently published a Medium Article that provides more in-depth detail on building your own custom product block which I had previously mentioned as a solution to displaying both a regular and sales price. You can find his article here: Solution Recipe 4: Extending Klaviyo’s Product Block Functionality

In it, he details the steps needed to build the custom block in your Klaviyo template which would extend the default Product Block’s functionality. Keep in mind that this process is still fairly sophisticated and we do recommend working with a developer to implement this solution.

Thanks for sharing your product feedbacks and for being a part of the Klaviyo Community!

David

Userlevel 7
Badge +60

Hello @Oyivalk@Drewseph and @LeightonS , 

At present, Klaviyo’s product block does not support displaying more than one price, such as a product’s original price and its current sales price. As mentioned by @Julia.LiMarzi in this thread, the most common work around to this would be manually updating the price of the native product block to reflect the product’s sales price or adding a column block under the product block to manually display a secondary price. A YouTube video posted recently that highlighted how to put this strategy into action can be found here: https://www.youtube.com/watch?v=VMjrJ193iJ8&t=154s 

If you are code-savvy, an additional solution available would be using a series of Django tags and Klaviyo’s Catalog Lookup function to custom code your own product block. Through using a Text block, you can custom code and simulate a native Klaviyo product block off your own design to reference any of your product’s properties including a regular and sales price field. Some resources I would suggest using to build this are the Django Documentation, Overview of the Catalog Lookup Tag, and Template Tags and Variable Syntax Help Center articles. You may also want to work with your template designer or finding one from one of our many partner agencies to further help you custom build this function.

As another note, if you wanted to display a sales price in addition to a product’s regular price within a flow email which utilizes a dynamic table block; I would suggest reviewing if these two properties are being synced from the event used to trigger your flow. If both a sales price and the regular price are being shared, you can dynamically reference the variable tags for these properties to display within your emails. Here’s some refreshers on using and customizing dynamic table blocks: 

This would further allow you to use the suggestion mentioned by @Paul S of using a strike through for your regular price tag <s> {{ whatever the price tag is }} <s> followed by including the tag to reference your sales price next to it or below it.

Since this threads surrounds an interest in highlighting a price drop, in case you may have missed Klaviyo’s most recent KPE event, I’ve included a summary of the event below. I bring this up because one of the exciting new feature releases during this event was a Price Drop Flow Trigger!

Thank you for being Klaviyo Community members!

David

Save your money and ditch klaviyo. This upgrade isnt coming anytime soon

Badge +1

I just signed up with a paid plan only to find out that something so basic is missing.  I thought Klaviyo was a superior product but it seems like they don’t cater for something so simple.  

 

Please get this feature in as soon as possible otherwise I’m better off saving my money and using Shopify Email.

Anybody else not buying it? My staff would never promise something with no timeline. 

Userlevel 6
Badge +9

Hi @DaveK, @Oyivalk, @Drewseph 

Thank you so much for sharing your feedback and honesty on your experience without the discounted price block. As @Julia.LiMarzi mentioned above, we have added this as a feature request, but I’ve also gone ahead and shared your additional comments and experiences with the appropriate teams. Although I do not have a specific timeline to reference, our team is exploring this functionality. I’ll be sure to update in this thread when there are more details to share. 

Again, thank you for sharing this with us and for being a part of the Community, 
-Cassy 

Well it sucks if it’s a campaign element. If it’s part of a flow thats going out multiple times each day then you lose a ton of money not having it automated. Klaviyo needs to fix this, but Klaviyo will never gonna get around to adding this

Badge +2

Definitely need this option. It’s a PAIN in the BUTT to be doing the discount price manually with a strikethrough. It’s more labour involved for the person creating the newsletters.

Has this been updated yet?

Badge +1

I've been asking for this function since the day I signed up to Klaviyo 3 years ago and they promised to send it to their team.

It's such a simple request that for whatever reason they keep ignoring. It's marketing 101 to have the regular price as the anchor followed by the sale price. 

I just dont understand why it's not a priority despite so many people requesting it

Userlevel 6
Badge +22

Hey @Lukas, I don’t have an update at this time. 

I will update the feature request to also include this use case you suggested for loyalty tiers. For your tiered pricing, do customers log in to an account, and then the pricing they are shown is dependent on their loyalty level? And is that discount standardized across products? For example, if someone is a VIP they get 20% off all products?

A solution for promoting loyalty pricing in emails (if the discount is standardized) is to use Hide/Show Blocks to inform customers from different loyalty levels that the prices they see in the email will be further discounted by x amount because they’re loyal members. In my personal experience, I have seen instances where showing a higher price and offering a discount is more effective than showing a lower price, and it may be something you can experiment with as a workaround. 

Badge +2

Hi @Julia.LiMarzi ,
please is there any update regarding this functionality? When we can expect it? It is a deal-breaker for us as well. 

Also please it would be also great if we could select which price we want to compare from to in the product blog as different customers have access to different prices based on their loyalty level. 

Regards
Lukas