[Solo PaaS]{class="badge informative" title="Se aplica solo a proyectos de Adobe Commerce en la nube (infraestructura PaaS administrada por Adobe) y a proyectos locales."}

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
NOTE
El parche podría ser aplicable a otras versiones con las nuevas versiones de Quality Patches Tool. Para comprobar si el parche es compatible con su versión de Adobe Commerce, actualice el paquete 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:

  1. Crear productos configurables:

    • Producto 1: config1 con option1
    • Producto 2: config2 con option2
  2. Creación y asignación de productos a una categoría

    • Crear nueva categoría.
    • Asigne ambos productos (config1 y config2) a esta categoría.
  3. 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
  4. Ejecute los siguientes comandos CLI de Magento:

    code language-bash
    bin/magento indexer:reindex
    bin/magento cache:clean
    
  5. Envíe una solicitud POST a ../graphql con 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:

Lectura relacionada

Para obtener más información sobre Quality Patches Tool, consulte:

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3