DocumentationAPI Reference
Documentation

Reach Shopify Integration: FAQ

1. How do I auto-round my website prices?

First, ensure that your currency settings is updated as recommended here https://docs.withreach.com/docs/setup#section-currency-settings

Then, with the attribute data-auto_round_prices="true" added to your "reach-script", you should be able to have all prices within your website rounded.

Note: cart pages require special attributes, check here for cart integrations https://docs.withreach.com/docs/vanity-pricing-1#section-cartliquid

<!-- Reach Localize Script -->
<script
   id="gointerpay_localize"
   src="https://assets.rch.io/{Merchant Id}/localize.js"
   data-merchant_id="{Merchant Id}"
   data-auto_round_prices="true">
</script>

For prices you do not want rounded after using the attribute above, you can add the data-variant-id="noround" within the tag of the price you don't want to round.

2. How do I hide Afterpay/Klarna for regions that don't support it?

Using the Reach localize Javascript helper methods available https://docs.withreach.com/docs/setup#section-javascript-helper-methods, you can hide text based on the currency information returned from Reach localize data.

To hide e.g. Afterpay with a id "afterpay-paragraph" for non-local customers, add the following script at the end of your theme.liquid or any page that needs to have the script hidden.

<script>
      GIP.getLocalizeData().then(function (data) {
        if (data) {	
           var afterpay = $('.afterpay-paragraph');
           afterpay.remove();
        }
      });
</script>

To hide e.g. Klarna with a id "klarna-placement" for non-USD customers, add the following script at the end of your theme.liquid or the any pages that needs to have the script hidden.

<script> 
  GIP.getLocalizeData().then(function (data) { 
    if (data && data.Currency && data.Currency !== "USD") { 
      $('klarna-placement').remove();
    }
  }); 
</script>

3. How do I hide express checkout?

To hide the express checkout, we will have to use the Reach GIP localize Data helper. Add the code below to the end of your checkout.liquid.

Note: USD below represent the store currency where you want it to appear.

<script>
      GIP.getLocalizeData().then(function (data) {
        if (data && data.Currency && data.Currency !== "USD") {
          document.getElementsByClassName('dynamic-checkout')[0].style.display = 'none';
          document.getElementsByClassName('alternative-payment-separator')[0].style.display = 'none';
        }
      });
    </script>

4. My Compare at price is showing 0, how do I hide it?

The display of 0 price for unavailable compareAt can be fixed by hiding the compareAt element when the value is unavailable (in .liquid). This can be done by using a conditional if statement within your code check if compare at price is greater than price:

{% if current_variant.compare_at_price > product.price %}
  <s data-product-id="{{ product.id }}"
     data-variant-id="{{ product.selected_or_first_available_variant.id }}:compare">{{ current_variant.compare_at_price | money }}</s>
{% endif %}

NOTE: The current_variant.compare_at_price and product.price variables used above might be different within your own codes. use the one that matches your theme codes.

5. My Confirmation Emails are not localized, how do I fix this?

While we cannot localize the prices inside the emails at the moment, we do suggest a workaround and that includes

  1. Removing/Hiding all price related variables in the Order Confirmation Email Settings in your Shopify store.

Settings -> Notifications -> Order Confirmation.

Variables such as the ones below need to be removed or hidden (Basically anything with | money)
{{ line.original_line_price | money }}
{{ discounts_savings | money }}
{{ subtotal_price | money }}
{{ shipping_price | money }}
{{ line.price | money }}
{{ total_tip | money }}
{{ total_price | money_with_currency }}
{{ transaction.amount | money }}

The idea is to make the emails appear without pricing (Since it will show Shopify local prices) and allow the "View Your Order" Button/Link to take customers to the order page that is localized

6. How do I pass currency to Reach Localize

You can indeed tell Reach Localize which currency you want it to localize and display irrespective of the user/customers geo ip. To do this, you can use the _rchcur get variable on any page that has the Reach L.js script.

GET variable: _rchcur= e.g _rchcur=GBP

NOTE: This is equivalent to forcing the Reach Localize to use a particular currency overriding the customer geo location

7. Must I have the Reach badge and banner on my store?

Find out about the Reach Badge and Banner processor declaration an disclosure here https://docs.withreach.com/docs/processor-disclosure-and-location-declaration-badge-for-shopify

8. How do I whitelist a payment gateway?

Reach gives you a lot of options when it comes to payments but also allows you to use your store-specific payment gateways. To whitelist a payment gateway with Reach, simply find the gateway code for you gateway here if supported https://docs.withreach.com/docs/reach-multi-currency-code-installation#section-gateway-codes.

  1. If Reach processes payments for your store currency, and for example the gateway code for your payment gateway on Reach is "cash" (Cash on Delivery), update your Reach scripts with
data-whitelisted_store_currency_gateways="cash"
  1. If Reach does not process payments for your store currency, and for example the gateway code for your payment gateway to be whitelisted on Reach is "cash" (Cash on Delivery), then update your Reach scripts with
data-whitelisted_gateways="cash"

For more information on Reach scripts tag options visit https://docs.withreach.com/docs/reach-multi-currency-code-installation#section-script-tag-options