Jump to content

Generateur de declinaisons


Recommended Posts

Bonjour,

J'ai lu beaucoup de topic concernant le problème du générateur de déclinaison, à savoir que si l'on veut générer beaucoup de déclinaisons pour un produits, prestashop plante, les déclinaisons n'apparaissent ni dans le BO no dans le FO.

Je voulais savoir si quelqu'un avait du neuf par rapport à ce problème, ou si le bug avait été corrigé.

Cordialement, merci d'avance

Link to comment
Share on other sites

ok merci pour l'info.

Et sinon, n'y aurait-il pas la possibilité des options de produits sans que ça soit des déclinaisons de produits.
Je m'explique. En fait, j'ai un produit initial, et suivant la commandes du client je rajoute les options sur le produit de bases.
Donc dans on cas je n'ai pas réellement besoin des déclinaisons, je ne m'en sert que pour voir apparaître sur le FO les options de mes articles.
J'espère avoir été assez clair.

Sinon existe il des parades? Et toi comment à tu gérer le soucis?

Merci

Link to comment
Share on other sites

Cela dépend des hébergement, mais chez un de mes client qui utilise beaucoup les déclinaisonqs son serveur VPS nous permet d'être limiter que de l'ordre de 3 000 déclinaisons, ce qui laisse de la marge même si des fois nous avons tenter des 5 000. Donc nous avons juste cherché à rendre plus cohérentes les déclinaisons pour palier ce problème et en réduire le nombre.

Link to comment
Share on other sites

  • 2 weeks later...

Je suis moi même développeur et je travaille sur se sujet pour mon stage je doit pouvoir générer les déclinaisons de plusieurs produit en même temps je bloque sur un fonction de prestaShop qui ne récupère pas les déclinaisons pour les mettre avec le produit concernée...

J'aimerai bien un petit coup de main car la je commence a sécher sur le problème... c'est dans le fichier AdminAttributeGeneretor dans le postProcess() avec la ligne : if (!is_array(Tools::getValue('options')))

Quand je prend mon générateur de déclinaison de "base" sa fonctionne bien mais quand je veux utiliser le mien qui pourtant est construit pareil a quelque choses prêt mais rien qui doit gêner cette fonction car la base est la même a part que vu que j'ai plusieurs produit je le fait boucler sur cette fonction grâce a une boucle for pour qu'il parcours la liste de produit que j'ai sélectionner Voici mon code :

public function postProcess()
   {
       global $currentIndex;

               if(isset($_POST['generate']))
               {
               $fh = fopen("test.txt", 'a+');
               foreach ($_POST as $nomvar => $valeurvar)
               {
                   fwrite($fh, $nomvar . " : " . $valeurvar . "\n");
               }

               $listeproduit=array();
               $listeproduit= $this->diplayListOfProduct();
               fwrite($fh, "Verification : la variable listeproduit est bien une ". $listeproduit . " et sa taille est de : ".count($listeproduit) . "\n");

               for ($index = 0; $index < count($this->diplayListOfProduct ()); $index++)
               {
                   $this->product = $listeproduit[$index];
                   fwrite($fh, "le produit n°". $index . " a ete selectionner avec succes voici son ID : ".$listeproduit[$index] . "\n");

                       $variabletestIdProduit=  $this->product ;
                       fwrite($fh, "le submit ''generate'' a ete engage le produit :". $variabletestIdProduit . " VA PEUT ETRE EDITER... ". "\n");
                       if (!is_array(Tools::getValue('options')))
                           $this->_errors[] = Tools::displayError('You need to choose at least 1 attribute.');
                       else
                       {
                           $tab = array_values($_POST['options']);
                           fwrite($fh, "valeur de \$tab : ".$tab. "\n");
                           fwrite($fh, "Alias array_values(\$_POST['options']) : ".array_values($_POST['options']). "\n");
                           if (sizeof($tab) AND  Validate::isLoadedObject($this->product))
                           {
                               self::setAttributesImpacts($this->product->id, $tab);
                               $this->combinations = array_values(self::createCombinations($tab));
                               $values = array_values(array_map(array($this, 'addAttribute'), $this->combinations));
                               $this->product->deleteProductAttributes();
                               $res = $this->product->addProductAttributeMultiple($values);
                               $this->product->addAttributeCombinationMultiple($res, $this->combinations);
                           }
                           else
                               $this->_errors[] = Tools::displayError('Unable to initialize parameters, combinations is missing or object cannot be load.');
                       }

//                    elseif (isset($_POST['back']))
//                            Tools::redirectAdmin($currentIndex.'&id;_product='.intval(Tools::getValue('id_product')).'&id;_category='.intval(Tools::getValue('id_category')).'&addproduct;'.'&tabs=2&token;='.Tools::getValue('token'));
                   parent::postProcess();
                   }
               fclose($fh);
           }
   }

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...