Question

Comment puis-je permettre à SKU soit plus de 34 caractères (pour les produits simples) pour tous les produits?

Quand ajouter de nouveaux produits (simple) et entrer dans plus de 34 caractères, Magento il coupe à 34 après l'enregistrement.

Dans la base de données les attributs 'sku' (pour le point de quete, élément de commande, élément de facture, point de livraison) de eav_attribute attente de table varchar (255). Pour la Catalog_Product_Entity est attribué VarChar (64). Dans les deux cas, il est plus que 34characters. Ainsi, je pourrais changer SKU à 64 caractères sans faire aucun changement dans la base de données, correcte?

Comment puis-je faire cela? J'ai une bonne compréhension du côté utilisateur code magento, mais pas côté administration. Pouvez-vous me suggérer un bon tutoriel sur des changements dans le côté administration qui pourrait me aider à cette question moi-même.

Merci, Margots

Était-ce utile?

La solution

@latvian Le genre de modification que vous proposez comme solution n'est pas une très bonne idée car il rompt la compatibilité avec l'installation de base et il peut créer un comportement imprévisible à l'avenir lors de la mise à niveau du noyau. Ce moyen rapide et sale de résoudre les problèmes ne feront que créer des problèmes à l'avenir.

Ce que je recommande est l'ajout d'un attribut personnalisé à l'objet produit appelé custom_sku qui peut être une chaîne et vous pouvez le faire aussi longtemps que vous le souhaitez. Voici un sur la façon d'ajouter un attribut personnalisé à votre installation.

Autres conseils

Il y a plus à ce que ce même ....

Changement champ SKU dans: catalog_product_entity à varchar (255) Variation champ SKU en: catalog_product_flat_some_number à varchar (255)

Et alors vous devrez modifier le Sku.php si la validation wont déclenche dans l'admin.

Changement: const SKU_MAX_LENGTH = 64;

à: const SKU_MAX_LENGTH = 255;

Cela permettra au max_length d'être 255 au lieu de 64 .. faire ce que vous voulez.

Je suis moi-même. Voici ce que je faisais.

D'abord, je a fait une erreur de comptage dans ce qui précède. Par défaut Magento permet de SKU # 64 être long max. En effet, la plus courte de la SKU attributs (tableau catalog_product_entity) dans la base de données est réglé sur varchar (64).

  1. Modifier attribut SKU dans le tableau de catalog_product_entity à varchar (255) ou de toute longueur désirée. Si cette longueur est inférieure à 255, vous êtes bien sinon vous devez changer d'autres attributs SKU tels que l'ordre SKU, citation sKu et d'autres dans le DB

  2. En réglant la longueur SKU trop grand, il casse la grille dans le Catalog-> Gérer produit. Une des solutions consiste à insérer le code suivant dans /design/adminhtml/default/default/template/widget/grid.phtml ligne 157 (après cette ligne: <?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);
    ?>
    

Maintenant, même si vous ne serez pas en mesure de voir le numéro complet SKU dans Catalog-> Gérer produit, vous verrez plein SKU lors d'un double clic / modifier le produit individuellement.

J'espère qu'il était utile.

Best

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top