7
votes

J'ai besoin d'une languette personnalisée pour un type de produit spécifique uniquement pour tous les types de produits

Je veux ajouter un nouvel onglet personnalisé comme dans l'image "Prix - Taille" pour mon type de produit personnalisé uniquement

J'ai essayé le code de ceci link-1 et Link-2 Mais il affiche l'onglet sur tous les types de produits Ajouter / Modifier P>

Ma question est la même que Ce mais je veux faire cela à l'aide de codage p>

Entrez la description de l'image ici p>

mysql4-install-0.1.0.php strong> p>

$fieldList = array('price','special_price','special_from_date','special_to_date',
    'minimal_price','cost','tier_price','weight','tax_class_id', 'limits');


6 commentaires

Devez-vous avoir un nouvel onglet? Pouvez-vous simplement utiliser un onglet existant du tout?


Oui j'ai un nouvel onglet 'prix - taille' et je veux l'afficher pour mon type de produit personnalisé que s'il s'affiche avec tous les types de produits tels que Bundle, simple, téléchargeable Je le veux avec seulement ClustProduct (mon type de produit personnalisé)


Magento ne supporte pas cela. Il ne prend en charge que des ensembles d'attributs personnalisés à configurer (pas d'onglets). Vous devez modifier votre administrateur pour y parvenir.


Le problème est résolu maintenant merci :)


Tout bon! Qu'est-ce qui a fixé le problème?


@fkim j'ai mis à jour le code


4 Réponses :


2
votes

Vous devez utiliser un paramètre appliquer_to code> xxx pré>

.. et ajoutez l'attribut à l'attribut SET P>

$productDefaultAttributeSet = $installer->getDefaultAttributeSetId(Mage_Catalog_Model_Product::ENTITY);


1 commentaires

Attribut ajouté mais comment créer un groupe "Prix - Taille" et attribuer un attribut à ce groupe, merci :)



0
votes

nouveau groupe dans le backend

Voici le code pour créer un nouvel onglet "Groupe" dans le backend: xxx

Seuls les produits spéciaux

Pour que cela ne soit arrivé que sur certains produits suivent ces étapes:

  1. Créez un nouveau jeu d'attributs (basé sur celui que vous utilisez déjà)
  2. Ajoutez l'onglet / groupe personnalisé à ce nouveau jeu d'attributs
  3. Tous les produits spéciaux (que vous souhaitez avoir cet onglet) doivent utiliser ce nouvel ensemble d'attributs

    Obtenir le produit personnalisé Travail dans le panier

    pouce a créé un module "Produit personnalisé", je vous suggère de comparer votre code avec le leur.

    Voici un lien vers leur module (et son article):

    http://inchoo.net/ecommerce/magento/how-to-create-a-new-product-type-in-magento/ < / p>


4 commentaires

Je ne veux pas faire ça manuellement, je veux faire ça en utilisant le codage seulement


Dans quelle partie parlez-vous? Créer un ensemble d'attributs personnalisé?


Toutes choses, j'ai créé un ensemble de produits et d'attributs et attribuez-le, mais mon problème est-il montrant avec tous les types de produits dont j'ai besoin uniquement avec mon type de produit personnalisé uniquement


Utilisez le code que j'ai publié pour que l'attribut ne propose que dans le nouvel ensemble d'attributs (vous devrez peut-être le supprimer de l'ensemble normal depuis que vous l'avez déjà placé)



0
votes

Je pense obtenir le comportement que vous voulez, vous devrez réécrire la classe MAGE_ADMINHTML_BLOCK_CATALOG_PRODUCT_EDIT_TABS

IN, la méthode _PrePareLayout () crée tous les onglets, c'est-à-dire: P>

    foreach ($groupCollection as $group) {
    ...
    $this->addTab('group_'.$group->getId(), array(
        'label' => Mage::helper('catalog')->__($group->getAttributeGroupName()),
        'content'   => $this->_translateHtml(
                          $this->getLayout()
                               ->createBlock($this->getAttributeTabBlock(),
                                   'adminhtml.catalog.product.edit.tab.attributes')
                               ->setGroup($group)
                               ->setGroupAttributes($attributes)
                               ->toHtml()),
            ));
    }


0 commentaires

10
votes

Magento est très flexible, il existe donc de nombreuses façons de réaliser le résultat souhaité. Le seul problème est de déterminer le meilleur moyen à le faire, c'est-à-dire de trouver la manière la plus fiable et la plus efficace.

Deux approches peuvent être suggérées ici. Le choix dépend des détails techniques des fonctionnalités requises, qui ne sont pas énoncées dans la question initiale:

  1. L'onglet personnalisé ne contiendra que des champs de base, utilisés pour la saisie de données. Pour un produit
  2. L'onglet personnalisé contiendra des champs avancés, et / ou JavaScript et / ou d'autres HTML personnalisés Markup

    Voyons la solution pour les deux cas.


    # 1. L'onglet ne contiendra que des champs de base, utilisés pour la saisie de données pour un produit

    dans un tel cas, il suffit d'utiliser le mécanisme d'attributs de Magento. Il permet de créer des attributs (champs) pour un produit, d'appliquer uniquement certains types de produits, et séparez les champs en groupes (onglets).

    Voici comment un script peut ressembler.

    /sql/install-1.0.0.0.php xxx


    N'hésitez pas à Télécharger un exemple de module simple pour cette approche: "attribut_tab.zip "



    # 2. L'onglet Custom contiendra des champs avancés, et / ou JavaScript et / ou d'autres balises HTML personnalisées

    dans un tel cas, l'onglet doit être créé comme un bloc magento habituel. Et injecté dans les onglets Renderer via la mise en page.

    bloc d'onglets personnalisé /block/adminhtml/catalog/product/edit/tab/custom.php < Pré> xxx


    Fichier de mise en page app / conception / adminhtml / par défaut / par défaut / layout / zerkella_customtab.xml: xxx


    REMARQUE: Si les types de produits, ayant une onglet personnalisé, sont corrigés, vous pouvez les mettre statistiquement dans le fichier de mise en page, au lieu de les vérifier de manière dynamique dans la méthode CANShowTab () .

    Voici le fichier de mise en page pour un tel cas d'échantillon, lorsque les types de produits avec onglet personnalisé sont fixes et incluent seulement téléchargeable uniquement, App / Conception / AdminHTML / par défaut / par défaut / Disposition / Zerkella_CustomTAB.xml : xxx


    Le reste est simple - tout ce que vous mettez dans zerkella_customtab / catalogue / produit / édition / onglet / onglet / personnalisé.phtml sera rendu dans l'onglet.

    Vous pouvez Télécharger un exemple de module simple pour cette approche:" Custom_tab.zip "


    aussi je ne recommanderais pas d'utiliser des réécritures de classe pour mettre en œuvre la tâche. Les approches décrites ci-dessus couvrent tous les besoins du développeur. Il n'y a aucun sens à utiliser des réécrites. Tandis que la réécriture est une caractéristique puissante, ce qui permet de faire n'importe quoi dans Magento, il a deux restrictions:

    • une classe peut être réécrit par un module uniquement
    • S'il y a des classes réécrites dans votre système, plus de travail seront nécessaires pour Mise à niveau Magento vers une version plus récente

      Les approches proposées suivent un moyen naturel de personnaliser les onglets de produits à Magento, il est donc préférable de choisir l'un d'entre eux.

      bonne chance avec votre magasin :) < / p>


4 commentaires

..Merci d'expliquer toutes les choses de manière aussi agréable.


Mon problème est déjà résolu mais j'accepte votre ANS pour votre explication merci


Bon à savoir, car le débordement de la pile a été construit pour résoudre des problèmes. Donc ça marche :)


Option 1 ci-dessus et votre exemple dans le fichier ZIP ne semble pas fonctionner pour Magento 1.3.x