Mostrar precios con IVA con API Mesh para Adobe Developer App Builder
API Mesh permite a los desarrolladores integrar API privadas o de terceros y otras interfaces con productos de Adobe mediante Adobe I/O Runtime.
En este tema, API Mesh se utiliza para mostrar los precios de los productos en una página de detalles del producto con los impuestos incluidos en.
Configurar tipos impositivos
Debe tener los impuestos configurados para que se muestren en la página Detalles del producto.
- Configurar tipos impositivos.
- Permitir que los impuestos sean mostrado en el catálogo, y configúrelo en
Including and Excluding Tax
oIncluding Tax
.
Compruebe que el servicio de catálogo funciona en la página de detalles del producto.
Configuración de API Mesh
Si aún no lo ha hecho, conecte la API Mesh con el servicio de catálogo a su instancia. Consulte las instrucciones detalladas en la Primeros pasos en la Guía para desarrolladores de API Mesh.
En el mesh.json
, reemplace el name
, endpoint
, y x-api-key
valores.
{
"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"
}
]
}
}
Esta mesh.json
archivo de configuración:
- Transforma la aplicación principal de Commerce para requerir "Core_" delante de cualquiera de sus consultas o tipos. Esto evita posibles conflictos de nomenclatura con el servicio de catálogo.
- Amplía el
ComplexProductView
ySimpleProductView
tipos con un nuevo campo llamadopriceWithTaxes
. - Agrega una resolución personalizada para el nuevo campo.
Cree la malla con el create, comando con el mesh.json
archivo.
GraphQL query
Puede recuperar el nuevo priceWithTaxes
datos con GraphQL.
Ejemplo de consulta:
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
}
}
}
}
}
Respuesta de consulta:
{
"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": {}
}