Skip to content

Storefront Settings API

API used to retrieve data related to the current shop like locales, page settings and skin settings.

classDiagram
direction LR
    class selectSkinSettings["selectSkinSettings$"]
    class selectPageSettings["selectPageSettings$"]
    class selectFrontstoreApiUrl["selectFrontstoreApiUrl$"]
    class selectLocales["selectLocales$"]
    class selectCountries["selectCountries$"]
    class selectCountryById["selectCountryById$"]
    class selectCountryByCode["selectCountryByCode$"]

    StorefrontSettingsAPI --> getSkinSettings
    StorefrontSettingsAPI --> getPageSettings
    StorefrontSettingsAPI --> selectSkinSettings
    StorefrontSettingsAPI --> selectPageSettings
    StorefrontSettingsAPI --> selectFrontstoreApiUrl
    StorefrontSettingsAPI --> getLocales
    StorefrontSettingsAPI --> selectLocales
    StorefrontSettingsAPI --> getCountries
    StorefrontSettingsAPI --> selectCountries
    StorefrontSettingsAPI --> getCountryById
    StorefrontSettingsAPI --> selectCountryById
    StorefrontSettingsAPI --> getCountryByCode
    StorefrontSettingsAPI --> selectCountryByCode

    class StorefrontSettingsAPI {
        getSkinSettings() TSkinSettings
        getPageSettings() Record~string,string~
        selectSkinSettings() Observable~TSkinSettings~
        selectPageSettings() Observable<Record<string,string>>
        selectFrontstoreApiUrl() Observable~string~
        getLocales() TLocaleOptions
        selectLocales() Observable~TLocaleOptions~
        getCountries() Country[]
        selectCountries() Observable~Country[]~
        getCountryById() Country|null
        selectCountryById() Observable~Country|null~
        getCountryByCode() Country|null
        selectCountryByCode() Observable~Country|null~
    }

    link getSkinSettings  "../methods/get-skin-settings/"
    link getPageSettings  "../methods/get-page-settings/"
    link selectSkinSettings  "../methods/select-skin-settings/"
    link selectPageSettings  "../methods/select-page-settings/"
    link selectFrontstoreApiUrl  "../methods/select-frontstore-api-url/"
    link getLocales  "../methods/get-locales/"
    link selectLocales  "../methods/select-locales/"
    link getCountries  "../methods/get-countries/"
    link selectCountries  "../methods/select-countries/"
    link getCountryById  "../methods/get-country-by-id/"
    link selectCountryById  "../methods/select-country-by-id/"
    link getCountryByCode  "../methods/get-country-by-code/"
    link selectCountryByCode  "../methods/select-country-by-code/"

Get API

To get the Storefront Settings API use its name StorefrontSettingsApi with the getApiSync method.

useStorefront(async (storefront) => {
    const storefrontSettingsApi = storefront.getApiSync('StorefrontSettingsApi');
});

Methods

Example

In this example we make a StorefrontSettingsApi call to retrieve settings of a currently active skin.

    useStorefront(async (storefront) => {
        const storefrontSettingsApi = storefront.getApiSync('StorefrontSettingsApi');

        const skinSettings = storefrontSettingsApi.getSkinSettings();

        if (skinSettings.isBuyingEnabledToUnregistered) {
            // do something
        }
    });

Example

In this example we make a StorefrontSettingsApi call to retrieve the locales currently used in a shop.

    useStorefront(async (storefront) => {
        const storefrontSettingsApi = storefront.getApiSync('StorefrontSettingsApi');

        const locales = storefrontSettingsApi.getLocales();

        console.log('code of the current currency used in the shop', locales.currency);
    });

Example

In this example we make a StorefrontSettingsApi call to get the observable with the countries currently supported in a shop.

    useStorefront(async (storefront) => {
        const storefrontSettingsApi = storefront.getApiSync('StorefrontSettingsApi');

        const countries$ = storefrontSettingsApi.selectCountries$();

        countries$.subscribe((countries) => {
            countries.forEach((country) => {
                console.log('name of the country:', country.name);
            });
        });
    });

Example

In this example we make a StorefrontSettingsApi call to get the specific country by its code.

    useStorefront(async (storefront) => {
        const storefrontSettingsApi = storefront.getApiSync('StorefrontSettingsApi');

        const country = storefrontSettingsApi.getCountryByCode('VN');

        console.log('country with VN code:', country);
    });

Example

In this example we make a StorefrontSettingsApi call to get an observable with the base url to the frontstore API.

    useStorefront(async (storefront) => {
        const storefrontSettingsApi = storefront.getApiSync('StorefrontSettingsApi');

        const frontstoreApiUrl$ = storefrontSettingsApi.selectFrontstoreApiUrl$();

        frontstoreApiUrl$.subscribe((frontstoreApiUrl) => {
            console.log('the base API url:', frontstoreApiUrl);
        });
    });