Jump to content

Activer ou désactiver les produits d’une catégorie directement depuis la page catégorie


Recommended Posts

Bonjour,

Quand on a quelques centaines de produits et un catalogue en expansion constante, il est très difficile de modifier les produits appartenant à une catégorie. C'est fastidieux car il faut faire ça produit par produit. Serait il possible de faire apparaitre sur la page catégorie au moins un bouton on/off ou une case à cocher pour (dé)sélectionner les produits appartenant à cette catégorie

dur ? impossible ?

MERCI

Link to comment
Share on other sites

Bonjour,

Quand on a quelques centaines de produits et un catalogue en expansion constante, il est très difficile de modifier les produits appartenant à une catégorie. C'est fastidieux car il faut faire ça produit par produit.

Link to comment
Share on other sites

  • 1 year later...

Je suis en train de travailler sur un module de ce genre mais avec encore plus de fonction dont l'edition des reduction avec la date gestion des taux de marge etc...Je bloque sur le filtrage des catégorie sous catégorie dans mon tableau si un admin ou un developpeur a comprit comment été assigné les id_category et pourvoir les mettre dans 3 listes déroulante sa m'aiderait beaucoup car je bloque un peu sur cette fontion...

Link to comment
Share on other sites

Voila je t'ai mit 2 imprim' écran qui j'espère devrait t'aider...

Alors j'ai mes catégorie : - tête de lettre, flyers, carte postalle, etc....

Ensuite viennent des sous catégorie qui dépende selon les catégories ensuite encore une ou des sous sous catégories qui dépende des sous catégories...Mon vrai problème arrive, toute ces catégorie, sous catégorie et sous sous catégorie sont dans la même table dans ma BDD et c'est apparemment le fichier AdminAttributesGenerator.php qui gère sa, mais impossible pour moi de comprendre le code de ce fichier ( c'est pas que je ne connait pas le php mais il y a plein de notion de codage qui m'est encore obscur étant en stage j'essaye d'en apprendre au maximum mais c'est dur :( )

class AdminAttributeGenerator extends AdminTab
{
   private $combinations = array();
   private $product;

   private function addAttribute($arr, $price = 0, $weight = 0)
   {
       foreach ($arr AS $attr)
       {
           $price += floatval($_POST['price_impact'][intval($attr)]);
           $weight += floatval($_POST['weight_impact'][intval($attr)]);
       }
       if ($this->product->id)
       {
           return (array(
                   'id_product' => intval($this->product->id),
                   'price' => floatval($price),
                   'weight' => floatval($weight),
                   'ecotax' => 0,
                   'quantity' => intval($_POST['quantity']),
                   'reference' => pSQL($_POST['reference']),
                   'default_on' => 0));
       }
       return array();
   }

   static private function createCombinations($list)
   {
       if (sizeof($list) <= 1)
           return sizeof($list) ? array_map(create_function('$v', 'return (array($v));'), $list[0]) : $list;
       $res = array();
       $first = array_pop($list);
       foreach ($first AS $attribute)
       {
           $tab = self::createCombinations($list);
           foreach ($tab AS $toAdd)
               $res[] = is_array($toAdd) ? array_merge($toAdd, array($attribute)) : array($toAdd, $attribute);
       }
       return $res;
   }



Voila je croit que sa vient de la...

Ce qui serait nickel c'est que j'arrive a faire une sorte de filtre en 3 menu déroulant pour le BO du genre on sélectionne tel Catégorie avec tel déclinaisons, puis celle ci etc...Jusqu'à pouvoir afficher les produits correspondant dans le tableau ci dessous.

En espérant t'avoir mieux éclairer j'espère que tu pourra m'aider car la je bloque complètement...

29122_VXCSeApURECKd0h9LJUb_t

29123_3dbwdgXHvUd1zIOXuWyu_t

Link to comment
Share on other sites

Bon je ne suis pas développeur ! c'est cette table (piece jointe)
Ce que je sais c'est que la catégorie 0 c'est l'accueil ensuite c'est toute des catégories qui sont définié par rapport à celle ci non ?
Pour l'affichage je crois qu'il faut que tu vois du coté du moteur Smarty
Si j'ai bien compris ta question ! Désolé pour ma neuneuitude.

a+

29129_RGXrWVGfdkXoDTVBTE0g_t

Link to comment
Share on other sites

euh dsl je voit pas de piece jointe...mais sinon dit moi le nom de la table je trouverai t'inquiete

Ok pour la catégorie 0 j'ai déja "isolé" l'id de mes catégories et tout mais je peux pas les ecrire en dur dans le code car sinon le code ne sera valable que pour cette boutique et je voudrait un truc qui fonctionne partout...

Pour l'affichage j'ai vu avec un chef de projet a mon boulot il m'as dit Ajax pour l'affichage sa evite le rechargement de la page ce qui rend le traitement plus long.Et sa donne un meilleur rendu ^^

T'inquiete pas tu es l'un des seul qui daigne repondre a mon probleme donc même s'il faut que je t'explique longtemps pour que tu comprenne bien mon probleme c'est pas grave de toute facon j'arrive plus a avancer...

Link to comment
Share on other sites

ok je voit un peu mieux alors c'est vraiment cette table la qu'il me manqué abusé c'était juste sous mes yeux...

En fait le level_depth :

-1 correspond a la catégorie grand mere(flyers, tete de lettre, plaquette...)
-2 a la mere(déclinaison n°1, n°2...)
-3 a la fille(la déclinaison de la déclinaison)
-4 a la petite fille( LES PRODUITS !!!!! )

Alors maintenant il faut que j'associe chaque ID_categorie a son level_depth en l'affichant par son nom dans ma liste déroulante numero 1....

Enfin je peux avancer MERCI!!!!!!

Je te tient au courant au fur et a mesure que j'avance au moins si je suis bloquer je sais a qui demander maintenant (Comme quoi pas besoin d'etre developpeur pour comprendre ^^)


Merci encore ++

Link to comment
Share on other sites

Bon est bien j'ai avancé un peu maintenant un autre probleme (si tout marche du premier coup se serait pas marrant pas vrai?)

J'arrive bien a avoir mes catégorie dans ma premiere liste avec une requete sql le probleme c'est que je n'arrive pas a comprendre comment recupere la valeur de ma 1ere liste afin d'afficher la liste des sous catégorie correspondante dans ma 2eme liste déroulante...Voici mon code j'ai peut etre une erreur qui s'y est glissé mais je trouve pas....

Test de select dynamiques
               <form method="post" id="testForm1"><br/>
';


//Creation de la liste déroulante "liste_cat" qui contiendra les catégories
               echo'--Choisissez une categorie--';

                   //Requete Sql pour trouver les catégories dans la table
                   $sql = "SELECT ps_category.`id_category` , `link_rewrite`\n"
                   . "FROM `ps_category` , `ps_category_lang`\n"
                   . "WHERE level_depth =1\n"
                   . "AND id_lang =2\n"
                   . "AND ps_category.id_category = ps_category_lang.id_category\n"
                   . "LIMIT 0 , 30";
                   $req=mysql_query($sql) or die(mysql_error());

                   //On met les 'link_rewrite' dans la liste déroulante des catégories
                   while($cat = mysql_fetch_array($req))
                   {
                       echo '' .$cat['link_rewrite']. '';
                   }
                   echo '<input type="image" src="../../btn_4.png" border="0" name="submit" alt="Go">';
                   $cat_for_souscat=document.getElementById('liste_cat').selectedIndex;
                   $fh = fopen("test.txt", 'a+');
                   fwrite($fh, "cat_for_sousca : " );
                   fwrite($fh, $cat_for_souscat."\n");
                   fwrite($fh, " et cat :  ");
                   fwrite($fh, $cat."\n");
                   fclose($fh);
               echo '


';



//Creation de la liste déroulante "liste_souscat" qui contiendra les sous catégories
               echo '--Choisissez une sous-categorie--';

                   //Requete Sql pour trouver les Sous_Catégorie de la catégorie selectionné
                   $sql = "SELECT ps_category.`id_category` , `link_rewrite`, `id_parent` FROM `ps_category` , `ps_category_lang`
                   WHERE level_depth =2 AND id_lang =2 AND ps_category.id_category = ps_category_lang.id_category";
                   $req=mysql_query($sql) or die(mysql_error());

                   //On met les 'link_rewrite' dans la liste déroulante des catégories
                   while($sous_cat = mysql_fetch_array($req))
                   {
                       echo '' .$sous_cat['link_rewrite']. '';
                   }
               echo '


';



//Creation de la liste déroulante "liste_sous_souscat" qui contiendra les sous sous catégories
               echo '--Choisissez une sous-sous-categorie--';

                   //Requete Sql pour trouver les Sous_sous_Catégorie de la Sous_catégorie selectionné
                   $sql = "SELECT ps_category.`id_category` , `link_rewrite`\n"
                   . "FROM `ps_category` , `ps_category_lang`\n"
                   . "WHERE level_depth =3\n"
                   . "AND id_lang =2\n"
                   . "AND ps_category.id_category = ps_category_lang.id_category\n"
                   . "LIMIT 0 , 30";
                   $req=mysql_query($sql) or die(mysql_error());

                   //On met les 'link_rewrite' dans la liste déroulante des catégories
                   while($sous_sous_cat = mysql_fetch_array($req))
                   {
                       echo '' .$sous_sous_cat['link_rewrite']. '';
                   }
               echo'</form>';



Bon et pour comprendre j'ai essayer de mettre

                   $fh = fopen("test.txt", 'a+');
                   fwrite($fh, "cat_for_sousca : " );
                   fwrite($fh, $cat_for_souscat."\n");
                   fwrite($fh, " et cat :  ");
                   fwrite($fh, $cat."\n");
                   fclose($fh);


mais si je mets cette lige la : $cat_for_souscat=document.getElementById('liste_cat').selectedIndex; je n'est plus que 1 seul liste et le reste de ma page ne charge pas....

Link to comment
Share on other sites

Bon j'ai reussi a avancer un petit peu...J'ai reussi a faire 2 liste deroulantes liées en AJAX qui reagisse plutot bien pour le moment maintenant je ne sait pas ou mettre ce code dans mon fichier php ou alors si je doit creer un nouveau fichier php je ne sais pas ou le mettre....

En esperant qu'un âme charitable repasse par la ce serait cool....

Merci bonne journée

Link to comment
Share on other sites

Bonjour,

Quand on a quelques centaines de produits et un catalogue en expansion constante, il est très difficile de modifier les produits appartenant à une catégorie. C'est fastidieux car il faut faire ça produit par produit. Serait il possible de faire apparaitre sur la page catégorie au moins un bouton on/off ou une case à cocher pour (dé)sélectionner les produits appartenant à cette catégorie

dur ? impossible ?

MERCI


Bonjour,

Vous trouverez un module gratuits qui permets de faire cela facilement ICI

Cordialement.
Link to comment
Share on other sites

Merci c'est sympa d'etre passé nous voir mais je suis en train d'essayer de développer un modules qui permet l'edition des prix, reduction (avec date de debut et date de fin) + après quelque onglet selon le temps qu'il me restera avec la possibilité de changer les images, changer les taux de marge, cahnger le poids des commande, changer les balise meta les clefs SEO et les balises title...

Tout ça dans different onglets et de facon très clair et intuitif... Donc tout mes onglets seront gerer par 3 listes deroulantes qui serviront de "filtres" pour accéder au produit dans les diverses catégories.

En esperant avoir été assez clair ;)

ps: J'ai déja regarder dans les modules payants et je suis partit sur la base de bulkproducts mais en version vraiment modifié ^^

Link to comment
Share on other sites

Merci c'est sympa d'etre passé nous voir mais je suis en train d'essayer de développer un modules qui permet l'edition des prix, reduction (avec date de debut et date de fin) + après quelque onglet selon le temps qu'il me restera avec la possibilité de changer les images, changer les taux de marge, cahnger le poids des commande, changer les balise meta les clefs SEO et les balises title...

Tout ça dans different onglets et de facon très clair et intuitif... Donc tout mes onglets seront gerer par 3 listes deroulantes qui serviront de "filtres" pour accéder au produit dans les diverses catégories.

En esperant avoir été assez clair ;)

ps: J'ai déja regarder dans les modules payants et je suis partit sur la base de bulkproducts mais en version vraiment modifié ^^


Il y à un module sympa pour 12€ pour les réductions que j'utilise. Il est très bien fait à mon gout et peux vous inspirer (en ne voulant pas marché sur vos plates-bandes bien sur, je n'ai rien à y gagner et n'interviendrai plus si tel est votre souhait) ICI

Cordialement.
Link to comment
Share on other sites

en ne voulant pas marché sur vos plates-bandes bien sur, je n’ai rien à y gagner et n’interviendrai plus si tel est votre souhait


Ne vous inquiéter pas se ne me dérange pas d'avoir des commentaires sur mon travail j'expliqué juste mon projet de stage et en aucun cas je n'ai voulu etre agressif ou desobligeant....C'est sympa d'etre passé sa montre au moins que quelques personne passent par ici ^^
Link to comment
Share on other sites

C'est vrai qu'ils sont pas mal ses modules mais je suis obliger de les faire moi même puisque c'est mon projet de stage et l'interface qu'il a n'est pas celle que je souhaite certes il y a beaucoup de choses qui ressemble beaucoup mais j'aimerai pouvoir faire encore plus pousser comme module et beaucoup plus complet....(sans critiquer ce que Henri Baeyens a fait bien sur)

Si vous pouviez m'aider pour mon code j'arrive toujours pas a avoir mes sous catégorie dans ma 3eme liste....

<?php
// Configuration MySQL
$host_db = "localhost";
$user_db = "root";
$password_db = "";
$bdd_db = "test";

// connexion a la base de donnees et selection de la table
$connect_db = mysql_connect($host_db,$user_db,$password_db);
mysql_select_db($bdd_db,$connect_db);

require_once("../xajax_0.2.4/xajax.inc.php");

function SelectSousSouscat($souscatid)
{
   $options2="";
   $objResponse2 = new xajaxResponse();
   $sql="SELECT ps_category.`id_category` , `link_rewrite`\n"
                   . "FROM `ps_category` , `ps_category_lang`\n"
                   . "WHERE level_depth =3\n"
                   . "AND id_lang =2\n"
                   . "AND ps_category.id_category = ps_category_lang.id_category\n"
                   . "AND ps_category.`id_parent` = '".$souscatid."'";
   $req=mysql_query($sql);
   while ($sousouscat = mysql_fetch_array($req))
   {
       $options2 .=''.$sousouscat['link_rewrite'].'';
   }
   $objResponse2->addAssign("liste_sousouscat","innerHTML",$options2);
   return $objResponse2->getXML();
}


function SelectSouscat($catid)
{
   $options="";
   // créé un nouvel objet permettant d'envoyer une réponse au côté client
   $objResponse = new xajaxResponse();
   // on selectionne les sous-catégorie en fonction de l'id de la catégorie mère
   $sql="SELECT ps_category.`id_category` , `link_rewrite`\n"
                       . "FROM `ps_category` , `ps_category_lang`\n"
                       . "WHERE level_depth =2\n"
                       . "AND id_lang =2\n"
                       . "AND ps_category.id_category = ps_category_lang.id_category\n"
                       . "AND ps_category.`id_parent` = '".$catid."'";
   $req=mysql_query($sql);
   while ($souscat = mysql_fetch_array($req))
   {
       // on place toutes les sous-catégories dans des options valables pour la liste SELECT
       $options .= ''.$souscat['link_rewrite'].'';
   }

   // l'Ajax remplacera le innerHTML (html intérieur) de la liste_souscat pour y mettre $options
   $objResponse->addAssign("liste_souscat","innerHTML",$options);
   // envoie la réponse en XML
   return $objResponse->getXML();
}

$xajax = new xajax();
$xajax->debugOn();
$xajax->registerFunction("SelectSouscat");
$xajax->registerFunction("SelectSousSouscat");
$xajax->processRequests();

?>

<html >
<head>
<title>Test de select dynamiques</title>
<?php $xajax->printJavascript("../xajax_0.2.4") ?>
</head>
<body>

Test de select dynamiques

<form id="testForm1">
Choisissez une catégorie : 

<?php
$sql = "SELECT ps_category.`id_category` , `link_rewrite`\n"
                       . "FROM `ps_category` , `ps_category_lang`\n"
                       . "WHERE level_depth =1\n"
                       . "AND id_lang =2\n"
                       . "AND ps_category.id_category = ps_category_lang.id_category\n";
$req=mysql_query($sql);
while($cat = mysql_fetch_array($req))
{
echo '' . $cat['link_rewrite'] . '';
}
?>



Choisissez une sous-catégorie : 




Choisissez une sous-sous-catégorie : 

</form>

</body>
</html>



Avec le debugon() sous mozzila j'ai sa :

Xajax debug output

Tue Sep 07 2010 11:44:29 GMT+0200: Element with the id "liste_sousouscat" not found.

Tue Sep 07 2010 11:44:29 GMT+0200: Element with the id "liste_sousouscat" not found.

Tue Sep 07 2010 11:44:29 GMT+0200: Received: <?xml version="1.0" encoding="utf-8" ?><![CDATA[quadri-rectoquadri-recto-1-couleur-verso]]>

Tue Sep 07 2010 11:44:28 GMT+0200: Calling SelectSousSouscat uri=http://localhost/Ajax/ajax.php (post:xajax=SelectSousSouscat&xajaxr=1283852668703&xajaxargs;[]=11)

Tue Sep 07 2010 11:44:28 GMT+0200: Initializing Request Object..

Tue Sep 07 2010 11:44:28 GMT+0200: Starting xajax...


Merci!!!!

Link to comment
Share on other sites

Bonjour,

Vous trouverez un module gratuits qui permets de faire cela facilement ICI

Cordialement.


Ce serait plus reglo de donner le lien vers la page de l'auteur du module que tu cites plutot que de donner un lien vers ton site.

Voir donc le site de Henri Baeyens qui partage de très bons modules:

http://www.henribaeyens.com/10ver/filez/


Jolvil,

Si c'est à moi que vous vous adressez?, au lien que je donne sur ma boutique, le développeur y est mentionné ainsi que son lien (dans ce cas) pour luis faire un don paypal (pour dire vrai je doute que quelqu'un y aille mai il n'irons pas plus depuis le site de l'auteur, malheureusement).

Aussi, il peut y avoir un intérêt de passer par mon site, étant donné que je recense un maximum de modules compatibles PS 1.3 et que je les teste personnellement sur mon site, qui tourne par ailleurs avec les modules qui y sons disponibles.

Si un l'auteur d'un des module que je met à disposition s'en plaignait, je le supprimerais sans délai!

Je ne voie dès lors pas ce qui n'est pas réglo dans cette démarche???

Cordialement.
Link to comment
Share on other sites

Ok bon j'ai reussi a trouver ce qui aller pas c'est la ligne

$objResponse2->addAssign("liste_sous_souscat","innerHTML",$options2);


et

Choisissez une sous-sous-catégorie : 



Qu'il fallait changer et mettre :

$objResponse2->addAssign("liste_sous_souscat","innerHTML",$options2);


et

Choisissez une sous-sous-catégorie : 



Par contre la je me rend compte que dès que j'ai selectionner la catégorie il me met la sous catégorie dans la liste mais je suis obliger de changer la selection pour revenir a la premiere si je veux la premiere sous catégorie..
La solution serait de mettre des champs vide mais il s'efface dès que je choisi une catégorie...

Link to comment
Share on other sites

C'est bon j'ai trouver la solution...Tout bete en faite mais il fallait y penser ^^

$options2='Choisissez une sous sous categorie';


       $options='Choisissez une sous categorie';



En fait il ne fallait pas initialiser les options a "" mais a une option value avec le nom que l'on veut et la magie il ne s'en va plus....

Je repasse par la si j'ai besoin meme si j'ai l'impression de parler un peu tout seul dernierement...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...