Question

J'ai écrit un script qui recherche des produits sans catégories actives et désactive les produits. C'était en ce qui concerne notre client éteignant de vieilles catégories, mais les produits sont toujours consultables. Nous avons pensé qu'il était préférable de définir leur statut sur des personnes handicapées en vrac.

Donc, afin de faire cela, nous appelons cette ligne:

mage :: getmodel ('Catalogue / produit_status') -> UpdateProduceStatus ($ PROD-> getid (), $ store_id, mage_catalog_model_product_status :: status_disabled);

Donc, une semaine plus tard, nous devons réactiver un produit. Je me connecte au panneau d'administration, et le statut est toujours "activé". Il m'a fallu exécuter mon script à nouveau dur codant l'ID pour l'obtenir à nouveau dans le magasin:

mage :: getmodel ('Catalogue / produit_status') -> updateProduceStatus (370, $ Store_id, mage_catalog_model_product_status :: status_enabled);

Evemioulsy Mon intention était que le statut du panneau d'administration soit désactivé, puis tout utilisateur avec accès admin serait en mesure de remettre ces produits. Donc, je demande à la communauté, que font les lignes ci-dessus? Et comment puis-je faire ce que je voulais.

Était-ce utile?

La solution

C'est une sorte de question de deux parties.

Tout d'abord, vous dites:

C'était en ce qui concerne notre client éteignant de vieilles catégories, mais les produits sont toujours consultables.

au lieu de "désactiver", je créerais un script qui modifie la visibilité de "Catalogue, de recherche" pour simplement "catalogue"

Ce code ressemblerait à quelque chose comme ceci:

$productId = ???;
$product = Mage::getModel('catalog/product');
$product->load($productId);
$product->setVisibility(2);
$product->save();

Vous auriez également besoin de code pour rechercher et retourner la visibilité dans l'événement qu'elle retourne dans une catégorie.

Remarque: Comme vous avez plusieurs sites Web, vous devrez peut-être ajouter du code spécifiquement à un identifiant de site Web. De plus, depuis que vous avez de multiples administrations de produits de produit en admins, un enregistreur administrateur serait une excellente idée depuis que j'ai entendu des histoires d'horreur sur les utilisateurs de l'administration aléatoire modifiant les données de produits.

La deuxième partie de la question est

Que font les lignes ci-dessus?

Le code est désactivé et active les produits, mais il semble que vous couriez dans une question. Il existe également d'autres moyens de le faire aussi, cependant ce que vous avez posté ci-dessus est le moyen le plus courant (surtout sur SE). Les choses que je voudrais regarder est si votre attribut «statut» est une variable globale ou de site Web. Par défaut, "site web". Je vais jeter un oeil à ce que lorsque vous êtes dans le panneau Admin, si vous êtes sur la vue par défaut ou si vous êtes dans la vue spécifique du site Web. Le code ci-dessus semblera toujours être "activé" dans la vue par défaut, mais il sera désactivé dans la vue du site Web.

Je créerais un journal personnalisé dans votre script pour voir écrire quel produit a été modifié et quand il a été changé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top