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');
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);
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.
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
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.