Jump to content

Ajout des personnalisations d'article


jules

Recommended Posts

Bonjour,

Beaucoup de questions tournent autour de la personnalisation sur le forum en ce moment.
J'aimerais faire quelques petites modifs mais je ne comprend pas très bien le mécanisme.

Pour ajouter une personnalisation c'est simple,
1- On enregistre (soumet un formulaire) la personnalisation dans le(s) champ(s) prévu(s),
2- On soumet un second formulaire pour ajouter l'article au panier et c'est à ce moement la que la personnalisation sera présente dans la base de donnée.


Ma question est simple et permettrais à beaucoup de gens de comprendre ce mécanisme,

Ou est stocké la personnalisation entre l'enregistrement de celle-ci et l'ajout de l'article au panier.
Est elle dans les cookies (codé en MD5) ? Une variable quelconque ? Le cache ? Un fichier XML ? (j'essaie d'être vague)

J'ai analysé le code en profondeur et le seul script se rapprochant de la réponse est :

function saveCustomization()
{
   $('#quantityBackup').val($('#quantity_wanted').val());
   $('body select[@id^="group_"]').each(function() {
       $('#customizationForm').attr('action', $('#customizationForm').attr('action') + '&' + this.id + '=' + parseInt(this.value));
   });
   $('#customizationForm').submit();
}



Cependant mes connaissances en javascript sont minimes et ne me permettent pas de vraiement avancer.
Quelqu'un pourrais il m'éclairer ?

J'espere avoir été clair :D

Link to comment
Share on other sites

Il y a également l'apparition d'un paramètre d'url : group_[0-9]=[0-9]

Ce paramètre est relié à la table _attribute

Mon problème est de comprendre le mécanisme de l'ajout des personnalisations d'articles qui se fait en deux étapes.
Pourquoi devoir valider deux formulaires au lieu d'un seul ?

Quelqu'un pourrait il me donner une réponse clair

Link to comment
Share on other sites

Il y a également ceci,

utilisation des cookies :

$textFields = $cookie->getFamily('textFields_'.intval($id_product).'_');



et l'INSERT dans la bdd :

    public function _addCustomization($id_product, $id_product_attribute, $files, $textFields, $quantity)
   {
       if (!is_array($textFields))
           die(Tools::displayError());
       $query = 'INSERT INTO `'._DB_PREFIX_.'customized_data` (`id_customization`, `type`, `index`, `value`) VALUES ';
       if (count($textFields))
           foreach ($textFields AS $key => $textFieldValue)
           {
               $tmp = explode('_', $key);
               $query .= '('.intval($id_customization).', '._CUSTOMIZE_TEXTFIELD_.', '.$tmp[2].', \''.$textFieldValue.'\'), ';
           }
       $query = rtrim($query, ', ');
       if (!$result = Db::getInstance()->Execute($query))
           return false;
       /* Deleting customized informations from the cart (we just copied them inside the db) */
       return Cart::deleteCustomizationInformations(intval($id_product));
   }

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