Skip to main content

Documentation Portal

Modules Architecture
  • Server-side browsing localisation

  • International Checkout from cart data

  • Orders in SAP Hybris were created following the native SAP Hybris creation flow with additional Global‑e Data Attributes

  • Fraud validation / order cancellation

  • Order updates (e.g. refund notifications)

Hybris_Architecture_Modules1.svg
globaleaddon

The globaleaddon adds the Global‑e Country Selector and the Managed Checkout capability to the SAP Hybris Accelerator-based Storefront.

The globaleaddon includes:

  • If you have a multi-site environment, you can control each website to which you want to add the Global‑e capability.

  • The GlobaleSwitcherComponent adds a widget to allow the customer to select their preferred currency and shipping country. The CSS of this component can either be stored and managed by Global‑e or stored and managed by SAP Hybris.

  • To enable the Global-e CSS, check the configuration “Use Global-e Default CSS".

  • The Global‑e checkout page includes a Global‑e iframe. The OOTB SAP Hybris Accelerator checkout flow definition is overridden by the globaleaddon-web-spring.xml. The global-e checkout flow is only applicable to Global‑e managed countries.

  • GlobaleCookieToSessionFilter updates the SCC session with Global‑e specific values, such as the session currency, country, culture, and activities of the customer.

    The cookie: GlobalE_Data is updated by the GlobaleCookieToSessionFilter filter when the customer comes to the site for the first time and has not yet selected their currency or shipping country. This is based on the location taken from the customer IP via an API call to Global‑e.

globalecore

globalecore places REST API calls to the Global‑e API. globalecore uses custom-built caching to speed up the retrieval of the Global‑e data sets from the database.

Client

The Global‑e implementation uses the Spring RestTemplate to communicate with the Global‑e API.

The RestTemplate is the central Spring class for client-side HTTP access.

Conceptually, it is like the JdbcTemplate, JmsTemplate, and the various other templates found within the Spring Framework.

This means, for instance, that the RestTemplate is thread-safe once constructed, and that you can use callbacks to customize its operations.

API Connection Timeouts

By default, the Global‑e Add-on includes a configuration for API connection timeouts. Each timeout represents the maximum time to wait for a Global‑e API response. If there is no response by the expiration time, the call fails.

Here are some examples of key values that you can see in your local. Properties:

  • globale.api.call.timeout=2000

  • globale.api.connect.timeout=1000

  • globale.api.call.max.connections.host=100

  • globale.api.call.max.total.connections=200

Fixed Product Prices

Fixed prices are used to define a Recommended Retail Price (RRP) per country in the local currency. Fixed prices do not change regardless of Global‑e coefficients, rounding rules, or FX rates.

The fixed price selection process can be configured:

(1) By country and currency – or –

(2) By currency and it is active for all countries that support this feature.

To enable or disable fixed prices based on country, use the Global-e API.

To activate the fallback mechanism (2),

Add the property 'globale.fixed.price.fallback.to.currency.match.enabled=true'.

The fixed price algorithm determines if a PriceRow contains a fixed price for the country and currency (1):

  1. If Global‑e has enabled the session country to allow fixed prices.

  2. AND the type of PriceRow is a GlobalePriceRow,

  3. AND the PriceRow's fixedPriceEnabled equals true,

  4. AND the PriceRow's currency equals the Global‑e session's currency,

  5. THEN the Price service selects PriceRow with country equals Global-e (session) countryAlgorithm to determine if a PriceRow contains a fixed price for currency (2):

  6. WHEN there is no price identified by (1),

  7. AND Global‑e has enabled the session country to allow fixed prices,

  8. AND the type of PriceRow is a GlobalePriceRow,

  9. AND the PriceRow's fixedPriceEnabled equals true,

  10. AND the PriceRow's currency equals Global‑e (session) currency,

  11. THEN the Price service selects the PriceRow that has no defined country.

Solr

The Global‑e Add-on extends the ProductPriceValueProvider and alias with the Global‑e price value provider: GlobaleProductPriceValueProvider.

The price value provider sets the session parameters to ensure that the Global-e add-on has the correct session parameters for price conversion when it creates the price information.

  • GlobalESessionCountryISOCode: taken from the cmsSite defaultShipToCountry.

  • GlobalESessionCultureCode: set to an empty string.

  • GlobalESessionCurrencyISOCode: not set, but DefaultGlobaleSessionParametersService falls back to i18nService.getCurrentCurrency() which is set in ProductPriceValueProvider taken from IndexConfig currencies.

  • GlobalESessionSolr: true

  • catalogVersionService.setSessionCatalogVersion to the base site’s default catalogue and version.

globaleendpoint

Global‑e sends notifications to the globaleendpoint module. Currently, four notifications are sent via JSON and marshalledmarshalled by the Jackson JSON Processor. POJOs corresponding to Global‑e API classes are annotated with Jackson Core (Data-Binding) annotations to facilitate proper mapping.

globalefacades

The globalefacades module provides simplified interfaces to the service layers.

Overridden Facades include:

  • DefaultCustomerFacade is overridden by DefaultGlobaleCustomerFacade.

    If Global‑e is enabled and the Country is managed by Global‑e, this facade updates the session currency and user.

  • SessionOverrideCheckoutFlowFacade is overridden by GlobaleCheckoutFlowFacade.

    The Express checkout is never enabled for a customer whose county is enabled by Global‑e.

  • Custom Global‑e-specific converters and populators can also be found in globalefacades-spring.xml.

globalepromotions

The globalepromotions extension provides support for the SAP Hybris promotion engine.

This extension adds the following conditions:

  • Global‑e-managed country condition as boolean (choose to activate the promotion if either the customer has selected a Global‑e-managed country or has selected a country that is NOT Global‑e-managed).

  • Qualifying country promotion with options: “IN”, “NOT IN”. The customer will qualify for the promotion if the session country is either IN or NOT IN a set of countries specified in the condition.

In addition, Global‑e has overridden and replaced the OOTB SAP Hybris currency conversion logic with the Global‑e conversion rates taken from the Global‑e API. This is relevant to any action applying percentage or absolute value discounts.

Example:

  • If you configure a promotion rule with an order threshold condition in Global‑e supported currency, e.g. 10 GBP,

  • AND if a customer has another cart currency, for example, CHF, with a cart total value of 15 CHF,

  • SAP Hybris converts GBP to CHF and evaluates the condition.

In this case, if we assume Global‑e API provides 1.285 as a conversion coefficient, the condition threshold will be converted as 10 GBP = 12.85 CHF, which is under the cart value of 15 CHF, and the promotion is applied.

How it works:

  • When SAP Hybris translates a promotion into a Drools rule, Global-e substitutes the static price value with ConvertablePriceValue. The ConvertablePriceValue converts and returns prices in runtime based on the Global-e conversion rules.

  • Global‑e also overrides the key price and discount-related RAO Actions:

    GlobaleRuleOrderEntryFixedDiscountRAOAction

    • GlobaleRuleOrderEntryFixedPriceRAOAction

    • GlobaleRuleOrderFixedDiscountRAOAction

    • GlobaleRulePartnerOrderEntryFixedDiscountRAOAction

    • GlobaleRulePartnerOrderEntryFixedPriceRAOAction

    • GlobaleRuleTargetBundlePriceRAOAction

See Known Limitations for information about processes that may trigger an unexpected behaviour (during conversion).

globalebackoffice

globalebackoffice is for Backoffice changes which you can configure in: globalebackoffice-backoffice-config.xml.

The Global‑e add-on also overrides the CurrencyTypeRenderer with the GlobaleCurrencyTypeRenderer to support sub-types of Order Entry.