ACSD-66072: GraphQL no devuelve productos relacionados en la página de detalles del producto
La revisión ACSD-66072 corrige el problema en el cual los productos relacionados no se devuelven a través de GraphQL en la página de detalles del producto debido a un error interno del servidor cuando se configura Related Products Rule. Esta revisión está disponible cuando está instalado Quality Patches Tool (QPT) 1.1.68. El ID del parche es ACSD-66072. Tenga en cuenta que el problema está programado para solucionarse en Adobe Commerce 2.4.9.
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.6-p8
Compatible con versiones de Adobe Commerce:
- Adobe Commerce (todos los métodos de implementación) 2.4.6 - 2.4.8-p1
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
Los productos relacionados no se devuelven a través de GraphQL en la página de detalles del producto debido a un error interno del servidor al configurar Related Products Rule.
Pasos a seguir:
-
Crear productos configurables:
- Producto 1:
config1conoption1 - Producto 2:
config2conoption2
- Producto 1:
-
Creación y asignación de productos a una categoría
- Crear nueva categoría.
- Asigne ambos productos (
config1yconfig2) a esta categoría.
-
Vaya a Marketing > Promotions > Related Products Rule y cree una regla nueva con la siguiente configuración:
- Priority: 1
- Applies To: Related Products
- Result Limit: 10
- Products to Match: Attribute Set is Default
- Products to Display:
Product Category is the Same as Matched Product Categories
-
Ejecute los siguientes comandos CLI de Magento:
code language-bash bin/magento indexer:reindex bin/magento cache:clean -
Envíe una solicitud POST a
../graphqlcon la siguiente carga útil:code language-none query getRelatedProductsForProductPage($urlKey: String!) { products(filter: { url_key: { eq: $urlKey } }) { items { id __typename uid url_key name sku related_products { id uid name sku stock_status url_key small_image { url __typename } thumbnail { url __typename } image { url __typename } price_range { maximum_price { regular_price { currency value __typename } __typename } minimum_price { discount { amount_off percent_off __typename } final_price { currency value __typename } regular_price { currency value __typename} __typename} __typename} __typename } } __typename } }
Resultados esperados:
La consulta devuelve el producto relacionado (config1).
Resultados reales:
{
"errors": [
{
"message": "Internal server error",
"locations": [
{
"line": 10,
"column": 7
}
],
"path": [
"products",
"items",
0,
"related_products"
]
}
],
"data": {
"products": {
"items": [
{
"id": 4,
"__typename": "ConfigurableProduct",
"uid": "NA==",
"url_key": "config2",
"name": "config2",
"sku": "config2",
"related_products": null
}
],
"__typename": "Products"
}
}
}
El archivo var/log/exception.log contiene:
report.ERROR: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /home/magento2ee/app/code/Magento/TargetRule/Model/ResourceModel/Index.php on line 557
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 Quality Patches Tool, consulte:
- Quality Patches Tool: herramienta de autoservicio para parches de calidad en la guía Herramientas.