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"
}
]
}
}