O Magento, como plataforma de e-commerce, oferece amplas capacidades para gerenciamento de produtos, incluindo recursos para importação e exportação de produtos. No entanto, em alguns casos, o processo de importação de Downloadable Products pode causar erros na gestão de atributos. Neste artigo, vamos discutir um patch para o arquivo Downloadable.php que resolve o problema de salvar o atributo redundante 'links_purchased_separately'. Além disso, falaremos sobre uma solução temporária para o problema em que a opção "Links can be purchased separately" sempre permanece ativada após a importação de Downloadable Products devido a um bug do Magento.

Passo 1: descrevendo o problema

Após importar Downloadable Products para o Magento, pode surgir um problema com a opção "Links can be purchased separately". Devido a um bug do Magento, essa opção sempre fica ativada, mesmo quando os atributos correspondentes ('links_purchased_separately' ou 'purchased_separately') estão ausentes nos dados de entrada. Isso pode levar a consequências indesejadas, como exibição incorreta do status de disponibilidade do produto.

Passo 2: aplicando o patch

O patch fornecido abaixo para o arquivo Downloadable.php resolve o problema de salvar o atributo 'links_purchased_separately'. O patch faz alterações no método prepareAttributesWithDefaultValueForSave para evitar salvar o atributo quando os dados correspondentes estão ausentes na 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;
}

Conclusão

Usar o Magento para gerenciar a sua loja pode ser confiável e eficiente, mas situações ocasionais exigem intervenção. O patch e a solução temporária fornecidos vão ajudá-lo a resolver o problema de salvar o atributo 'links_purchased_separately' e a opção "Links can be purchased separately" após importar Downloadable Products. Lembre-se da importância de atualizar regularmente a sua plataforma e testar as alterações antes de aplicá-las no site em produção.