FAQ

FAQ

Using formatters in designs #

Clerk.js allows you to write custom javascript functions, that adds new functionality to the Designs.

Formatters can be added in two ways:

  • Through my.clerk.io > Settings > Formatters, where each Formatter can be created as separate entries.
  • As a configuration for Clerk.js, in the tracking-script that is inserted on all pages, where multiple formatters can be added at once.

An example can be seen below. Please be aware this is Clerk V2 (latest version):

<!-- Start of Clerk.io E-commerce Personalisation tool - www.clerk.io -->
  <script type="text/javascript">
    (function(w,d){
      var e=d.createElement('script');e.type='text/javascript';e.async=true;
      e.src=(d.location.protocol=='https:'?'https':'http')+'://cdn.clerk.io/clerk.js';
      var s=d.getElementsByTagName('script')[0];s.parentNode.insertBefore(e,s);
      w.__clerk_q=w.__clerk_q||[];w.Clerk=w.Clerk||function(){w.__clerk_q.push(arguments)};
    })(window,document);

    Clerk('config', {
      key: 'O7UITkJIXqXibeQF9ONobiGGKYYKtbvh',
      formatters: {
             log_price: function(price) {
             console.log(price);
          }
      });
    });
  </script>

    <!-- End of Clerk.io E-commerce Personalisation tool - www.clerk.io -->

You can write any number of formatters, separated by comma, like this:

formatters: {
   log_price: function(price) {
      console.log(price);
   },
   calculate_discount: function(price,special_price) {
      return price-special_price;
   },
   substring: function(text) {
      var short_string = text.substring(0,20);
      return short_string;
   }
}

After creating your formatters, you can uses them in Designs using this syntax:

This allows you to create any functionality in your Designs that you’d like to use with Clerk.io in your webshop.

Common errors #

Uncaught ReferenceError: Clerk is not defined #

If you see this error message, it means Clerk is not being defined in the website.

The most common cause for this is the Clerk.io tracking Scripts not being implemented in the appropriate places.

Click here to view the implementation process for inserting both the Order Tracking and Visitor Tracking scripts.

API COOLDOWN Starting again in… #

This message in the data sync logs is coming from the Lightspeed rate limit. Lightspeed has set a low rate limit by default to manage the volume of data transmitted from their services. Please note that this rate limit is not within Clerk’s control. To address this, you have two options:

  1. Consider upgrading the rate limit service with Lightspeed.
  2. Alternatively, you may choose to wait for the synchronization process to complete.

429 Error - Too Many Request #

This error means that Lightspeed made too many requests in a given amount of time and exceeded it’s rate limit. To address this we suggest to adjust the page size under your data sync settings in the my.clerk.io backend.