Magento, como plataforma de e-commerce, ofrece amplias capacidades para gestionar productos, incluidas funciones para importar y exportar productos. No obstante, en ocasiones el proceso de importación de Downloadable Products puede generar errores en la gestión de atributos. En este artículo trataremos un parche para el archivo Downloadable.php que aborda el problema de guardado del atributo redundante 'links_purchased_separately'. Además, comentaremos una solución temporal para el caso en que la opción "Links can be purchased separately" permanece siempre activada tras importar Downloadable Products debido a un bug de Magento.

Paso 1: descripción del problema

Tras importar Downloadable Products en Magento, puede surgir un problema con la opción "Links can be purchased separately". Debido a un bug de Magento, esta opción permanece siempre activada, incluso cuando los atributos correspondientes ('links_purchased_separately' o 'purchased_separately') no figuran en los datos de entrada. Esto puede acarrear consecuencias indeseables, como la visualización incorrecta del estado de disponibilidad del producto.

Paso 2: aplicar el parche

El parche que se ofrece a continuación para el archivo Downloadable.php aborda el problema de guardado del atributo 'links_purchased_separately'. El parche modifica el método prepareAttributesWithDefaultValueForSave para evitar que el atributo se guarde si no se incluyen los datos correspondientes en la entrada.

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

Conclusión

Usar Magento para gestionar su tienda puede ser fiable y eficiente, pero en ocasiones se requiere intervención. El parche y la solución temporal proporcionados le ayudarán a abordar el problema de guardado del atributo 'links_purchased_separately' y de la opción "Links can be purchased separately" tras importar Downloadable Products. Recuerde la importancia de actualizar su plataforma con regularidad y de probar los cambios antes de aplicarlos al sitio en producción.