Jump to content

comment garder le customizationId d'un produit sans avoir de champ texte de personalisation ?


CyBeRCeD

Recommended Posts

Bonjour, j'utilisais un champ texte de personalisation pour garder une référence d'un produit personnalisé une fois ce dernier dans mon panier. Jusqu'à ce que je découvre que Prestashop gérait tout seul un "customizationId" pour chaque produit qui s'incrémentait tout seul (on peut le voir dans le lien de suppression ou d'ajout du produit) Donc j'ai refais tout mon système confiant en pensant avoir trouvé la solution la plus simple et la plus efficace de mémoriser certaines informations du produit pour enregistrer des informations dans ma Bdd en indiquant comme id ce "customizationId".

J'ai donc supprimé mes champs de personnalisation "TextFields" et là :o plus de "customizationId".
Existe t'il donc un moyen afin de conserver la gestion de ce customizationId sans avoir de champ de personnalisation ?

Merci d'avance pour votre aide. J'espère cette fois-ci que quelqu'un pourra m'apporter une réponse ce qui est très rarement le cas :(

Link to comment
Share on other sites

:'( Il doit bien y avoir un bout de code à modifier pour que cet attribut de customization n'apparaisse pas que si il existe un champ de personnalisation rempli ?

Dans product.php il y a bel et bien cette fonction :

function textRecord(Product $product, Cart $cart)
{
   global $errors;

   if (!$fieldIds = $product->getCustomizationFieldIds())
       return false;
   $authorizedTextFields = array();
   foreach ($fieldIds AS $fieldId)
       if ($fieldId['type'] == _CUSTOMIZE_TEXTFIELD_)
           $authorizedTextFields[intval($fieldId['id_customization_field'])] = 'textField'.intval($fieldId['id_customization_field']);
   $indexes = array_flip($authorizedTextFields);
   foreach ($_POST AS $fieldName => $value)
       if (in_array($fieldName, $authorizedTextFields) AND !empty($value))
       {
           if (!Validate::isMessage($value))
               $errors[] = Tools::displayError('Invalid message');
           else
               $cart->addTextFieldToProduct(intval($product->id), $indexes[$fieldName], $value);
       }
       elseif (in_array($fieldName, $authorizedTextFields) AND empty($value))
           $cart->deleteTextFieldFromProduct(intval($product->id), $indexes[$fieldName]);
}



Mais apparemment ce n'est pas ici qu'il est indiqué d'ajouter le custom_id s'il existe un ou plusieurs texfields.

Si quelqu'un aurait la gentillesse de se pencher ne serait-ce quelques secondes sur mon problème...

Merci encode d'avance

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