Skip to main content

Documentation Portal

Global-e Orders in Shopify

Whenever a checkout is triggered and a shopper clicks the ‘pay’ button, Global-e creates a matching cart on the Global-e side. Global-e processes the payment.

Once the payment is authorised, an order is created automatically in Shopify.

Global‑e creates an order in parallel on the Global‑e side using Shopify’s API.

Downstream Data Flow from Shopify

At Checkout, Global-e begins calculating the international prices, duties & taxes, and shipping methods.

Orders are created by Shopify and per Shopify’s multi-currency concepts, in two currencies:

  • Presentment money: what international customers see on the storefront, cart, checkout, and transactional emails.

  • Shop money: The main currency of your Shopify store and the currency used for reporting and analytics.

    Note

    Shop money is what should be mapped downstream by your order management and accounting systems.

Downstream_Data_Flow_from_Shopify.png

Fraud check

Global-e performs a fraud check for international orders.

  1. Initial order creation has the payment status PENDING (financial_status property).

    Important: Merchants should not submit any orders for fulfilment at this time and wait on Global-e to complete the fraud check.

  2. When the fraud check is completed, the payment status is updated to PAID. Orders may now be submitted for fulfilment.

WMS and operations

For Global-e to generate international shipping labels & customs documents, the warehouse pick-pack process must reference Shopify’s order name and SKU.

Alternatively, the Shopify order number and/or Shopify EAN/barcode/variant ID may be used instead.

Reach out to Global-e as additional configuration may be needed in those cases.

 When a shopper places the order on the checkout page:

  • Shopify creates an order.

    Shopify Order Status: Paid

  • Global‑e creates a matching order on the Global‑e Merchant Portal.

    Tag: Globale::Pending

  • Global‑e verifies the payment and customer fraud status.

    Order Status: Paid

    Tag: Globale:: Approved

    This tag indicates that you can fulfil the Global-e order.

If for any reason, the order or the payment is not authorised, Global‑e can cancel the order, in which case, the Shopify status shows: Cancelled.

End-to-End Order Flow Interfaces

A general illustration of an order flow with Shopify to OMS to WMS and Global-e in the picture.

end_to_end_order_flow_interfaces.png

Outbound

  • Order creation: created in Shopify with initial payment status 'PENDING’ and order tag ‘Globale::Pending’.

  • Fraud check: upon successful fraud check (asynchronous process), the payment status goes to ‘PAID’ and the order tag is replaced with ‘Globale::Approved’.

  • Export to OMS/WMS qualified orders: with ‘PAID’ status or tagged with Globale::Approved.

  • Pick and pack: used by the warehouse to identify orders via the Shopify order name/number and sku/upc.

  • Label generation: Global-e interface provides a final mile carrier label and a tracking number.

  • End-of-day manifest: signals to Global-e that the order is ready to be dispatched and generates an end-of-day document.

  • Fulfilment update to Shopify: in most scenarios, this event or the tracking number itself is provided by Globale. It is also expected for Shopify to send the shipment confirmation email when its fulfilment is created.

Global‑e Order Information

To view the Global-e order information:

  1. In the Shopify Admin, go to Orders.

    The Orders screen opens, showing the list of orders (Global-e and non-Global-e Orders).

  2. Click a Global‑e Order.

    The Global‑e order details screen opens.

    Global-e Order Details in Shopify

    The Global‑e details screen provides the following information:

    • The Global‑e Order ID (under Additional Details). The Global‑e Order ID starts with GE and ends with the merchant's country code. In this example, the Global‑e Order ID is GE175560204GB.

    • The price that the shopper paid in local (customer) currency. In this example, the price is €205.00

    • The duties and taxes in merchant and shopper currencies

    • Customer Information

    • When fulfilling the order, this screen shows both tracking Information and a tracking link. In addition, the order shipment information shows the tracking number.

    • Global‑e order tag: Globale::Approved.

    • Order Status. See Global-e Orders in Shopify for more information on statuses.

Shopify Order Data Examples

This Shopify store belongs to a US merchant and the storefront currency is in USD.

Below are two different order scenarios in which a single product is purchased:

  • Duties & taxes are paid by the customer – the checkout explicitly displays D&T-related line items.

  • Duties & taxes are inclusive/baked into product prices – the merchant subsidizes the D&T costs.

Scenario 1: Duties & taxes paid by the customer

Market: Israel.

The customer pays separately for all the D&T-related costs including the customs clearance fee (CCF) represented here in the “Additional Fee” field.

additional_fee_field.png

Note

The Additional Details section is for information and is not required for data consumption. CalculatedDutySubsidy represents the total order level subsidy in storefront currency. In this example, there is no subsidy for this order, hence the $0.

paid_example.png

Important

The Additional Fee set is a new Shopify data line available in Shopify’s API release version 2023-04. See https://shopify.dev/docs/api/admin-rest/2023-04/resources/order for reference.

Scenario 2: Duties & taxes are included in the product price

Market: United Kingdom.

Duties, taxes, and customs clearance fees are all-inclusive in the £500.00 product price in this example.

duties_and_taxes_for_uk__market.png

CalculatedDutySubsidy 139.72 USD includes duties, VAT, and CCF.

Note: the D&T line items do not appear in the order details at all.

paid_uk_market.png

Conclusion

  • Duty, tax, and customs clearance fees (CCF) are all part of the overall duties and taxes calculation.

  • When a customer’s checkout displays duty & tax-related fees, these costs appear as order line items.

  • Any subsidized costs, whether both duties and taxes or just duty or just taxes – appear in the note attributes CalculatedDutySubsidy field.

Shopify Order JSON example

A full example of an order JSON file can be downloaded here:Shopify Order JSON example.

Accounting Perspective

From a Shopify view, orders are created per customer as a B2C transaction with Global-e. From an accounting perspective, orders should be treated as domestic B2B orders booked against a Global-e account.

You may book any order line items to calculate gross revenue while bearing in mind that in most scenarios Global-e is responsible for handling remittance and filing local VAT and other taxes.

For estimated net revenue, you can subtract the CalculatedDutySubsidy field. For actual revenue, refer to the Global-e financial reconciliation report.

Global‑e to Shopify Order Updates

Global‑e updates Shopify when a customer places a new order, or when an order is fulfilled, cancelled, or refunded.

Refund

Orders are refunded directly through the Shopify Admin portal.

Important information for Merchants who charge customers for prepaid return labels on the Global-e Returns portal.

When a customer uses a prepaid shipping label, Global-e deducts the cost of shipping from their refund, resulting in a lower refund amount than indicated in the notification email. Since Shopify does not support paid returns, this can cause discrepancies in Shopify's recorded refund data and the notifications sent to customers.

For example, if a customer returns a product that costs $95.30, with a $10 prepaid label generated on the Global‑e Returns portal, the notification email from Shopify indicates a refund amount of $95.30, when in reality the customer only receives $85.30.

We recommend the following solutions:

  • Continue to provide customers with prepaid labels but modify the refund notification email to not include the refund amount.

  • Provide customers with prepaid labels and refund them through the Global-e Merchant Platform. (For more information: Issuing a Refund)

  • Provide customers with free returns instead of prepaid shipping labels.

To refund an order:

  1. Go to the Shopify Admin screen.

    shopify_admin_screen.png
  2. In the left navigation bar, click Orders.

    The list of orders is displayed.

    list_of_orders.png
  3. Select the order for which you want to perform a refund.

    The order page opens.

    order_page_for_refunds.png
  4. At the top-right of the page click Refund.

    The Refund page opens.

    refund_page.png
  5. Enter the number of items that you want to refund.

    If you don't want the item to be restocked, unselect the Restock Item option.

    quantity_refunded.png

    The Summary section displays the refund amount.

    refund_summary.png

    At the bottom of the page, you may include a reason for the refund.

  6. Click Refund $(amount) to finalize the refund.

    The order is refunded and a refund notification email is sent to the customer.

Cancel an Order

Orders are canceled directly through the Shopify Admin.

Important

  • An order that has been fulfilled or shipped cannot be cancelled.

  • Cancelled orders are not included in reports.

  • An automatic refund is issued, for the full order amount or the captured amount, for every order cancellation .

To cancel an order:

  1. Go to the Shopify Admin screen.

    admin_screen.png
  2. In the left navigation bar, click Orders.

    The list of orders is displayed.

    list_of_orders.png
  3. Select the order that you want to cancel.

    The order page opens.

    order_page.png
  4. At the top-right, select More actions > Cancel Order.

    More_actions.png

    A confirmation window opens.

    confirmation_window.png
  5. In the confirmation window, select a reason for the cancellation , and click Cancel Order.

    If you do not wish to restock the inventory or have a notification sent to the customer, unselect those boxes.

The order is canceled and an email is automatically sent to the customer notifying them of the cancellation (unless you choose not to send a message).

Amend an Order

Shopify does not support amending orders; therefore, to make changes to an order you need to follow the same instructions as for processing a refund.

Note that although the Order Page menu does include an Edit option, you cannot use it to amend an order since the changes are not recognized by Global-e.

To amend an order, follow the instructions for a Refund.

Draft Orders
Overview

You can use the Draft Orders functionality to initiate an order directly from the Shopify admin:

Place a Draft Order

Place an order over the phone or by email on behalf of a customer and send them the payment link. Customers can also purchase products that are not yet available on the website

To create a Draft Order in Shopify:

You can create draft orders in either the Order or Drafts screens

  1. From your Shopify admin, go to Orders.

  2. Click Create order.

    Create_Order1___Shopify.png

    The Create order screen opens.

    Create_order___Shopify.png
  3. Enter the following information:

    Step 1

    Add products and quantities.

    Step 2

    Set one of the following:

    • Add a customer in the Customer section.

      All the customer information is populated and the Market reflects the customer's country and currency.

    - OR -

    • Change the destination country of the order:

      1. Edit ( Edit___Shopify.png) the Market section.

      2. In the pop-up, select the destination country for the order and click Change market.

        Example

        Change_Market___Shopify.png

        The Market reflects the selected destination country and currency.

    Step 3

    In the Payment section:

    1. Click Add discount.

      In the pop-up, select the Discount type: Amount (fixed Amount or percentage. .

      Enter the Discount value and click Apply.

      Example:

      Add_Discount___Shopify.png
    2. Click Estimated tax.

      In the pop-up, select Charge taxes and click Apply.

      Estimated_Tax___Shopify.png

      Note that the customer cannot view the Duties and Taxes calculated during checkout (or know if there are taxes).

    Step 4

    1. Click Send invoice.

      Send_Invoice___Shopify.png

      In the pop-up: if you added the Customer (in step 2), the customer's e-mail address is pre-populated. Otherwise, add the email address manually and enter the required information.

    2. Click Review Invoice.

      Send_invoice_review_details___Shopify.png
    3. Click Send Invoice again.

    Note

    The customer cannot change the destination country on the checkout page as the currency and shipping options are calculated based on the selected market when creating the draft order.

Note that the following functionality is not supported:

  • Payment due later

  • Collect payment

Influencer Orders

Note: This feature must be enabled on your account before use. Please contact your Customer Success Manager to request activation.

Enable influencers to ship orders independently, without involving Global-e or requiring customer payment.

Follow the steps below to set up influencer orders.

  1. Create an order

    1. On the top-left of the Shopify Admin page click Orders > Drafts.

      The Drafts page opens.

      influencer_orders_1.png
    2. At the top-right click Create Order.

      The Create Order page opens.

      create_orders_page.png
  2. Add customer details

    1. In the Customer section, click the search bar to view a list of your customers.

      select_customer.png
    2. Select the name of the customer/influencer.

      customer_details_displayed.png

      The customer details are displayed on the right.

  3. Add products

    1. Next to the Products search bar click Browse.

      click_browse.png

      A window opens with a list of your products.

      Screenshot_2024-09-18_152236.png
    2. Select the desired product/s and click Add.

      add_product.png

      The products are added to the order.

  4. Add the discount

    1. In the Payment section click Add discount.

      add_discount.png

      The Add Discount window opens displaying a list of available discount codes.

    2. Select two discount codes, one for the order and the other for the shipping, and click Apply.

      add_discount_codes.png

      Both discount codes are applied to the order.

      discount_codes_applied.png
  5. Add the shipping method

    1. Click on Add Shipping or delivery.

      The Shipping and delivery options window opens.

    2. Click on the Shipping rates drop-down menu and select the desired shipping option.

    3. Click Apply.

      apply_shipping.png
  6. Create the order

    1. At the bottom of the order screen click Collect Payment > Mark as Paid.

      mark_as_paid-influencer_order.png

      The Mark as Paid window opens, confirming the creation of a free order.

      create_free_order.png
    2. Click Create Order.

      The order is finalized and can be viewed with the rest of your orders.

      finalized_orders.png
Shopify's Multi-Currency

Shopify's multi-currency feature enables customers to view prices in their local currency, make payments in their currency at checkout, and receive refunds in the same currency.

Shopify's multi-currency orders include both the storefront base currency (usually USD) and the customer currency (€, £, ¥, and more).

These currency values are stored as different fields in Shopify:

  • Shop_money – This field holds the storefront's base currency, which serves as the main currency for the Shopify store and is used for reporting and analytics. It is typically mapped downstream by order management systems (OMS) and accounting systems.

  • Presentment_money - This field stores the customer currency, visible to international customers in the storefront, cart, checkout, and transactional emails.

FX Conversion and Shopify API

Since Shopify’s multi-currency orders are created as the localised customer currency (presentment_money), Shopify converts the values using FX conversion to get the shop_money in the Shopify Admin and APIs.

Shopify uses different rounding calculation functions for the shop_money value in the Transaction API and Order API:

  • Order API - This API retrieves the breakdown cost of individual line items in both shop_money and presentment_money. The total amount is calculated as the sum of these individual line items.

  • Transaction API - This API retrieves the total transacted amount in either shop_money or presentment_money.

FX Rounding Discrepancy
Introduction

This document explores the FX considerations related to Shopify's API and order total calculations.

When importing orders from Shopify into a third-party system, you can retrieve the order total:

  • Directly from Shopify’s Transaction API

    - OR -

  • By re-calculating all order line items (via the Order API)

Mathematically, the order total from these two APIs would match without FX rounding. However, due to rounding, a decimal discrepancy may occur, as shown in the Rounding Discrepancy Example. This has been verified by Shopify as expected behaviour; it applies to all multi-currency orders and it is not specific to Global‑e.

For more info on Shopify multi-currency and API, see Shopify's Multi-Currency.

Rounding Discrepancy Example

A customer places an order in Canada that costs $395.50 CAD.

image1.png

The Order API provide the item cost, the shipping cost, the tax, and the sum of all these values.

The Transaction API provides the transacted amount from the customer.

image2.png

With the FX rate at 1.38726, there is a $0.01 difference between the sum of individual line item prices and the total transacted amount. This discrepancy arises due to rounding when comparing the order component FX conversions and the FX conversion of the total itself, leading to a normal and expected mismatch when rounded to two decimal places.

Presentment_money

Shop_money

Calculation

Order API

Line Item 1 = 350.00 CAD

Taxes = 45.50 CAD

Total price = 395.50 CAD

Line Item 1 = $252.30 USD

Taxes = $  32.80 USD

Total price = $285.10 USD

252.30 USD

+ 32.80 USD

= 285.10 USD

Transaction API

Total Amount

= 395.50 CAD

Total Amount

= $285.09 USD

395.50 CAD / 1.38726

= 258.09 USD

This behaviour applies to all Shopify multi-currency orders. Shopify has confirmed that this is not a bug and no API changes will be made.

Conclusion

No mandatory actions are needed. If you are using both the Transaction API and the Order API to get the order total, anticipate that the totals will not match exactly for Shopify multi-currency orders.

Replacements in Shopify
Overview

Global-e‑ supports product replacements directly through the Shopify Admin.

Prerequisites

Update the Global-e Crossborder application.

  1. Navigate to the Global-e CrossBorder App

  2. Go to Settings > Update Global-e Scopes.

    update_globale_scopes.png
  3. Click Update Access Scope.

    The Update page opens.

    Update_screen.png
  4. Click Update App.

  5. Wait 10-15 minutes for the application to update before starting to create Shopify replacements.

    A message under the Update Access Scope button confirms that the app has been successfully updated.

    app_updated_successfully.png

Note

Global‑e’s responsibility does not involve validating orders when creating replacement orders.

Performing a Replacement in Shopify

To perform a replacement in Shopify:

  1. Go to the Shopify Admin screen.

    shopify_admin_screen.png
  2. In the left navigation bar, click Orders.

    click_orders.png

    The list of orders is displayed. See Step 3, below.

  3. Select the order that you want to replace.

    pick_order.png

    The original order opens.

    shopify_order_page.jpg
  4. At the top-right, select More actions > Start Global‑e Replacement.

    start_replacement.png

    An instruction page opens, explaining the process for replacing an order.

    replacement_instructions.png
  5. At the top of the Replacement Instructions page, select Click Here.

    The draft order opens.

    image7.png

    Note

    Global‑e uses Shopify’s Draft Order feature to generate replacement orders. As part of the process, a placeholder product with a $0 value is automatically added to the draft order. This product is deleted before the finalization of the replacement order.

  6. Under Products, in the Search bar, type the replacement item's name. - OR -

    Click Browse to search through all the products.

    browse_products.png

    You can use the filter to search for a product by a barcode, SKU, ID, or title.

    image9.png
  7. Select one or more replacement products and at the bottom-right click Add.

    replacement_item.png

    The product/s are added to the draft order.

    The order screen displays:

    • The placeholder product

    • The replacement product

    order_screen_updated.png
  8. Click the Trash icon to delete the placeholder product.

    discrad_placeholder_updated.png

    Now, the draft order only includes the replacement product.

    performing_a_replacement_in_shopify_updated.png
  9. On the right side of the draft order, ensure the customer's shipping address and contact details are correct.

    confirm_details_updated.png
  10. At the bottom of the Payment section, select Collect payment > Mark as paid

    payment_section_updated.png

    A pop-up appears confirming that an order is created and no payment is required.

    mark_as_paid.png

    Note

    • The draft order automatically inputs the same shipping method used for the original order and a zero-value shipping fee.

    • A 100% order discount is automatically applied to the order, bringing the order total to zero. We recommend not changing these settings because it will affect the order's total.

    • The only time you may need to edit the shipping option is if you use a shipping line Code or Source as an identifier instead of the Title. In this situation, manually edit the shipping information, as detailed below.

    To edit the shipping rates:

    1. Click Edit shipping or delivery.

      The Shipping and delivery options opens and the ustom rates option is selected by default.

      adding_a_shipping_method_2.png
    2. Select Shipping rates.

    3. Choose a shipping method and click Apply.

      edit_shipping.png

      The new shipping rate is added to the order total.

      shipping_total.png
    4. Click Collect payment > Mark as paid.

      The Mark as paid window opens.

    5. Input a shipping rate of $1.00 (or more) and click Create order.

      mark_as_paid_one_dollar.png

      A new order for the replacement item (Replacement order) is created.

  11. In the pop-up, click Create Order.

    A new order for the replacement item (Replacement order) is created.

    image18.png
  12. On the Global‑e Merchant Portal, view the Replacement order.

    a. From the Global‑e Merchant Portal, go to Orders > View Orders.

    b. Open the original order.

    globale_order_details.png

    The newly replaced order is added to your ecommerce platform as a new order.

    At the top of the order screen, the newly replaced order is flagged as a replacement order.

    replacement_tag2.png

    If you do not wish to include replacement orders in your sales reports, you may need to perform modifications on your ecommerce platform to make sure that they are not included in the sales reports.

Shopping / Marketing Feeds

You can leverage Shopify’s sub-folder structure and the geolocation app to build international product feeds.

Examples

Shopify Markets API for product price retrieval

Migrating Global-e to Native App

If you are presently running live on the legacy version of Global-e’s Shopify integration, a.k.a the “hosted checkout”, you must migrate to the latest version where Global-e is natively integrated into Shopify’s checkout.

These are the key changes to Shopify order data:

  • Order transaction is no longer per B2B transaction in a single currency, but per customer B2C transaction instead with presentment currency and shop currency. The B2B VAT is no longer reflected in Shopify.

  • Order id – Shopify order_name no longer starts with ‘GE’ (e.g, GE2034304US). Orders name is now assigned by Shopify same as for domestic orders (eg., #1234). The Global-e order id is available, see below “From the “Additional Details” section in order data”

  • Shipping lines/code is now standardized by Shopify as explained in the previous section.

  • Shipment confirmation emails no longer come from Global-e but instead are managed by Shopify/merchant.

  • Fraud approval no changes to this flow, still relying on the payment status “pending” (before fraud check) and a subsequent update to “paid” status upon fraud approval with the addition of an order tag “Globale::Approved”

  • Payment gateway no longer shows ‘globale’, instead:

    • Global-e Payment (INT) when installing the Global-e payment method in production mode.

    • Global-e Payments when installing the Global-e payment method in test mode.

From the “Additional Details” section in order data

The Global-e order is still available in Shopify, however not upon initial order creation and only as a note_attribute, which is updated by the Global-e Shopify app a few seconds post-order creation.

Example

"order": {
 "id": 4525092405308,
 "name": "#1976",
 "note_attributes": [
 {
 "name": "GEOrderId",
 "value": "GE10071428326US"
 }