MDVA-37748 : la requête GraphQL renvoie les produits non affectés au catalogue partagé
Le correctif MDVA-37748 corrige le problème lorsqu’une requête GraphQL renvoie des produits non affectés à un catalogue partagé. Ce correctif est disponible lorsque la variable Outil Correctifs de qualité (QPT) La version 1.1.5 est installée. L’ID de correctif est MDVA-37748. Veuillez noter que le problème doit être corrigé dans Adobe Commerce 2.4.4.
Produits et versions concernés
Le correctif est créé pour la version Adobe Commerce :
Adobe Commerce (toutes les méthodes de déploiement) 2.4.2
Compatible avec les versions d’Adobe Commerce :
Adobe Commerce (toutes les méthodes de déploiement) 2.4.2 - 2.4.2-p2
magento/quality-patches
vers la dernière version et vérifiez la compatibilité sur la page Quality Patches Tool: recherchez la page des correctifs.. Utilisez l’ID de correctif comme mot-clé de recherche pour localiser le correctif.Problème
La requête GraphQL renvoie les produits qui ne sont pas affectés à un catalogue partagé.
Conditions préalables:
Les modules B2B sont installés.
Étapes à reproduire:
-
Créez deux produits et affectez-les à une catégorie :
- Produit 1 - Public
- Product 2
-
Affectez "Produit 1 - Public" au catalogue partagé "Par défaut (Général)".
-
Créez un catalogue partagé personnalisé supplémentaire et affectez-le à "Produit 2".
-
Créez une nouvelle société et affectez-la au catalogue partagé supplémentaire créé à l’étape 3.
-
Après l’exécution/la réindexation de cron, sur le front-end, vérifiez que "Product 1 - Public" s’affiche si vous n’êtes pas connecté.
-
Connectez-vous en tant qu’administrateur de la société créée à l’étape 4 et vérifiez que vous ne voyez que "Produit 2".
-
Demandez un jeton d’autorisation à l’aide de la requête GraphQL suivante :
code language-graphql mutation { generateCustomerToken( email: "company.admin@exapmle.test" password: "password" ) { token } }
-
Ajouter un en-tête Valeur du jeton du porteur d’autorisation et exécutez la requête GraphQL suivante :
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 } } } }
Résultats attendus:
Le décompte et le produit renvoyé par GraphQL ne prennent en compte que le produit affecté au catalogue partagé associé à l’utilisateur connecté.
Résultats réels:
Seul "Product 2" est renvoyé, mais la variable total_count
affiche deux.
{
"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": []
}
]
}
}
}
Appliquer le correctif
Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre méthode de déploiement :
- Adobe Commerce ou Magento Open Source sur site : Guide de mise à jour logicielle > Appliquer les correctifs dans notre documentation destinée aux développeurs.
- Adobe Commerce sur l’infrastructure cloud : Mises à niveau et correctifs > Appliquer les correctifs dans notre documentation destinée aux développeurs.
Lecture connexe
Pour en savoir plus sur l’outil Correctifs de qualité, consultez :
- L’outil Correctifs de qualité est disponible : un nouvel outil pour les correctifs de qualité en libre-service. dans notre base de connaissances de soutien.
- Vérifiez si le correctif est disponible pour votre problème Adobe Commerce à l’aide de l’outil Correctifs de qualité dans notre base de connaissances de soutien.
Pour plus d’informations sur les autres correctifs disponibles dans QPT, reportez-vous à la section Correctifs disponibles dans QPT .