2012-06-07 3 views

Répondre

2

Quelle est votre motivation pour avoir de nouveaux statuts de produit? Je pense que c'est un peu risqué de changer cette partie de l'application. Je vous suggère d'ajouter un nouvel attribut et d'utiliser celui-ci à la place de l'attribut 'status' du produit système, cet attribut indique au système si le produit est activé ou désactivé. Je suppose qu'il n'y a rien entre :)

+0

ok thx va probablement le faire alors – Wouter

+0

Mage_Catalog_Model_Product_Status :: STATUS_ENABLED –

1

Surclasse la classe Mage_Catalog_Model_Product_Status dans le dossier local. Ensuite, ouvrez le fichier \ app code \ \ Local \ Mage \ Catalog \ Modèle \ produit \ Status.php

Au sommet du fichier que vous pouvez voir les constantes

const STATUS_ENABLED = 1; 
const STATUS_DISABLED = 2; 

Ajoutez votre statut personnalisé ci-dessous eux, par exemple

const STATUS_SUSPENDED = 3; 

modifier ensuite la fonction getOptionArray

static public function getOptionArray() 
{ 
    return array(
     self::STATUS_ENABLED => Mage::helper('catalog')->__('Enabled'), 
     self::STATUS_DISABLED => Mage::helper('catalog')->__('Disabled'), 
     self::STATUS_SUSPENDED => Mage::helper('catalog')->__('Suspended') 
    ); 
} 

C'est tout. Ne pas oublier d'effacer le cache.

+1

Je pense que c'est assez dangereux. Vous ne savez pas ce qui se passera avec le nouveau statut = 3. Tout le magest de base de magento le sait. – Jaro

+0

je ne vais pas changer le noyau de magento, je vais ajouter un nouvel attribut comme Jaro a dit – Wouter

+1

je ne vois pas en quoi cette solution est dangereuse. le code est juste un override et ne change rien pour celui déjà réglé ... –

Questions connexes