GraphQL-Api

Das Modul bietet eine GraphQL-Schnittstelle, um Store-Daten für das Country-Popup zu ermitteln und z.B. für PWA-Magento-Shops auszugeben.

GraphQL-Api-Call

Request:

https://www.domain.tld/graphql

Query:

query {
  getCountryPopupData {
    storeCountry
    storeLocale
    storeCode
    country
    language
    base
    pageurl
  }
}

Response:

{
  "data": {
    "getCountryPopupData": [
      {
        "storeCountry": "US",
        "storeLocale": "en_US",
        "storeCode": "default",
        "country": "United States",
        "language": "English",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/?___store=default"
      },
      {
        "storeCountry": "DE",
        "storeLocale": "de_DE",
        "storeCode": "de_DE",
        "country": "Germany",
        "language": "German",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/?___store=de_DE"
      },
      {
        "storeCountry": "FR",
        "storeLocale": "fr_FR",
        "storeCode": "fr_FR",
        "country": "France",
        "language": "French",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/?___store=fr_FR"
      }
    ]
  }
}

Komplette Ausgabe

Das Modul bietet auch die Logik bzgl. Store-Recommendations über GraphQL. Es können aufgrund der Angabe der Store-Codes die korrekte Konfiguration geladen und ausgegeben werden.

Wichtig: Die Informationen über die Accept-Language muss in den Header übernommen werden (en-US,de;q=0.8,fr;q=0.7)

Beispiel Ausgabe eines Produkts

Request:

https://www.domain.tld/graphql

Query:

query {
getCountryPopupComplete(
    entity: "product"
    identifier: "simple-product-122"
    storeCode: "default"
) {
        modalImage
        useDelay
        delayDuration
        cookieLifetime
        showModalOverlay
        responsiveModal
        openPopup
        onlyOnHomepage
        browserLocales
        storeLocale
        storeCountry
        modalContent
        storeUrls {
            storeCountry
            storeLocale
            storeCode
            country
            language
            base
            pageurl
            additionalCountries
        }
        recommendedStore {
            storeCountry
            storeLocale
            storeCode
            country
            language
            base
            pageurl
            additionalCountries
            mismatch
        }
    }
}

Response:

{
    "data": {
        "getCountryPopupComplete": {
            "modalImage": "",
            "useDelay": false,
            "delayDuration": 1000,
            "cookieLifetime": 1,
            "showModalOverlay": true,
            "responsiveModal": true,
            "openPopup": true,
            "onlyOnHomepage": false,
            "browserLocales": "en_US,de_DE,fr_FR",
            "storeLocale": "en_US",
            "storeCountry": "US",
            "modalContent": "",
            "storeUrls": [
                {
                    "storeCountry": "US",
                    "storeLocale": "en_US",
                    "storeCode": "default",
                    "country": "United States",
                    "language": "English",
                    "base": "https://magento243commerce.test/default/",
                    "pageurl": "https://magento243commerce.test/default/simple-product-122.html",
                    "additionalCountries": ""
                },
                {
                    "storeCountry": "US",
                    "storeLocale": "ar_EG",
                    "storeCode": "store_view_2",
                    "country": "Egypt",
                    "language": "Arabic",
                    "base": "https://magento243commerce.test/store_view_2/",
                    "pageurl": "https://magento243commerce.test/store_view_2/simple-product-122.html",
                    "additionalCountries": ""
                },
                {
                    "storeCountry": "US",
                    "storeLocale": "ar_KW",
                    "storeCode": "store_view_3",
                    "country": "Kuwait",
                    "language": "Arabic",
                    "base": "https://magento243commerce.test/store_view_3/",
                    "pageurl": "https://magento243commerce.test/store_view_3/simple-product-122.html",
                    "additionalCountries": ""
                }
            ],
            "recommendedStore": {
                "storeCountry": "US",
                "storeLocale": "en_US",
                "storeCode": "default",
                "country": "United States",
                "language": "English",
                "base": "https://magento243commerce.test/default/",
                "pageurl": "https://magento243commerce.test/default/simple-product-122.html",
                "additionalCountries": "",
                "mismatch": false
            }
        }
    }
}

Ausgabe Produkt

Es können auch direkt Store-Informationen bzgl. eines Produktes ermittelt werden. Als Identifikation des Produkts wird die SKU verwendet.

Existiert ein Produkt in einem Store nicht (deaktiviert), dann wird die Basis-Homepage ermittelt

Request:

https://www.domain.tld/graphql

Query:

query {
  getCountryPopupData(entity: "product", identifier:"product_dynamic_1") {
    storeCountry
    storeLocale
    storeCode
    country
    language
    base
    pageurl
  }
}

Response:

{
  "data": {
    "getCountryPopupData": [
      {
        "storeCountry": "US",
        "storeLocale": "en_US",
        "storeCode": "default",
        "country": "United States",
        "language": "English",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/simple-product-1.html?___store=default"
      },
      {
        "storeCountry": "DE",
        "storeLocale": "de_DE",
        "storeCode": "de_DE",
        "country": "Germany",
        "language": "German",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/simple-product-1.html?___store=de_DE"
      },
      {
        "storeCountry": "FR",
        "storeLocale": "fr_FR",
        "storeCode": "fr_FR",
        "country": "France",
        "language": "French",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/simple-product-1.html?___store=fr_FR"
      }
    ]
  }
}

Ausgabe Kategorie

Es können auch direkt Store-Informationen bzgl. einer Kategorie ermittelt werden. Als Identifikation der Kategorie wird die ID verwendet.

Existiert eine Kategorie in einem Store nicht (deaktiviert), dann wird die Basis-Homepage ermittelt

Request:

https://www.domain.tld/graphql

Query:

query {
  getCountryPopupData(entity: "category", identifier:"category-1") {
    storeCountry
    storeLocale
    storeCode
    country
    language
    base
    pageurl
  }
}

Response:

{
  "data": {
    "getCountryPopupData": [
      {
        "storeCountry": "US",
        "storeLocale": "en_US",
        "storeCode": "default",
        "country": "United States",
        "language": "English",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/category-1.html?___store=default"
      },
      {
        "storeCountry": "DE",
        "storeLocale": "de_DE",
        "storeCode": "de_DE",
        "country": "Germany",
        "language": "German",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/category-1.html?___store=de_DE"
      },
      {
        "storeCountry": "FR",
        "storeLocale": "fr_FR",
        "storeCode": "fr_FR",
        "country": "France",
        "language": "French",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/category-1.html?___store=fr_FR"
      }
    ]
  }
}

Ausgabe CMS-Seite

Es können auch direkt Store-Informationen bzgl. einer CMS-Seite ermittelt werden. Als Identifikation der CMS-Seite wird dir Identifier verwendet.

Existiert diese CMS-Seite in einem Store nicht (deaktiviert), dann wird die Basis-Homepage ermittelt

Request:

https://www.domain.tld/graphql

Query:

query {
  getCountryPopupData(entity: "cms", identifier:"enable-cookies") {
    storeCountry
    storeLocale
    storeCode
    country
    language
    base
    pageurl
  }
}

Response:

{
  "data": {
    "getCountryPopupData": [
      {
        "storeCountry": "US",
        "storeLocale": "en_US",
        "storeCode": "default",
        "country": "United States",
        "language": "English",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/enable-cookies?___store=default"
      },
      {
        "storeCountry": "DE",
        "storeLocale": "de_DE",
        "storeCode": "de_DE",
        "country": "Germany",
        "language": "German",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/enable-cookies?___store=de_DE"
      },
      {
        "storeCountry": "FR",
        "storeLocale": "fr_FR",
        "storeCode": "fr_FR",
        "country": "France",
        "language": "French",
        "base": "https://magento243commerce.test/",
        "pageurl": "https://magento243commerce.test/enable-cookies?___store=fr_FR"
      }
    ]
  }
}