En tant que plateforme e-commerce, Magento offre de vastes capacités pour gérer les produits, notamment des fonctionnalités d'import et d'export. Cependant, dans certains cas, l'import de produits Downloadable peut entraîner des erreurs de gestion des attributs. Dans cet article, nous présentons un patch pour le fichier Downloadable.php qui résout le problème d'enregistrement superflu de l'attribut « links_purchased_separately ». Nous évoquerons également une solution temporaire au problème selon lequel l'option « Links can be purchased separately » reste toujours activée après l'import de produits Downloadable, en raison d'un bug Magento.
Étape 1 : description du problème
Après l'import de produits Downloadable dans Magento, un problème peut survenir avec l'option « Links can be purchased separately ». À cause d'un bug Magento, cette option reste toujours activée, même si les attributs correspondants (« links_purchased_separately » ou « purchased_separately ») sont absents des données d'entrée. Cela peut entraîner des conséquences indésirables, comme un affichage incorrect du statut de disponibilité du produit.
Étape 2 : application du patch
Le patch ci-dessous pour le fichier Downloadable.php résout le problème d'enregistrement de l'attribut « links_purchased_separately ». Le patch modifie la méthode prepareAttributesWithDefaultValueForSave afin d'éviter d'enregistrer l'attribut si les données correspondantes sont absentes en entrée.
--- /Model/Import/Product/Type/Downloadable.php 2022-03-08 00:52:02.000000000 +0200
+++ /Model/Import/Product/Type/Downloadable.php 2023-11-29 16:38:53.060641590 +0200
@@ -448,6 +448,9 @@
{
$resultAttrs = parent::prepareAttributesWithDefaultValueForSave($rowData, $withDefaultValue);
$resultAttrs = array_merge($resultAttrs, $this->addAdditionalAttributes($rowData));
+ if (!in_array('links_purchased_separately', $rowData) && !in_array('purchased_separately', $rowData)) {
+ unset($resultAttrs['links_purchased_separately']);
+ }
return $resultAttrs;
}
Conclusion
Magento est une solution fiable et efficace pour gérer votre boutique, mais certaines situations exigent une intervention. Le patch et la solution temporaire fournis vous aideront à résoudre le problème d'enregistrement de l'attribut « links_purchased_separately » et de l'option « Links can be purchased separately » après l'import de produits Downloadable. N'oubliez pas l'importance de mettre à jour régulièrement votre plateforme et de tester les modifications avant de les déployer en production.