Shopify multi-currency

Previously, Shopify only allowed orders and payments in the store base currency. Customers shopping abroad could view prices in their local currency, but when they checked out they would be asked to pay in the merchant base currency.
Shopify Plus users can now allow customers to check out in their local currency. Brightpearl will get foreign currency orders, payment authorizations and payment captures, returns and refunds from Shopify and create them in Brightpearl in the foreign currency.

First, you will need to add and enable foreign currencies in your Shopify Plus account. Learn more about how to sell in multiple currencies on Shopify here.

Screen_Shot_2019-05-22_at_9.50.40_PM.png

Next, you will need to make sure that these currencies exist in your Brightpearl account. Go to Settings > Company > Currencies and add new currencies and set up exchange rates. Learn more about exchange rates here.

Screen_Shot_2019-05-22_at_10.06.28_PM.png

When a foreign currency order downloads to Brightpearl it will have a fixed exchange rate on it which means the payment will also use the order exchange rate.

If a foreign order downloads to Brightpearl and the foreign currency doesn’t exist, you will see an e-commerce alert indicating that the order can not be downloaded and prompting you to create the currency in your account.  After you created the currency in Brightpearl the order should download during nightly reconciliation or you can try to trigger manual order download in Shopify by going to Orders > Actions > Impost single order.

Orders and payments

Possible scenarios:

Brightpearl and Shopify have the same base currency

    • The order/payment currency will be base in both Brightpearl and Shopify
    • The order/payment currency will be foreign to both Brightpearl and Shopify

Brightpearl and Shopify have different base currencies

    • The order/payment currency will be the Shopify base currency
    • The order/payment currency will be the Brightpearl base currency
    • The order/payment currency will be foreign to both Brightpearl and Shopify

Expected order and payment currency and exchange rate usage in Brightpearl depending on the Brightpearl and Shopify base currency configuration:

Screen_Shot_2019-05-22_at_10.11.13_PM.png

The order exchange rate should remain fixed and therefore payments will use the Brightpearl order exchange rate.

When the order rate is not fixed the payment should use the actual payment exchange rate. This may only happen when you accidentally uncheck the “fixed” box on the order. Brightpearl will calculate the exchange rate in this case. It is important to keep the exchange rate “fixed”.

Returns and refunds

The difference between orders and returns is that the sales credit created in Brightpearl uses the exchange rate and fixed setting as seen on the original sales order in Brightpearl. The refund rates will follow the same rules as payments on orders - taking the sales credit rate when fixed, the Shopify rate when not fixed, or the Brightpearl currency rate when no Shopify rate is available.

Screen_Shot_2019-05-22_at_10.16.35_PM.png

Payments

  • When the order exchange rate is fixed, the order-payment will be created in Brightpearl using the original order exchange rate
  • When the order exchange rate is not fixed, the order-payment will be created using the payment exchange rate from Shopify.  
  • When the order exchange rate is not fixed, but there is no rate is available from Shopify, Brightpearl will use the Brightpearl exchange rate as at the payment date.
  • Where the order-payment currency equals the Brightpearl base currency no exchange rate is needed.

Payment in full

Full payment will automatically be recognized by Brightpearl where the foreign currency order-payment equals the foreign currency order total in Brightpearl.

Example  - base currency payment in full

  • Brightpearl base currency = GBP
  • Shopify shop currency = GBP
  • Shopify order currency = GBP
  • Shopify payment transaction amount = 120
  • Shopify payment transaction currency = GBP

Order-payment created in Brightpearl

  • Brightpearl order-payment = 120 GBP
  • Brightpearl order-payment exchange rate = n/a

When the Brightpearl order-payment creates the SR journal it will post 120 GBP as the transaction currency and 120 GBP as the base currency calculated using the exchange rate of 1.0.

Example  - foreign currency payment in full - Brightpearl order rate used

  • Brightpearl base currency = GBP
  • Shopify shop currency = GBP
  • Shopify order currency = EUR
  • Brightpearl order exchange rate fixed = yes
  • Shopify payment transaction amount = 120
  • Shopify payment transaction currency = EUR
  • Shopify payment transaction currency_exchange_adjustment final_amount = 144
  • Shopify payment transaction currency_exchange_adjustment currency = GBP
  • Brightpearl order exchange rate as of order placed dated
  • Brightpearl order-payment = 120 EUR
  • Brightpearl order exchange rate = 1.3

When the Brightpearl order-payment creates the SR journal it will post 120 EUR as the transaction currency and 156 GBP as the base currency calculated using the exchange rate of 1.3.

Example  - foreign currency payment in full - Shopify exchange rate used

  • Brightpearl base currency = GBP
  • Shopify shop currency = GBP
  • Shopify order currency = EUR
  • Brightpearl order exchange rate fixed = no
  • Shopify payment transaction amount = 120
  • Shopify payment transaction currency = EUR
  • Shopify payment transaction currency_exchange_adjustment final_amount = 132
  • Shopify payment transaction currency_exchange_adjustment currency = GBP

Order-payment created in Brightpearl

  • Brightpearl order-payment = 120 EUR
  • Brightpearl order-payment exchange rate = 132/120 = 1.1

When the Brightpearl order-payment creates the SR journal it will post 120 EUR as the transaction currency and 132 GBP as the base currency calculated using the exchange rate of 1.1.

In addition, since a foreign currency payment was downloaded for the full order value (120 EUR) - the order is paid in full. When this happens and the foreign currency values do not match, Brightpearl will create an exchange rate variance accounting entry to make an adjustment to gains and losses. Where the exchange rates are the same on the order and payment, no exchange rate variance is noted.

Currency and 156 GBP as the base currency calculated using the exchange rate of 1.3.

Example  - foreign currency payment in full - Brightpearl rate as at payment date used

  • Brightpearl base currency = GBP
  • Shopify shop currency = EUR
  • Shopify order currency = EUR
  • Shopify payment transaction amount = 120
  • Shopify payment transaction currency = EUR
  • Shopify payment transaction currency_exchange_adjustment final_amount = 120
  • Shopify payment transaction currency_exchange_adjustment currency = EUR

Order-payment created in Brightpearl

  • Brightpearl order-payment = 120 EUR
  • Brightpearl order-payment exchange rate = GET Brightpearl rate as of payment date

Part payments/multiple payments - same/different exchange rate as order

Part payment will automatically be recognized by Brightpearl where the foreign currency order-payment does not equal the foreign currency order total in Brightpearl. Where multiple payments are made for a single order in Shopify, each will be created in Brightpearl. Once Brightpearl recognizes the order as fully paid it will calculate any gains/losses due to exchange rates.

Example - foreign currency part/multiple payments with the same exchange rates as order

Where original order is for 120 EUR (144 GBP).

Deposit payment:

  • Shopify payment transaction amount = 50
  • Shopify payment transaction currency = EUR
  • Shopify payment transaction currency_exchange_adjustment final_amount = 60
  • Shopify payment transaction currency_exchange_adjustment currency = GBP

Order-payment created in Brightpearl

  • Brightpearl order-payment = 50 EUR
  • Brightpearl order-payment exchange rate = 60/50 = 1.2

When the Brightpearl order-payment creates the SR journal it will post 50 EUR as the transaction currency and 60 GBP as the base currency calculated using the exchange rate of 1.2.

Since the order total is 120 EUR and the payment is 50 EUR we know the order is only part paid.

Second deposit payment:

  • Shopify payment transaction amount = 50
  • Shopify payment transaction currency = EUR
  • Shopify payment transaction currency_exchange_adjustment final_amount = 55
  • Shopify payment transaction currency_exchange_adjustment currency = GBP

Order-payment created in Brightpearl

  • Brightpearl order-payment = 50 EUR
  • Brightpearl order-payment exchange rate = 55/50 = 1.1

When the Brightpearl order-payment creates the SR journal it will post 50 EUR as the transaction currency and 55 GBP as the base currency calculated using the exchange rate of 1.1.

Since the order total is 120 EUR and the additional payment of 50 EUR take the total payment up to 100 EUR we still know the order is only part paid.

Final payment:

  • Shopify payment transaction amount = 20
  • Shopify payment transaction currency = EUR
  • Shopify payment transaction currency_exchange_adjustment final_amount = 26
  • Shopify payment transaction currency_exchange_adjustment currency = GBP

Order-payment created in Brightpearl

  • Brightpearl order-payment = 20 EUR
  • Brightpearl order-payment exchange rate = 26/20 = 1.3

When the Brightpearl order-payment creates the SR journal it will post 20 EUR as the transaction currency and 26 GBP as the base currency calculated using the exchange rate of 1.3.

Since the order total is 120 EUR and the additional payment of 20 EUR now takes the total payment up to 120 EUR we know the order is now fully paid. Only once fully paid will Brightpearl look at making adjustments for exchange rate gains and losses.

Have more questions? Submit a request