Jump to content

problème sur création catégorie


Recommended Posts

Bonjour à la communauté!

Voilà j'ai un souci que je n'arrive pas à résoudre, donc j'aurai besoin de votre aide svp :)

Je dois créer un catégorie dans mon eshop qui ne sera pas visible sur le site. Je m'explique, je vais créer une campagne google ad, et il me faut un lien qui pointe sur quelques produits bien spécéfique, que je vais mettre dans une catégorie exemple" vraque", et qui ne soit pas visible sur le site. Juste l'url sera renseigné chez google, et le client qui arrive sur mon shop ne verra pas cette catégorie "vraque". Seul le client qui aura cliqué sur le lien dans la pub google arrivera sur cette catégorie ...

En espérant avoir été clair !

 

MERCI beaucoup par avance !

Link to comment
Share on other sites

Bonjour à la communauté!

Voilà j'ai un souci que je n'arrive pas à résoudre, donc j'aurai besoin de votre aide svp :)

Je dois créer un catégorie dans mon eshop qui ne sera pas visible sur le site. Je m'explique, je vais créer une campagne google ad, et il me faut un lien qui pointe sur quelques produits bien spécéfique, que je vais mettre dans une catégorie exemple" vraque", et qui ne soit pas visible sur le site. Juste l'url sera renseigné chez google, et le client qui arrive sur mon shop ne verra pas cette catégorie "vraque". Seul le client qui aura cliqué sur le lien dans la pub google arrivera sur cette catégorie ...

En espérant avoir été clair !

 

MERCI beaucoup par avance !

ça n'est pas possible en l'état car une catégorie est soit active, soit inactive.

 

Si elle est active, elle est vue par tout le monde et à moins de mettre des {if $category->id != x } dans tous les tpl du front et de créer une page spéciale pour cette catégorie, vous allez avoir du mal..

 

Donc soit vous restreignez l'accès à un groupe particulier si les personnes qui recoivent cette promo sont déjà clients, soit vous créez une 2ème boutique avec une url virtuelle avec tous les stocks et catégories en commun sauf celle qui fait l'objet de la campagne.

Du coup:

url principale : http://maboutique.fr

url privée http://maboutique.fr/special

 

En configurant votre multiboutique correctement, cela fonctionnera.

Link to comment
Share on other sites

ça n'est pas possible en l'état car une catégorie est soit active, soit inactive.

 

Si elle est active, elle est vue par tout le monde et à moins de mettre des {if $category->id != x } dans tous les tpl du front et de créer une page spéciale pour cette catégorie, vous allez avoir du mal..

 

Donc soit vous restreignez l'accès à un groupe particulier si les personnes qui recoivent cette promo sont déjà clients, soit vous créez une 2ème boutique avec une url virtuelle avec tous les stocks et catégories en commun sauf celle qui fait l'objet de la campagne.

Du coup:

url principale : http://maboutique.fr

url privée http://maboutique.fr/special

 

En configurant votre multiboutique correctement, cela fonctionnera.

Merci Beaucoup pour votre réponse rapide et claire!

Étant sur prestashop 1.4.9, je n'ai pas le mode multiboutique....

Vous me confirmez que je peux faire ça sur un produit par contre ? Ne pas l'activer dans le Front Office, mais communiquer l'url pour les clients pour qu'ils puissent passer commande ?

 

Merci encore

Merci Beaucoup pour votre réponse rapide et claire!

Étant sur prestashop 1.4.9, je n'ai pas le mode multiboutique....

Vous me confirmez que je peux faire ça sur un produit par contre ? Ne pas l'activer dans le Front Office, mais communiquer l'url pour les clients pour qu'ils puissent passer commande ?

 

Merci encore

Link to comment
Share on other sites

ça n'est pas possible en l'état car une catégorie est soit active, soit inactive.

 

Si elle est active, elle est vue par tout le monde et à moins de mettre des {if $category->id != x } dans tous les tpl du front et de créer une page spéciale pour cette catégorie, vous allez avoir du mal..

 

Donc soit vous restreignez l'accès à un groupe particulier si les personnes qui recoivent cette promo sont déjà clients, soit vous créez une 2ème boutique avec une url virtuelle avec tous les stocks et catégories en commun sauf celle qui fait l'objet de la campagne.

Du coup:

url principale : http://maboutique.fr

url privée http://maboutique.fr/special

 

En configurant votre multiboutique correctement, cela fonctionnera.

J'avais pensé au groupe, mais les clients qui auront cette url seront des clients inconnu dans ma BDD... donc pas possible !

Link to comment
Share on other sites

Merci Beaucoup pour votre réponse rapide et claire!

Étant sur prestashop 1.4.9, je n'ai pas le mode multiboutique....

Vous me confirmez que je peux faire ça sur un produit par contre ? Ne pas l'activer dans le Front Office, mais communiquer l'url pour les clients pour qu'ils puissent passer commande ?

 

Merci encore

 

Non le problème est le même, Prestashop vérifie que le produit est actif avant d'afficher quoi que ce soit.

 

reste la possibilité des bons de réductions avec le code dans le mail, genre 50€ sur la boutique et 10€ pour les destinataires du mail

Link to comment
Share on other sites

Bonjour,

 

Je crois que vous cherchez les complications.

 

L'idée est que la catégorie soit accessible mais pas listée sur le site.

Dans ce cas, il s'agit d'une catégorie normale, il faut overider les fonctions de la classe category qui renvoient des listes de catégories pour y exclure une catégorie en particulier.

Ça nécessite donc juste la création d'un petit module.

 

La catégorie reste donc théoriquement accessible a tous, théoriquement, en pratique qui va chercher a accéder aux catégories 'cachées' ? personne.

Donc ça me parait le meilleur compromis travail/efficacité.

Link to comment
Share on other sites

Bonjour,

 

Je crois que vous cherchez les complications.

 

L'idée est que la catégorie soit accessible mais pas listée sur le site.

Dans ce cas, il s'agit d'une catégorie normale, il faut overider les fonctions de la classe category qui renvoient des listes de catégories pour y exclure une catégorie en particulier.

Ça nécessite donc juste la création d'un petit module.

 

La catégorie reste donc théoriquement accessible a tous, théoriquement, en pratique qui va chercher a accéder aux catégories 'cachées' ? personne.

Donc ça me parait le meilleur compromis travail/efficacité.

Alors là je rigole :)

 

Déjà l'override, je ne suis pas trop pour, car leur gestion n'est pas optimisée. Si un autre module override cette même classe, c'est le bazar assuré, et encore pire lors de la désinstall qui laisse tout en l'état, mais passons...

 

Deuxio, si votre override exclue une catégorie, vous m'expliquerez comment vous la récupérez (et les produits associés) dans le fichier tpl...

 

Vu que les url sont fictives et construites à la volée, je ne vois pas comment accéder à cette catégorie?

Link to comment
Share on other sites

Alors là je rigole :)

Pourquoi rire ? Tu ne devrais pas te moquer, ça n'est pas une attitude constructive.

 

Déjà l'override, je ne suis pas trop pour, car leur gestion n'est pas optimisée. Si un autre module override cette même classe, c'est le bazar assuré, et encore pire lors de la désinstall qui laisse tout en l'état, mais passons...

Mais non , pourquoi passer ? Si une fonction est overridé, alors à l'installation du module prestashop va générer une erreur et la fonction ne sera pas overridé.

A la désinstall la fonction overridé est supprimée.

Aucun bazar.

 

Deuxio, si votre override exclue une catégorie, vous m'expliquerez comment vous la récupérez (et les produits associés) dans le fichier tpl...

J'ai écris "Dans ce cas, il s'agit d'une catégorie normale, il faut overider les fonctions de la classe category qui renvoient des listes de catégories pour y exclure une catégorie en particulier." donc ça n'empeche pas le controlleur de fonctionner et d'appeller les fonctions necessaires pour récupérer UNE catégorie. Je pense par exemple a getRootCategories().

 

 

Link to comment
Share on other sites

Pourquoi rire ? Tu ne devrais pas te moquer, ça n'est pas une attitude constructive.

 

Mais non , pourquoi passer ? Si une fonction est overridé, alors à l'installation du module prestashop va générer une erreur et la fonction ne sera pas overridé.

A la désinstall la fonction overridé est supprimée.

Aucun bazar.

 

J'ai écris "Dans ce cas, il s'agit d'une catégorie normale, il faut overider les fonctions de la classe category qui renvoient des listes de catégories pour y exclure une catégorie en particulier." donc ça n'empeche pas le controlleur de fonctionner et d'appeller les fonctions necessaires pour récupérer UNE catégorie. Je pense par exemple a getRootCategories().

Je ne me moque pas de toi, mais de ton optimisme concernant la gestion des overrides par Prestashop.

Un petit tour dans la classe Module:

//$this->uninstallOverrides(); remove this line because if module a install an override, then module b install same override, this line will remove override of module a (if you find a bug related to this line please don't forget what i say before)

Je ne sais pas si tu as déjà rencontré le problème, mais les conflits d'override sont une véritable galère à gérer et Presta ne tient quasiment plus compte des remontées sur Git...

 

Après, pour en revenir à la question initiale:

Pourquoi cacher la catégorie ? Le but c'est de vendre, non ? donc si d'autres y ont accès, tant mieux

Sinon, la solution des codes de réductions me parait la plus simple à mettre en place (et utilisée par de nombreux sites marchands)

Link to comment
Share on other sites

Il s'avère que le module blockcategories n'utilise pas une fonction de la classe Category comme je l'avais supposé.

Donc finalement la méthode serait de dupliquer le module blockcategories et de modifier la ligne 

WHERE (c.`active` = 1 OR c.`id_category` = 1)

dans la fonction hookFooter() pour y ajouter la catégorie a exclure.

Idem pour hookLeftColumn()

 

La catégorie n'apparait plus dans la liste des catégories et le tour est joué.

La catégorie reste accessible mais n'est plus listée sur le site, du moins dans les blocs générés par le module blockcategory.

 

Si tu veux aller plus loin tu peux en plus overrider le controller de catégory pour interdire l'acces si l'url ne contient pas un param que tu auras choisi. (&utm_source=truc par exemple). 
Tu peux eventuellement faire la meme chose dans le controller produit.

 

L'ideal serait de tout regrouper dans le meme module.

Link to comment
Share on other sites

Un petit tour dans la classe Module:

//$this->uninstallOverrides(); remove this line because if module a install an override, then module b install same override, this line will remove override of module a (if you find a bug related to this line please don't forget what i say before)
Je ne sais pas si tu as déjà rencontré le problème, mais les conflits d'override sont une véritable galère à gérer et Presta ne tient quasiment plus compte des remontées sur Git...

 

Eh bien non justement je n'ai jamais rencontré de problème à ce niveau, donc effectivement je suis plutot optimiste sur la gestion des overrides par les modules. Mais si tu dis que c'est problématique, je ne demande qu'a te croire. Je suis surpris que prestashop écrase les fonctions déjà overridé !? Des tests que j'ai pu faire, l'installation du module était simplement impossible si il tentait d'overider une fonction déjà overidé..

 

Après, pour en revenir à la question initiale:

Pourquoi cacher la catégorie ? Le but c'est de vendre, non ? donc si d'autres y ont accès, tant mieux

Sinon, la solution des codes de réductions me parait la plus simple à mettre en place (et utilisée par de nombreux sites marchands)

Parce que c'est la demande initiale. Proposer une catégorie non répertorié sur le site.

 

Je dois créer un catégorie dans mon eshop qui ne sera pas visible sur le site

Link to comment
Share on other sites

Eh bien non justement je n'ai jamais rencontré de problème à ce niveau, donc effectivement je suis plutot optimiste sur la gestion des overrides par les modules. Mais si tu dis que c'est problématique, je ne demande qu'a te croire. Je suis surpris que prestashop écrase les fonctions déjà overridé !? Des tests que j'ai pu faire, l'installation du module était simplement impossible si il tentait d'overider une fonction déjà overidé..

 

 

Parce que c'est la demande initiale. Proposer une catégorie non répertorié sur le site.

 

Merci pour vos réponse. Avec tout ça, je vais pouvoir me débrouiller !

 

Merci

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