Pricing Display
displaying a rrp price (msrp price) within the sparklayer frontend docid\ ogkfvqx13dhw2582d57kj , it's possible to show rrp prices (or "msrp prices") alongside your specific b2b pricing for example, you may want logged in users to see what non b2b customers pay for a specific item, allowing them to easily see their pricing savings to enable this, sparklayer uses special settings (sometimes referred to as metafields or attributes ) that allow additional data to be stored against products setting up metafields on shopify to learn more about how to configure metafields on shopify for sparklayer, please refer to our guide here docid\ bxwngb6b1n7qffhtnu7pk setting up metafields on shopify 🤖 automatically add this to your shopify store by going to configure metafields https //app sparklayer io/configuration/integrations/platform 📖 learn more about how metafields work in our guide here docid\ bxwngb6b1n7qffhtnu7pk item details custom data type variants https //admin shopify com/settings/custom data/productvariant/metafields metafield type this must be set as an json string namespace this must be set as sparklayer key this must be set as rrp value this must be set up in the following format \[{"value" 15 99,"currency code" "usd"}] where value is the retail price and currency code is the currency code (e g usd, gbp, eur) you can define prices for additional currencies by using this example format \[{"value" 15 99,"currency code" "usd"},{"value" 10 99,"currency code" "gbp"}] automate the rrp pricing you can automatically populate the sparklayer rrp metafield from your live shopify prices using shopify flow see our guide docid\ uvxv1kug vszepr5dlb2z for ready made templates you can also watch our video tutorial on how to set this up item details custom data type variant level (products) metafield type this must be set as an json string namespace this must be set as sparklayer key this must be set as rrp value this must be set up in the following format \[{"value" 15 99,"currency code" "usd"}] where value is the retail price and currency code is the currency code (e g usd, gbp, eur) you can define prices for additional currencies by using this example format \[{"value" 15 99,"currency code" "usd"},{"value" 10 99,"currency code" "gbp"}] for more information, please refer to the sparklayer technical docs https //docs sparklayer io/tech docs updating language and text you can update the default text by adding code to your core script docid\ qwxsym9x5 pviogutekcp learn more docid\ klrs7wtxn3wncdy8z5zvu about how to update text on sparklayer / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / translations { en { "pdp price rrp" "msrp ", "product card price rrp" "msrp ", "cart price rrp" "msrp ", } }, / end of code / if you'd like to adjust the appearance of the rrp pricing, you can do so via adding special css overwrites to apply formatting simply add the below css to your css overwrites docid\ qct2zk8wjhyiv2zbvbjyy and adjust accordingly \<style> \ root { \ spark pricing rrp decoration line through; \ spark pricing rrp color red; } \</style> quantity pricing learn more for our full guide on quantity pricing and available configurations, please see our quantity rules docid\ cmxfrpgjqxfz9vjztvv0d guide quantity pricing table if you've set up quantity pricing & settings docid\ t2ceaosmeohmgzstjcnhe for your products, sparklayer will by default show this to your customers within the product detail interface docid\ jkcjbyuanjzp75i8ul7mt this will also show to customers when they add items to the my cart interface docid\ efevur a3ycjxuhvrr7t it's also possible to display the tiered pricing breaks table anywhere on your product detail page by adding a special code snippet to your website simply add the below in the source code of your product pages to display an additional quantity breaks table quantity pricing savings you can also customise how the "savings" column displays to customers area details decimal places if you'd prefer to show two decimal places in the savings percentage (e g 9 45% off instead of 9% off), you can add the following setting to your sparklayer core script docid\ qwxsym9x5 pviogutekcp (within the display settings) roundpricebreakpercentages true, hiding savings you can optionally hide the savings percentage from showing by adding the following setting to your sparklayer core script docid\ qwxsym9x5 pviogutekcp (within the display settings) showpricebreaksavings false, quantity pricing discount percentage based off rrp if you're using quantity pricing & settings docid\ t2ceaosmeohmgzstjcnhe in your price lists, this will display additional information to make it clear to the customer how much they are saving based on how many units they purchase by default, the 'savings' will be calculated based on the single unit price of the particular product (or variant) for example, if the single unit price is $2 00 and if you purchase 5 or more the price reduces to $1 00, the savings will display as 50% if you'd prefer for the savings to instead be calculated off the rrp (i e retail price) of a product, you can enable this by adding a special setting updating the display you can update the default display by adding code to your core script docid\ qwxsym9x5 pviogutekcp learn more docid\ qwxsym9x5 pviogutekcp about how to update display settings on sparklayer / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / display { savingsuserrp true, / other settings should show below / } / end of code / unit of measure pricing are you looking to set up pricing based on "units of measure" such as boxes, cartons, or pallets? please refer to our quantity pricing & settings docid\ t2ceaosmeohmgzstjcnhe guide to learn more customising the pricing text it's possible to prefix the pricing display on a product detail page with custom language such as 'your price' updating language and text you can update the default text by adding code to your core script docid\ qwxsym9x5 pviogutekcp learn more docid\ klrs7wtxn3wncdy8z5zvu about how to update text on sparklayer / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / translations { en { "pdp price from prefix" "your price " } }, / end of code / in addition to this, you can also adjust any of the default language used for pricing using the below language strings / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / translations { en { "pdp price from" "from ", "pdp price rrp" "rrp ", "pdp price pack size" "pack ({packsize}) {price}", "product card price from" "from ", "product card price rrp" "rrp " } }, / end of code / display a 'unit cost' price if you sell products that comprise 'multiple units', it's possible to display an automatically calculated "unit price" on your product pages for example, you may sell a product that comes in packs of 10, but you want to make it clear to your customers how much a "single unit" costs or you may sell products that come in specific weights (e g kg) and you want to show a "price per kg" to enable this, sparklayer uses special settings (sometimes referred to as metafields or attributes ) that allow additional data to be stored against products setting up metafields on shopify to learn more about how to configure metafields on shopify for sparklayer, please refer to our guide here docid\ bxwngb6b1n7qffhtnu7pk item details custom data type variants https //admin shopify com/settings/custom data/productvariant/metafields metafield type this must be set as an integer string namespace this must be set as sparklayer key this must be set as case size value this must be set up in the following format 1, 2, 3, etc once the setting has been set up, you can then use and modify the below code sample to display on your product pages click here to view code sample {% if customer metafields sparklayer authentication %} {% if product metafields sparklayer case size %} \<span data custom spark case size="{{ product metafields sparklayer case size }}" data product id="{{ product id }}">\</span> \<script> document addeventlistener('domcontentloaded', function(event) { settimeout(() => { document queryselectorall('\[data custom spark case size]') foreach(async (el) => { var casesize = number(el dataset customsparkcasesize); if (!casesize) { return; } var productid = el dataset productid; try { pricedata = await window\ spark getpriceforproduct (productid); } catch (e) { console error(e); return; } const formatter = new intl numberformat(\[], { style 'currency', currency pricedata currencycode ?? 'usd', }); el textcontent = `this product comes in packs of ${casesize} unit price ${formatter format(pricedata fromprice / number(casesize))}`; }); }, 500); }); \</script> {% endif %} {% endif %} combining with shopify's unit price feature if you're using shopify's built in unit price feature, you can also dynamically display the 'reference unit' e g kg, lb, ml within the code sample above, simple change el textcontent to the below el textcontent = `unit price per {{ item unit price measurement reference unit }} ${formatter format(pricedata fromprice / number(casesize))}`; important to note if you are looking to customise the behaviour of how this works, we recommend engaging a shopify expert to assist item details custom data type variant level (products) metafield type this must be set as an integer string namespace this must be set as sparklayer key this must be set as case size value this must be set up in the following format 1, 2, 3, etc for more information, please refer to the sparklayer technical doc https //docs sparklayer io/tech docs adjusting the "unavailable" message when a product has no b2b pricing set against it, the product card interface docid\ mrp z0qizq2qksseujylv and product detail interface docid\ jkcjbyuanjzp75i8ul7mt will display a message that shows "unavailable" this indicates to the b2b customer that the product cannot be purchased if you'd prefer, you can adjust this to display a different message by updating the language settings on your store updating language and text you can update the default text by adding code to your core script docid\ qwxsym9x5 pviogutekcp learn more docid\ klrs7wtxn3wncdy8z5zvu about how to update text on sparklayer / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / translations { en { "pdp messaging un sellable" "unavailable", "product card messaging un sellable" "unavailable", "product card messaging select option" "unavailable, please select another option" } }, / end of code / discounts & promotions sparklayer supports the ability to have discounts and promotions applied during the checkout and these can either be redeemed via discount codes, or applied "automatically" to the customer's order the sparklayer discount engine unlocks a range of discount rules including order level discounts eg, spend $1,000 and get 10% off, spend $2,000 and get 15% off percentage and fixed discounts eg, 20% off an order total, $100 off an order total coupon codes eg, enter code newcustomer and get 5% off scheduled discounts eg, start discount today and end it on a specific date and time customer specific discounts eg, only allow customer group ‘b2b vip’ to qualify for the discount and more learn more about discounts you can see a full overview of what’s possible with discounts in our guide here docid\ wrejpw9uryjqwiqeks cg show rrp prices only (for in store shopping) if you manage orders in physical locations with customers (e g in store), it's possible to enable a setting that sets the sparklayer frontend interfaces docid\ ccz1vnh0o6d 722w35xpa to only show the rrp (or "msrp) prices when browsing and adding items to an order this is especially useful if you need to "obscure" your b2b prices from view and you only want to show the full retail prices use cases could include in store customer visits where an order needs to be placed and the customer must only be able to see the retail (rrp) prices sales teams who are placing orders on behalf of customers (e g on the road) and only the retail (rrp) prices must be seen please note behind the scenes, the b2b prices associated with the logged in b2b customer will still be used to create the order this feature is solely for display purposes to enable this feature, you'll just need to update the sparklayer core script this will then apply to all b2b customers that log in updating the display you can update the default display by adding code to your core script docid\ qwxsym9x5 pviogutekcp learn more docid\ qwxsym9x5 pviogutekcp about how to update display settings on sparklayer / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / display { showrrptoggle true, / other settings should show below / } / end of code / if you'd prefer to make this display for specific customers, you can configure the code as shown below / add the below code into the sparklayer core script / / please refer to our help guide on how to do this / display { {% for tag in customer tags %} {% if tag == "b2b group 1" %} showrrptoggle true, {% elsif tag == "b2b group 2" %} showrrptoggle true, {% endif %} {% endfor %} / other settings should show below / } / end of code / tax inclusive price display tax inclusive price display lets you show your b2b prices with tax included, labelled clearly as "inc tax" so buyers know exactly what they're looking at it's designed for markets where buyers expect to see gross prices common in australia as well as in trade sectors selling to smaller businesses please note this changes presentation only your prices are still stored, uploaded, and transacted net, and the tax your buyer actually pays is still calculated by your store's checkout at the point of purchase using any rules or 3rd party integration as set up in the ecommerce platform tax inclusive price display is enabled for your store by the sparklayer team if you'd like it turned on, please get in touch with our support team key features show the price your buyers expect display gross prices to buyers who think in tax inclusive terms, without changing how you upload or transact your pricing control it per price list turn it on for the price lists that need it and leave the rest showing net, so you can serve different markets from one store set your own rate per product supply a display tax rate per sku, so reduced rate and zero rated products show correctly alongside standard rate ones clearly labelled key pricing areas will add an extra "inc tax" label, so there's no ambiguity about which basis a buyer is seeing how to enable there are three parts to the setup, and all three need to be in place before buyers see gross prices ask us to enable the feature tax inclusive display is controlled by a store level switch that only the sparklayer team can change contact support docid\ nnuw1g9z7eaj4m78vk7t9 to have it enabled on your account you'll be able to see it as enabled in your settings once it's on turn it on for a price list each price list has its own tax inclusive display setting turn it on for the price lists whose customers should see gross prices, and leave it off elsewhere price lists with the setting off continue to show net prices exactly as before add a display tax rate to your products add a display tax rate column to your price csv this is the percentage used to work out the gross price from your net price, given as a number between 0 and 100 column value required sku your product sku yes price your net price yes quantity quantity break no leave the column out and every price applies from quantity 1 display tax rate display tax percentage, 0 to 100 no an example with quantity breaks sku,quantity,price,unit of measure,display tax rate abc 123,1,10 00,each,20 abc 123,10,9 00,each,20 and the same product without them sku,price,display tax rate abc 123,10 00,20 please note i f you include the quantity column, every row needs a value in it an empty cell in a quantity column will fail the import to price from quantity 1, leave the column out altogether the rate applies to the whole sku on that price list, so it must be the same on every row for a given sku rows may leave the column blank, but conflicting rates for the same sku will cause the import to fail a product on a tax inclusive price list with no rate supplied, or a rate of 0, still shows the "inc tax" label at 0% this is deliberate, so a genuinely zero rated product isn't indistinguishable from one where the rate simply hasn't been uploaded yet how it works once enabled, gross prices and the "inc tax" label appear throughout the buying journey product pages and product cards the price shown on product detail pages and product cards is the gross price, with the label alongside key pricing info (the label is not repeated for every price in pricing tables for ux purposes) where a product has several prices, the "from" price follows whichever price wins cart each cart line shows its gross line total, and the cart subtotal and total show gross with the label the cart's shipping message also changes to make the basis clear, reading "prices include tax shipping costs calculated during checkout" instead of the standard net wording checkout the order total on the checkout review step shows gross with the label minimum and maximum order value rules are also assessed on the gross figure, so a buyer seeing gross prices is measured against the total they can actually see order history in the customer's account area, order line items and the order total display on the same basis, so a buyer looking back at a past order sees it presented the way they bought it notes and limitations this is the part worth reading closely before you enable it this feature is only suitable for stores with simple tax configurations where you can consistently provide a tax percentage rate for each sku in price lists that you want to show tax inclusive pricing your store's checkout is the authority on tax charged the display tax rate is the figure you upload, used for presentation the actual tax your buyer pays is calculated by your store's checkout if the two disagree, your buyer will see one figure in the cart and pay another it's critical to keep your uploaded rates aligned with your store's tax configuration tax exempt customers always see net prices if a customer is marked as tax exempt, sparklayer shows them net prices with no label, regardless of the price list setting this is intentional, since a gross price would be wrong for them mixed carts fall back to net totals if a cart contains a mixture of tax inclusive and tax exclusive products, the cart totals show net and drop the label individual lines still show on their own basis a single gross total spanning both would understate the tax on the exclusive lines, so we show net instead custom items and unpriced products affect cart totals custom line items added to a cart carry no display tax rate a cart containing a product with no price but a manually quoted price will show net totals quoted prices are always net when a sales agent edits a quoted unit price, that price is entered and stored net the editor is labelled "(excluding tax)" when surrounding prices are shown gross, so there's no confusion rrp prices are never tax adjusted rrp values display exactly as you upload them on a tax inclusive price list this means a gross b2b price sits next to a net rrp, and any savings percentage calculated from rrp compares the two different bases we recommend uploading rrp values on the same basis as your display prices if you show both display mode can vary within a product variants of the same product can resolve to different price lists, so one variant may be tax inclusive while another is not this is a configuration issue please ensure customers are only offered either tax inclusive or exclusive prices though careful price list and customer group configuration faq does this change the prices i upload or the amount my customer is charged? no prices are stored and transacted net exactly as before, and your checkout calculates tax as it always has only the figure displayed on your storefront changes can i use it for some customers and not others? yes the setting is per price list, so you can show gross prices to the customer groups on one price list and net prices to everyone else what happens if i don't upload a display tax rate? products on a tax inclusive price list with no rate show their net price, still labelled "inc tax", at an effective 0% we recommend uploading rates for every product on a tax inclusive price list so buyers see accurate gross figures why does my cart total show net when my product prices show gross? your cart most likely contains a mixture of tax inclusive and tax exclusive products, a custom item, or a product with a quoted price and no uploaded price in these cases the cart totals fall back to net rather than show a gross figure that would understate the tax due please ensure the price list and customer group setup is consistent so a customer would either see only tax inclusive price lists or tax exclusive ones, but not a mixture will my buyers see gross prices at card checkout? the sparklayer cart and checkout review show gross prices with the label once a buyer moves into your store platform's own checkout, that platform's tax display rules apply