Jump to content

Référence produit au lieu de l'ID


Recommended Posts

Merci de preter attention à mon problème,
pour ce qui est du up du topic, c'est juste que j'ai posé une question il y a 3 ou 4 jours et toujours pas de réponse !

je vais essayer de m'expliquer plus clairement !

voilà, j'ai un metaconfigurateur qui fait un tri sur marque, modele et enfin pièce. La piece trouvée a une reference XXX.
Quand je clique sur le lien pour afficher l'article dans ma boutique, le lien est sous forme: ...... product.php?partno=XXX mais quand je clique il me dit produit nom trouvé ce qui est normal puisque quand je regarde un produit sur prestashop celui-ci est identifié en ....product.php?id=1234 c'est à dire que le produit correspond à un id=. mais je souhaite faire appel à la référence produit et non à l'ID produit. J'espère avoir été assez clair et qu'une solution existe.
Merci

Link to comment
Share on other sites

Du coup, tu veux en clair récupérer les produits par leurs références ?
Mais tous les liens vers tes produits sont de la forme product.php?id_product=XXX.
En clair, chez toi, l'ID correspond à la référence ?

Si c'est le cas, il faut modifier plutôt la Class Product.php qui construit le produit en fonction de l'ID. Mais je ne suis pas sur d'avoir compris .. ?

Link to comment
Share on other sites

en fait tout les produits sont créé par prestashop avec un id automatique. pas de problème pour ça ! Mon problème c'est que je fait appel un un programme spécial de recherche sur 50 000 produits qui ne fait appel lui qu'à la référence du produit et non à l'id du produit. Que dois-je modifier dans product.php pour que l'on puisse avoir une requette qui fait appel à la référence du produit!

Link to comment
Share on other sites

bizarre, j'ai repondu hier et cela n'apparait pas !
Bon, je nage totalement.
J'ai bien compris qu'il y a une modification à faire dans product.php.
Je souhaite pouvoir faire autant appel à l'id qu'à la reference. Ca urge ! il doit bien y avoir quelqu'un capable de me dire ce qu'il faut rajouter afin de faire appel à cette foutu référence !
Je suis totalement bloqué.

Link to comment
Share on other sites

C'est assez simple, dans Product.php, dans le dossier /classes, tu as ton ce qu'on appelle ton constructeur (fonction _contruct), qui fait appel à la fonction constructeur de la classe dont Product hérite.
On le voit en haut du fichier, la classe Product "étend" la classe Object Model, du coup tu vas dans le fichier ObjectModel.php du dossier /classes pour récupérer le constructeur, enfin pour voir à quoi cela ressemble !

Du coup, tu vois que tu as besoin d'une variable identifier, et de l'id_product.

Il suffit juste de changer, ligne 194 :
protected $identifier = 'id_product';

En remplaçant id_product par reference, et cela devrait être bon.

Link to comment
Share on other sites

merci de ta réponse mais cela ne fonctionne pas. En fait, j'ai testé de mettre divers references produits.
Résultat: si la reference du produit est XXX pas de soucis il trouve mon produit, mais si la ref est XXX.XXX cela ne fonctionne pas !
Donc que faut-il modifier dans le moteur de recherche interne pour qu'il trouve des reference intégrant des "points" ?
J'ai appelé Prestashop mais le tech ne savait pas trop sauf me proposer une assistance à: 360€ pour 3 h! Hors budget pour moi !

Link to comment
Share on other sites

Oui c'est l'inconvénient de l'Open Source gratuit... Il en faut bien quand même !
Le souci est simple, il vient du fait que dans ObjectModel.php, tu as un : intval($id), du coup, il attend un chiffre à tout prix.

Tu peux tester le identifier, cela devrait marcher :
dans le fichier ObjectModel.php, ligne 89, ajouter :

$this->identifier == 'reference' ? '' : $id = intval($id);



Ligne 94, remplacer par :

.' WHERE a.`'.$this->identifier.'` = '.$id);



En clair, si tu récupères ta référence, ton $id ne sera pas transformé en entier. A tester.

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