MAGexpert : les experts en développement Magento
20fév/120

Savoir si un module Magento est activé ou non

Utiliser ce petit bout de code pour renvoyer un booléen et déterminer si le module Magento cherché est activé ou non :

Mage::getConfig()->getModuleConfig('Namespace_Module')->is('active', 'true');

 

20fév/120

Supprimer la variable __from_store de l’url

Dans app/design/frontend/default/template/page/switch/languages.phtml, remplacer :

$_lang->getCurrentUrl();

par çà :

$_lang->getCurrentUrl(false);
19juil/110

Ajouter un attribut à tous les jeux d’attributs

Vous venez de créer un attribut de produit mais votre boutique contient beaucoup de jeux d'attributs et il est fastidieux de l'affecter à tous.

Voici une requête SQL vous permettant de faire cette manipulation en une fois :

INSERT INTO `eav_entity_attribute` (entity_type_id,attribute_set_id,attribute_group_id,attribute_id)
(SELECT 'ATTRIBUTE_ID' as
entity_type_id,`attribute_set_id` ,`attribute_group_id`,`attribute_id`
FROM `eav_attribute_group`,`eav_attribute`
WHERE `attribute_group_name`='General'
AND `attribute_code`='code_de_mon_attribut'
)

Ici elle met l'attribut dont le code est code_de_mon_attribut dans tous les jeux dans le groupe General.

22mar/110

Ajouter un attribut sur un client Magento

Sur Magento 1.5.0.1, pour ajouter un attribut, vous devez avoir déjà votre module personnalisé sous la main.
Puis définir dans l'installeur l'action suivante :

$installer = $this; $installer--->startSetup();

$installer->addAttribute( 'customer', 'cdp', array(
            'group'             => 'Default',
            'type'              => 'text',
            'input'             => 'textarea',
            'label'             => 'Conditions particulières',
            'source'            => '',
            'required'          => false,
            'visible'           => true,
            'user_defined'      => true
    )
);

Mage::getSingleton( 'eav/config' )
    ->getAttribute( 'customer', 'cdp' )
    ->setData( 'used_in_forms', array( 'adminhtml_customer' ) )
    ->save();

$installer->endSetup();

En cas d'erreur comme ceci :
Fatal error: Call to undefined method Mage_Core_Model_Resource_Setup::addAttribute() in mysql4-install-0.0.1.php on line 19

Ajoutez la bonne classe dans le setup de votre config.xml :

Mage_Eav_Model_Entity_Setup
21mai/100

Changer l’adresse de livraison par défaut

Au moment d'entrer ses informations de livraison la case cochée par défaut est "Livrer à une autre adresse", voici comment la changer :

  • Surcharger le Core de Magento en copiant le fichier app/code/core/Mage/Checkout/Block/Onepage/Billing.php dans app/code/local/Mage/Checkout/Block/Onepage/Billing.php
  • Remplacer la fonction isUseBillingAddressForShipping() par celle-ci :
public function isUseBillingAddressForShipping() {
    if (($this->getQuote()->getIsVirtual()) || (!$this->getQuote()->getShippingAddress()->getSameAsBilling())) {
        return true;
    }
    else {
        return false;
    }
}

Et c'est tout.