Anzeigen von besteuerten Preisen mit API-Mesh für Adobe Developer App Builder
API-Mesh ermöglicht es Entwicklern, mithilfe von Adobe I/O Runtime private oder Drittanbieter-APIs und andere Schnittstellen mit Adobe-Produkten zu integrieren.
In diesem Thema wird API-Mesh verwendet, um Produktpreise auf einer Produktdetailseite mit konfigurierten Steuern anzuzeigen.
Festlegen von Steuersätzen
Sie müssen Steuern für die Anzeige auf der Produktdetailseite konfiguriert haben.
- Festlegen von Steuersätzen.
- Steuern aktivieren im Katalog angezeigtund legen Sie sie auf
Including and Excluding Tax
oderIncluding Tax
.
Stellen Sie sicher, dass der Catalog Service funktioniert, indem Sie eine Produktdetailseite überprüfen.
API-Gitter konfigurieren
Verbinden Sie, falls noch nicht geschehen, den API-Mesh mit Catalog Service mit Ihrer Instanz. Detaillierte Anweisungen finden Sie unter Erste Schritte Thema im API-Mesh-Entwicklerhandbuch.
Im mesh.json
ersetzen Sie die name
, endpoint
, und x-api-key
-Werte.
{
"meshConfig": {
"sources": [
{
"name": "<NAME OF MESH>",
"handler": {
"graphql": {
"endpoint": "<COMMERCE INSTANCE GQL ENDPOINT URL>"
}
},
"transforms": [
{
"prefix": {
"includeRootOperations": true,
"value": "Core_"
}
}
]
},
{
"name": "CommerceCatalogServiceGraph",
"handler": {
"graphql": {
"endpoint": "https://catalog-service-sandbox.adobe.io/graphql/",
"operationHeaders": {
"Magento-Store-View-Code": "{context.headers['magento-store-view-code']}",
"Magento-Website-Code": "{context.headers['magento-website-code']}",
"Magento-Store-Code": "{context.headers['magento-store-code']}",
"Magento-Environment-Id": "{context.headers['magento-environment-id']}",
"x-api-key": "API_KEY",
"Magento-Customer-Group": "{context.headers['magento-customer-group']}"
},
"schemaHeaders": {
"x-api-key": "<YOUR API_KEY>"
}
}
}
}
],
"additionalTypeDefs": "extend type ComplexProductView {\n priceWithTaxes: Core_PriceRange\n}\n extend type SimpleProductView {\n priceWithTaxes: Core_PriceRange\n}\n",
"additionalResolvers": [
{
"targetTypeName": "ComplexProductView",
"targetFieldName": "priceWithTaxes",
"sourceName": "MagentoQACore",
"sourceTypeName": "Query",
"sourceFieldName": "Core_products",
"requiredSelectionSet": "{\n items {\n sku, \n price_range {\n minimum_price {\n final_price {\n value\n currency\n }\n }\n }\n }\n }",
"sourceArgs": {
"filter.sku.eq": "{root.sku}"
},
"result": "items[0].price_range"
},
{
"targetTypeName": "SimpleProductView",
"targetFieldName": "priceWithTaxes",
"sourceName": "MagentoQACore",
"sourceTypeName": "Query",
"sourceFieldName": "Core_products",
"requiredSelectionSet": "{\n items {\n sku, \n price_range {\n minimum_price {\n final_price {\n value\n currency\n }\n }\n }\n }\n }",
"sourceArgs": {
"filter.sku.eq": "{root.sku}"
},
"result": "items[0].price_range"
}
]
}
}
Diese mesh.json
Konfigurationsdatei:
- Wandelt die Commerce-Core-Anwendung so um, dass "Core_"erforderlich ist, das Abfragen oder Typen vorangestellt wird. Dadurch werden mögliche Namenskonflikte mit dem Catalog Service verhindert.
- Erweitert die
ComplexProductView
undSimpleProductView
Typen mit einem neuen Feld namenspriceWithTaxes
. - Fügt einen benutzerdefinierten Resolver für das neue Feld hinzu.
Erstellen Sie das Gitter mit dem create, Befehl mit dem mesh.json
-Datei.
GraphQL-Abfrage
Sie können die neue priceWithTaxes
Daten mit GraphQL.
Abfragebeispiel:
query {
products(skus:[MH07]) {
__typename
id
sku
name
description
shortDescription
addToCartAllowed
url
... on ComplexProductView {
priceWithTaxes {
minimum_price {
final_price {
value
}
}
maximum_price {
final_price {
value
}
}
}
priceRange {
maximum {
final {
amount {
value
currency
}
}
regular {
amount {
value
currency
}
}
roles
}
minimum {
final {
amount {
value
currency
}
}
regular {
amount {
value
currency
}
}
roles
}
}
}
}
}
Abfrageantwort:
{
"data": {
"products": [
{
"__typename": "ComplexProductView",
"id": "VFVnd053AFpHVm1ZWFZzZEEAWkRWa09Ua3hNVFl0WTJJd015MDBaRGMwTFRnME16a3RNak01TVRVNE9ESTBOemd4AGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSE1EQTFPRFEyTVRjeA",
"sku": "MH07",
"name": "Hero Hoodie13",
"description": "<p>Gray and black color blocking sets you apart as the Hero Hoodie keeps you warm on the bus, campus or cold mean streets. Slanted outsize front pockets keep your style real . . . convenient.</p>\r\n<p>* Full-zip gray and black hoodie.<br />* Ribbed hem.<br />* Standard fit.<br />* Drawcord hood cinch.<br />* Water-resistant coating.</p>",
"shortDescription": "",
"addToCartAllowed": true,
"url": "http://commerce_url/hero-hoodie.html",
"priceWithTaxes": {
"minimum_price": {
"final_price": {
"value": 8.330001
}
},
"maximum_price": {
"final_price": {
"value": 13355.524701
}
}
},
"priceRange": {
"maximum": {
"final": {
"amount": {
"value": 39.02,
"currency": "USD"
}
},
"regular": {
"amount": {
"value": 54,
"currency": "USD"
}
},
"roles": [
"visible"
]
},
"minimum": {
"final": {
"amount": {
"value": 39.02,
"currency": "USD"
}
},
"regular": {
"amount": {
"value": 54,
"currency": "USD"
}
},
"roles": [
"visible"
]
}
}
}
]
},
"extensions": {}
}