website logo
Product FeedCommunity Forum
API Docs
Template JS
Headless SDK
Navigate through spaces
⌘K
Introduction
Getting Started
Quickstart : Smart Search
Quickstart : Smart Category Merchandising
Quickstart : Smart Recommendations
Quickstart : Moi
Apps/Plug-ins
Guide
Structure
Configuration
JS Library
Versioning
Template Reference
Build UI
Custom Templates
Modify Request
Modify Response
Modify Recommendations
Styling CSS
Analytics/Tracking
How To
Add Filters To URL
Add Pagination To URL
Add-To-Cart Function
Customer Groups
Facet Option Order
Facet Show/Hide
Infinite Scroll Results
Items Per Page
Magento B2B MSI
Multi-Currency
Ratings / Reviews
Recs Fallback Query
SortBy Options
Voice Search
Docs powered by
Archbee
How To

Multi-Currency

11min



To accommodate additional currency pricing, we will introduce an additional parameter to every API request.

  • priceFieldSuffix

See: Modify Request Overview for details on preparing for Klevu JS overriding

See : Klevu API Documentation for Customer Groups

Indexing

The additional currency pricing data must be supplied at the product level during catalog indexing.



XML FEED examples

Below is a FEED XML example for product additional currencies

XML
|
<item>
. . .
        <price>123.45 GBP</price>
        <sale_price>100 GBP</sale_price>
        
        <additional_currencies>
            <additional_currency>
                <price>151.84 USD</price>
                <sale_price>123.00 USD</sale_price>
            </additional_currency>
            
            <additional_currency>
                <price>15240 JPY</price>
                <sale_price>12345 JPY</sale_price>
            </additional_currency>
        </additional_currencies>
        
. . .




Below is a FEED XML example for specific group additional currencies

XML
|
 <item>
 . . .
 
    <groups>
        <group>
            <id>vip_customer_group</id>
            
            <price>49.99 GBP</price>
            <sale_price>49.99 GBP</sale_price>

            <additional_currencies>
                <additional_currency>
                    <sale_price>61.74 USD</sale_price>
                </additional_currency>
                <additional_currency>
                    <sale_price>6171 JPY</sale_price>
                </additional_currency>
            </additional_currencies>
            
        </group>
      </groups>
. . .






Template JS Override

The desired currency/prices are applied to all queries via overrides using the "all" scope value.

See: Modify Request Overview for details on preparing for Klevu JS overriding

Example 1

Apply the selected currency for all products

JavaScript
|
<script type="text/javascript">

// the currency to be applied
    var klevu_currency = 'GBP';


    klevu.modifyRequest("all",
        "productList.settings.priceFieldSuffix", 
        klevu_currency
    );
    
 
</script>


API Parameter

Description

Format

priceFieldSuffix

Fetch prices in a specific currency

{CURRENCY}

Example 2

Apply the selected currency for a specific customer group

JavaScript
|
<script type="text/javascript">

// the currency and group of the currently logged in customer
  var klevu_currency = 'GBP';
  var klevu_loginCustomerGroup = 'vip_customer_group';

  /* IMPORTANT FOR BIGCOMMERCE APP USERS ONLY 
   * The login groupid will need an ajustment for the delimeter
   * 
   * klevu_loginCustomerGroup = klevu_loginCustomerGroup.replace("_", "--");
   * 
   */
   
   klevu.modifyRequest("all",
        "productList.settings.priceFieldSuffix", 
        klevu_currency + '-' + klevu_loginCustomerGroup
   );
 
</script>


API Parameter

Description

Format

priceFieldSuffix

Fetch prices/currency specific to a customer group

{CURRENCY}-{GROUPID}

See : Klevu API Documentation for Customer Groups



Example 3

For Klevu Smart Recommendations use the Recommendations klevu_processRECSRecordQueries function for the outgoing query modifications

JavaScript
|
<script type = "text/javascript" >
function klevu_processRECSRecordQueries(recordQueries, recsKey)
{
    var recsQuery = recordQueries[0];
    
    // Apply the selected currency for all products 
    klevu.setObjectPath(recsQuery, "settings.priceFieldSuffix", klevu_currency);
    
    /* OPTION 2:
    // Apply the selected currency for a specific customer group 
    klevu.setObjectPath(recsQuery, "settings.priceFieldSuffix", klevu_currency + '-' + klevu_loginCustomerGroup);
    */

}
</script>


See : Modify Recommendations Overview for more details

Updated 11 Jul 2023
Did this page help you?
PREVIOUS
Magento B2B MSI
NEXT
Ratings / Reviews
Docs powered by
Archbee
TABLE OF CONTENTS
Indexing
XML FEED examples
Template JS Override
Example 1
Example 2
Example 3
Docs powered by
Archbee