Magento biedt als e-commerceplatform uitgebreide mogelijkheden voor productbeheer, waaronder functies voor het importeren en exporteren van producten. Er zijn echter situaties waarin het importproces van Downloadable products kan leiden tot fouten in het attribuutbeheer. In dit artikel bespreken we een patch voor het bestand Downloadable.php die het probleem van het opslaan van het overbodige 'links_purchased_separately'-attribuut aanpakt. Daarnaast bespreken we een tijdelijke oplossing voor het probleem dat de optie "Links can be purchased separately" altijd ingeschakeld blijft na het importeren van Downloadable products als gevolg van een Magento-bug.

Stap 1: Het probleem beschrijven

Na het importeren van Downloadable products in Magento kan er een probleem optreden met de optie "Links can be purchased separately". Als gevolg van een Magento-bug zal deze optie altijd ingeschakeld zijn, zelfs als de corresponderende attributen ('links_purchased_separately' of 'purchased_separately') in de invoerdata ontbreken. Dit kan leiden tot ongewenste gevolgen, zoals onjuiste weergave van de beschikbaarheidsstatus van het product.

Stap 2: De patch toepassen

De onderstaande patch voor het bestand Downloadable.php pakt het probleem aan rond het opslaan van het 'links_purchased_separately'-attribuut. De patch wijzigt de methode prepareAttributesWithDefaultValueForSave om te voorkomen dat het attribuut wordt opgeslagen als de bijbehorende data ontbreekt in de invoer.

--- /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;
}

Conclusie

Het gebruik van Magento om uw winkel te beheren kan betrouwbaar en efficiënt zijn, maar af en toe zijn er situaties die ingrijpen vereisen. De geleverde patch en tijdelijke oplossing helpen u het probleem rond het opslaan van het 'links_purchased_separately'-attribuut en de optie "Links can be purchased separately" na het importeren van Downloadable products te verhelpen. Vergeet niet hoe belangrijk het is om uw platform regelmatig bij te werken en wijzigingen te testen voordat u deze op de live site toepast.