Multi-Currency Purchase Orders
User Guide: Multi-Currency Purchase Orders
This guide explains how to create and manage purchase orders in your supplier's currency, with automatic exchange rate conversion and accurate store-currency landed cost.
1. Overview
If you source products from international suppliers, you can create purchase orders in the supplier's currency (e.g., GBP, EUR, JPY). Assisty automatically:
- Fetches the current exchange rate
- Displays all PO amounts in the supplier's currency
- Calculates landed cost in your store's currency
- Syncs the correct store-currency cost to Shopify on receive
This means your supplier sees prices in their currency, while your Shopify reports stay accurate in your store's currency.
2. Setting Up Supplier Currency
Assign a Currency to a Supplier
- In the sidebar, go to Create Purchase Orders > Supplier Management.
- Open the supplier's detail page.
- Find the Currency dropdown field.
- Select the supplier's currency (e.g., GBP for British Pound, EUR for Euro).
- Click Save.
All future purchase orders for this supplier will automatically use their configured currency. You only need to set this once per supplier.
Supported Currencies
Assisty supports 160+ currencies including:
Category | Examples |
|---|---|
Major currencies | USD, EUR, GBP, CAD, AUD, JPY, CNY |
Zero-decimal currencies | JPY (Yen), KRW (Won), VND (Dong) |
Three-decimal currencies | KWD (Kuwaiti Dinar), BHD (Bahraini Dinar), OMR (Omani Rial) |
Same-Currency Suppliers
If a supplier uses the same currency as your store (e.g., both USD), no conversion is needed. The PO behaves exactly as before — no exchange rate section is shown.
3. Creating a Foreign-Currency PO
From the Create PO Page
- Go to Create Purchase Orders > Supplier Management, open a supplier, then click Create PO.
- The page automatically detects the supplier's currency and shows:
- A currency indicator (e.g., "Currency: GBP > USD")
- The exchange rate (e.g., "1 GBP = 1.34 USD")
- Unit costs are pre-filled using this priority:
- Supplier cost price — from the supplier product record (already in supplier currency)
- Converted Shopify cost — Shopify's "Cost per item" divided by the exchange rate (marked as "estimated")
- Shopify cost as-is — fallback when no exchange rate is available
- Add products, set quantities, and submit as usual.
From the Buying Calendar or Buying Table
- Go to Plan Demand > Buying Calendar (or the Buying Table). Select products and click Create Purchase Order.
- In the supplier modal, foreign-currency suppliers show a currency chip (e.g., "GBP") next to their name.
- Unit Cost and Total columns display amounts in the supplier's currency.
- The PO is created with the supplier's
currencyCodeautomatically.
From Automated PO Generation
Auto-generated POs automatically:
- Resolve the supplier's currency
- Fetch the exchange rate
- Set the
currencyCodeon the PO - Calculate landed cost and base-currency fields
No manual action required — the automation handles multi-currency the same way as manual PO creation.
4. Exchange Rates
How Rates Are Fetched
- Rates come from Open Exchange Rates (openexchangerates.org).
- Rates are cached for 24 hours to minimize API calls.
- The rate source and fetch timestamp are stored on each PO for audit purposes.
Exchange Rate Display
On a foreign-currency PO, you'll see:
1 GBP = 1.339867 USD
Source: openexchangerates | Fetched: Mar 25, 2026 4:52 AM
Managing Exchange Rates
Action | How | When to Use |
|---|---|---|
Auto-refresh | Rates refresh automatically every 24h | Default behavior |
Manual Override | Click the exchange rate field and enter a custom value | When you have an agreed rate with the supplier |
Lock Rate | Toggle the lock icon next to the rate | When you don't want the rate to change on future edits |
Force Refresh | Click the refresh icon next to the rate | When you need the latest rate right now |
When No Rate Is Available
If the exchange rate API is unavailable, the PO is still created with exchange_rate: null. You can:
- Enter the rate manually
- The PO will show amounts in the supplier's currency without a store-currency equivalent until a rate is set
5. Currency Display Across the App
PO Detail Page
Field | Currency |
|---|---|
Unit Price | Supplier currency (e.g., £13.00) |
Total Price (per item) | Supplier currency |
Subtotal | Supplier currency |
Shipping Cost | Supplier currency |
Discount | Supplier currency |
Tax | Supplier currency |
Grand Total | Supplier currency |
Grand Total (Store) | Store currency (converted) |
Landed Cost | Store currency (always) |
Shipping / Unit | Store currency |
Adjustment / Unit | Store currency |
PO List (Create Purchase Orders > Check Existing Orders)
- The Total column shows amounts in the PO's currency with the correct symbol (e.g., £500.00).
Review Automated Orders (Create Purchase Orders > Review Automated Orders)
- Each PO's total is displayed in its own currency.
- The detail modal shows all line items in the PO's currency.
Automation Dashboard (Automate My Work > Automated Purchase Orders > Automation Dashboard)
- Per-PO values: Displayed in the PO's currency.
- Per-supplier subtotals: Displayed in the supplier's currency.
- Aggregate totals (across multiple suppliers/currencies): Displayed in store currency.
Buying Calendar (Plan Demand > Buying Calendar) & Buying Table
- Supplier cards show amounts in the supplier's currency.
- A currency chip (e.g., "GBP") appears next to foreign-currency supplier names.
6. Landed Cost and Store Currency
Why Landed Cost Matters
Landed cost is the true cost of each product including shipping and adjustments. For foreign-currency POs, landed cost is always calculated and stored in your store's currency. This ensures:
- Shopify "Cost per item" is updated correctly on receive
- Profit margin calculations are accurate
- Reports and analytics use consistent store-currency values
How Landed Cost Is Calculated
Per-Value Allocation (default):
Landed Cost = Unit Price x Discount Factor x Landed Cost Ratio
Per-Unit Allocation:
Landed Cost = (Unit Price x Discount Factor) + Shipping/Unit + Adjustment/Unit
For foreign-currency POs, all values are first converted to store currency using the exchange rate before the landed cost calculation runs.
Changing the Calculation Method
- Go to Adjust Settings > Purchase Orders, then select the Landed Cost tab.
- Choose Per-Value Allocation or Per-Unit Allocation.
- The selected method applies to all new and updated POs.
7. Receiving Items on Foreign-Currency POs
When you receive items on a foreign-currency PO:
- Enter quantities normally — currency doesn't affect the receiving process.
- Shopify sync uses store-currency landed cost — the "Cost per item" in Shopify is updated with the landed cost (in store currency), not the supplier price.
- Weighted average cost is calculated as:
New Avg Cost = ((Current Qty x Current Cost) + (Received Qty x Landed Cost)) / Total Qty
This means your Shopify inventory valuation and profit reports are always in your store's currency, regardless of which currency the supplier was paid in.
8. Exports and Documents
PDF Export
- All amounts shown in the supplier's currency
- Exchange rate and store-currency grand total in the footer
- Currency symbol matches the PO's currency
CSV Export
- Numeric values use the correct decimal precision for the currency
- JPY: whole numbers (no decimals)
- KWD: 3 decimal places
- Most currencies: 2 decimal places
XLSX Export
- Same precision as CSV
- Currency-formatted cells
Email to Supplier
- The PO email attachment shows amounts in the supplier's currency
- The supplier sees their own currency — no confusion about conversion
9. Zero-Decimal and Three-Decimal Currencies
Zero-Decimal Currencies (JPY, KRW, VND, etc.)
- Amounts display without decimal places: ¥1,500 not ¥1,500.00
- Input fields use step size of 1 (not 0.01)
- All rounding throughout the app respects 0 decimal places
Three-Decimal Currencies (KWD, BHD, OMR, TND)
- Amounts display with 3 decimal places: KWD 7.669
- Input fields use step size of 0.001
- Rounding uses 3 decimal places throughout
Standard Currencies (USD, EUR, GBP, etc.)
- Standard 2 decimal places: $12.50, €11.52
10. Tips and Best Practices
- Set supplier currency once: Configure it on the supplier profile. All future POs inherit it automatically — you never need to set it per-PO.
- Lock exchange rates for agreed terms: If you have a fixed rate with a supplier (e.g., a quarterly contract rate), lock the rate on the PO to prevent auto-refresh from changing it.
- Landed cost is always in store currency: Don't worry about currency when checking landed cost or Shopify sync — it's always converted to your store's currency automatically.
- Review "(estimated)" costs: When creating a PO, if a product shows "(estimated)" under the unit cost, it means the cost was converted from Shopify's store-currency cost. Consider entering the actual supplier cost for accuracy.
- Check the exchange rate before confirming: Exchange rates fluctuate. Review the rate on the PO before confirming, especially for large orders.
- Same-currency suppliers need no setup: If your supplier uses the same currency as your store, no currency configuration is needed. Everything works as before.
11. Frequently Asked Questions
Q: What happens if I change a supplier's currency after creating POs?
A: Existing POs keep their original currency. Only new POs will use the updated currency.
Q: Can I have different currencies on different POs for the same supplier?
A: The currency is set per-PO based on the supplier's configuration at creation time. If you change the supplier's currency between POs, each PO keeps its own currency.
Q: What if the exchange rate API is down?
A: The PO is still created with the supplier's currency, but the exchange rate is left blank. You can enter it manually. Landed cost and store-currency conversions will be calculated once a rate is available.
Q: Does the exchange rate update automatically on existing POs?
A: No. The exchange rate is captured at PO creation time and stays fixed unless you manually update or refresh it. This prevents unexpected changes to committed orders.
Q: How do I see the store-currency equivalent of a foreign PO?
A: Look for the "Grand Total (Store)" field in the PO summary section, or enable the "Landed Cost" column in the items table.
For general PO management (statuses, receiving, returns, etc.), see: Understanding and Managing Purchase Order Details.
Updated on: 26/03/2026
Thank you!