MDVA-37748: La consulta de GraphQL devuelve productos no asignados al catálogo compartido
El parche MDVA-37748 corrige el problema en el que una consulta de GraphQL devuelve productos no asignados a un catálogo compartido. Este parche está disponible cuando está instalada la Herramienta de parches de calidad (QPT) 1.1.5. El ID del parche es MDVA-37748. Tenga en cuenta que el problema está programado para solucionarse en Adobe Commerce 2.4.4.
Productos y versiones afectados
El parche se ha creado para la versión de Adobe Commerce:
Adobe Commerce (todos los métodos de implementación) 2.4.2
Compatible con versiones de Adobe Commerce:
Adobe Commerce (todos los métodos de implementación) 2.4.2 - 2.4.2-p2
magento/quality-patches a la última versión y compruebe la compatibilidad en la página Quality Patches Tool: buscar parches . Utilice el ID de parche como palabra clave de búsqueda para localizar el parche.Problema
La consulta de GraphQL devuelve productos no asignados a un catálogo compartido.
Requisitos previos:
Los módulos B2B están instalados.
Pasos a seguir:
-
Cree dos productos y asígnelos a una categoría:
- Producto 1 - Público
- Product 2
-
Asigne "Product 1 - Public" al catálogo compartido "Default (General)".
-
Cree un catálogo compartido personalizado adicional y asígnelo a "Producto 2".
-
Cree una nueva compañía y asígnela al catálogo compartido adicional creado en el paso tres.
-
Después de la ejecución/reindexación de cron, en el front-end, valide que puede ver "Producto 1: público" si no ha iniciado sesión.
-
Inicie sesión como administrador de la compañía creada en el paso 4 y compruebe que solo ve el producto 2.
-
Solicite un token de autorización con la siguiente consulta de GraphQL:
code language-graphql mutation { generateCustomerToken( email: "company.admin@exapmle.test" password: "password" ) { token } } -
Agregue el encabezado Valor del token del portador de autorización y ejecute la siguiente consulta de GraphQL:
code language-graphql { products( filter: {}, pageSize: 100, currentPage: 1 sort: {} ) { total_count page_info { page_size current_page } aggregations { attribute_code count label options { label value count } } items { name sku created_at updated_at stock_status description {html} short_description {html} url_key url_path price_tiers{ final_price{ value currency } discount{ amount_off percent_off } quantity } price_range { maximum_price { regular_price { value } final_price { value } } minimum_price { regular_price { value } final_price { value } } } image { url } thumbnail { url } small_image { url } media_gallery { url } ... on ConfigurableProduct { configurable_options { id label position use_default attribute_code values { value_index label swatch_data { value } } product_id } variants { product { id name sku #margin #margin_percentage image { url } small_image { url } thumbnail { url } media_gallery{ url } attribute_set_id ... on PhysicalProductInterface { weight } price_range { minimum_price { regular_price { value currency } } } } attributes { label code value_index } } } } } }
Resultados esperados:
El recuento y el producto devueltos por GraphQL solo tienen en cuenta el producto asignado al catálogo compartido asociado al usuario que ha iniciado sesión.
Resultados reales:
Solo se devuelve "Product 2", pero total_count muestra dos.
{
"data": {
"products": {
"total_count": 2,
"page_info": {
"page_size": 100,
"current_page": 1
},
"aggregations": [
{
"attribute_code": "price",
"count": 2,
"label": "Price",
"options": [
{
"label": "0-100",
"value": "0_100",
"count": 1
},
{
"label": "100-200",
"value": "100_200",
"count": 1
}
]
},
{
"attribute_code": "category_id",
"count": 1,
"label": "Category",
"options": [
{
"label": "Cat 1",
"value": "3",
"count": 2
}
]
}
],
"items": [
{
"name": "Product 2",
"sku": "Product 2",
"created_at": "2021-05-12 10:51:44",
"updated_at": "2021-05-12 11:03:24",
"stock_status": "IN_STOCK",
"description": {
"html": ""
},
"short_description": {
"html": ""
},
"url_key": "product-2",
"url_path": null,
"price_tiers": [
{
"final_price": {
"value": 90,
"currency": "USD"
},
"discount": {
"amount_off": 10,
"percent_off": 10
},
"quantity": 1
}
],
"price_range": {
"maximum_price": {
"regular_price": {
"value": 100
},
"final_price": {
"value": 90
}
},
"minimum_price": {
"regular_price": {
"value": 100
},
"final_price": {
"value": 90
}
}
},
"image": {
"url": "../pub/static/version1620816308/frontend/Magento/luma/en_US/Magento_Catalog/images/product/placeholder/image.jpg"
},
"thumbnail": {
"url": "../pub/static/version1620816308/frontend/Magento/luma/en_US/Magento_Catalog/images/product/placeholder/thumbnail.jpg"
},
"small_image": {
"url": "../pub/static/version1620816308/frontend/Magento/luma/en_US/Magento_Catalog/images/product/placeholder/small_image.jpg"
},
"media_gallery": []
}
]
}
}
}
Aplicar el parche
Para aplicar parches individuales, utilice los siguientes vínculos según el método de implementación:
- Adobe Commerce o Magento Open Source local: Quality Patches Tool > Uso en la guía Quality Patches Tool.
- Adobe Commerce en la infraestructura de la nube: Actualizaciones y parches > Aplicar parches en la guía Commerce en la infraestructura de la nube.
Lectura relacionada
Para obtener más información sobre la herramienta Parches de calidad, consulte:
- Lanzamiento de la herramienta Parches de calidad: una nueva herramienta para autodistribuir parches de calidad en la base de conocimiento de asistencia.
- Compruebe si el parche está disponible para su problema de Adobe Commerce mediante la herramienta Parches de calidad en la guía Quality Patches Tool.
Para obtener información sobre otros parches disponibles en QPT, consulte la sección Parches disponibles en QPT.