External Methods
Localize Price
Convert prices from the native currency to the currently selected currency.
This method uses the currently selected country and currency rules.
Input priceDetails
object
{ "Price": 19.95, "ProductClassCoefficient": 1.05, "Quantity": 1 }
Example
var priceDetails = { "Price": 19.95, "ProductClassCoefficient": 1.05, "Quantity": 1 }; var callback = function(localizedPrice) { console.log(JSON.stringify(localizedPrice)); }; GEM_Components.ExternalMethodsComponent.LocalizePrice(priceDetails, callback);
Field Name | Type | Optional | Description |
---|---|---|---|
| number | No | The single price of a product, to be converted. |
| number | Yes | The product class coefficient to be used in this price conversion. Use null if the product does not have a product class. |
| number | No | The quantity of the product to be converted. If no value is provided, a default value of 1 is used. |
| boolean | Yes | If the field is true, the converted price will not be rounded. Do not provide this field if rounding is required. |
Note
Due to rounding rules, the individual product price must be used for the price parameter, not the line item subtotal.
Returned localizedPrice
object
{ "ConvertedPrice": 34.99, "SymboledPrice": "€34.99", "CurrencySymbol": "€" }
Field Name | Type | Description |
---|---|---|
| number | The converted price’s value. |
| string | The converted price, formatted for the selected currency |
| string | The currently selected currency symbol. |
De-localize Converted Price
Convert the customer's local currency back to the original currency.
This method uses the rules from the current country and currency in the calculation.
Example
var priceDetails = { "Price": 100, "ProductClassCoefficient": 1.05, "Quantity": 1 }; var callback = function(delocalizedPrice) { console.log(JSON.stringify(delocalizedPrice)); }; GEM_Components.ExternalMethodsComponent.DelocalizePrice(priceDetails, callback);
Note
Refer to LocalizePrice
method to view the structure of the priceDetails
and delocalizedPrice
objects. The delocalizedPrice
object is structured the same as the localizedPrice
object.
Format Converted Price
Format an already converted price, using the currently selected currency.
Input convertedPriceDetails
object
{ "ConvertedPrice" = 60 }
Field Name | Type | Description |
---|---|---|
| number | The converted price, to be formatted using the selected currency. |
Returned formattedPrice
object
{ "SymboledPrice": "€60.00", "CurrencySymbol": "€" }
Field Name | Type | Description |
---|---|---|
| string | The converted price, formatted for the selected currency. |
| string | The currently selected currency symbol. |
Is Operated by Global-e
Check if the currently selected shipping destination country is a Global-e-operated country.
Example
var callback = function(isOperated) { console.log(isOperated); }; GEM_Components.ExternalMethodsComponent.IsOperatedByGlobalE(callback);
Get Checkout URL
Get the checkout URL that you want to direct customers to.
urlParams
is a JSON object with a single CartToken
string parameter. If you have a headless Shopify site, use the ShopifyCheckoutId
instead of the CartToken.
Example
var urlParams = { CartToken: "customer cart token" }; var callback = function(url) { console.log(url); }; GEM_Components.ExternalMethodsComponent.GetCheckoutUrl(urlParams, callback);
Update Cart
Receive a notification when the cart needs to be updated on the client side, using this latest cartData
that is passed in.
Example
var cartData = { }; // get cart data. GEM_Components.ExternalMethodsComponent.UpdateCart(cartData);
The following events trigger this method:
A product is added to the cart
A product is removed from the cart
The quantity of a product is changed
The cart is shown to the user
cartData
cartData
is a JSON object that matches a specific schema.
Example
{ "productsList": [ { "Name": "Red Shoes", "CartItemId": "abcd-1234-qwe", "OrderedQuantity": 1, "OriginalListPrice": 20, "OriginalSalePrice": 15.95 } ], "discountsList": [ { "Name": "10% off", "OriginalDiscountValue": 1.59, "ProductCartItemId": "abcd-1234-qwe" } ] }
productsList
productsList
is an array of product objects, detailed below:
Field Name | Type | Description |
---|---|---|
| string | The name of the discount. |
| number | The value of the discount, in your native currency. This value is converted to the customer’s selected currency |
| string | The |
Troubleshooting failed code
If you attempted to use a GEM external method and the code failed, this could be because the GEM module has not loaded yet.
In this situation, you can use an ExternalEventsComponent
With the ExternalEventsComponent
you can set a function on the window object and Global-e's code executes that function when a certain event is triggered.
We recommend that you listen for the GlobalE_Loaded event
before executing the code. To do this, set the below function on the window object and the code will be executed when the GEM solution loads.
Example
window['GlobalE_Loaded'] = function() { //add code here }