Pergunta

Como posso permitir que o SKU tenha mais de 34 caracteres (para produtos simples) para todos os produtos?

Quando adiciono um novo produto (simples) e insiro mais de 34 caracteres, o Magento o corta para 34 após o salvamento.

No banco de dados, os atributos 'sku' (para item queda, item de pedido, item da fatura, item de remessa) da tabela EAV_ATTRIBUTE Hold Varchar (255). Para catalog_product_entity, o atribuído é varchar (64). Em ambos os casos, são mais de 34Characters. Assim, eu poderia alterar o SKU para 64 caracteres sem fazer nenhuma alteração no banco de dados, correto?

Como faço isso? Tenho um bom entendimento do código Magento do lado do usuário, mas não do lado do administrador. Você pode me sugerir um bom tutorial sobre como fazer alterações no lado do administrador que podem me ajudar a descobrir essa pergunta.

Obrigado Margots

Foi útil?

Solução

@latvian O tipo de modificação que você propõe como uma solução não é uma ideia muito boa, pois quebra a compatibilidade com a instalação do núcleo e pode criar um comportamento imprevisível no futuro ao atualizar o núcleo. este rapido e sujo maneira de resolver problemas apenas criará problemas no futuro.

O que eu recomendo é adicionar um atributo personalizado ao objeto de produto chamado Custom_sku Isso pode ser uma corda e você pode fazê -lo o tempo que quiser. Aqui está um link sobre como adicionar um atributo personalizado à sua instalação.

Outras dicas

Há mais do que isso mesmo ....

Altere o campo SKU em: catalog_product_entity para varchar (255) Alterar o campo SKU em: catalog_product_flat_wome_number para varchar (255)

E então você terá que editar o sku.php para que a validação não acione no administrador.

Mudar: const SKU_MAX_LENGTH = 64;

para: const SKU_MAX_LENGTH = 255;

Isso permitirá que o max_length seja 255 em vez de 64 .. Faça o que quiser.

Eu mesmo peguei isso. Aqui está o que eu fiz.

Primeiro, cometi erro ao contar no exposto. Por padrão, o magento permite que a SKU seja 64 max de comprimento. Isso ocorre porque os atributos mais curtos dos SKU (na tabela catalog_product_entity) no db é definido como varchar (64).

  1. Altere o atributo SKU na tabela catalog_product_entity para varchar (255) ou qualquer comprimento desejar. Se esse comprimento for menor que 255, você estará bem, caso contrário, precisar

  2. Ao definir o comprimento do SKU demais, ele quebra a grade no catálogo-> Gerenciamento de produtos. One Solutions é inserir o seguinte código em /design/adminhtml/default/default/template/widget/grid.phtml Linha 157 (após esta linha: <?php foreach ($this->getCollection() as $_index=>$_item): ?>)

    <?php //truncates SKU when too large
    $sku = $_item->getData('sku');
    if(strlen($sku)>60){
        $sku = substr($sku,0,60);
    }
    $_item->setData('sku',$sku);
    ?>
    

Agora, mesmo que você não consiga ver o número completo de SKU no catálogo-> Gerenciar, você verá o SKU completo quando clicar duas vezes/editar o produto individualmente.

Espero que tenha sido útil.

Melhor

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top