Jump to content

Partage De Panier - Permalink


Recommended Posts

Bonjour à tous,

 

Je suis sous PS 1.4.7 et je cherche à ajouter une fonctionnalité de partage du panier (Blogs, forum, réseaux sociaux, mail etc.).

 

L'idée serait de pouvoir générer un "lien permanent" qui permettrait, à d'autres personnes qui suivraient ce lien, de charger le même panier..

 

J'ai d'abord pensé à construire une URL qui ajouterait telle quantité du produit X, telle quantité du produit Y etc.. Mais ce n'est pas faisable.

 

Je me suis donc demandé s'il ne serait pas possible de le faire en s'appuyant sur la base de données.. N'étant pas un pro dans ce domaine, ma question est simple : pensez-vous que la façon de procéder, ci-dessous, est envisageable ?

 

Prenons une personne qui se fait un panier (A) et qui souhaite le partager..

 

1) Ajout préalable d'une colonne dans ps_cart que j'appellerai "permalink_id"
2) Générer automatiquement et de manière aléatoire, pour chaque panier créé, un identifiant unique (le permalink_id) qui me permettrait d'avoir une URL à partager du type monnomdedomaine.com/panier?permalink_id=xxxxx

3) Quand une personne suit ce lien, deux actions possibles :

a/ Pas de panier détecté dans le cookie, on en crée un,

b/ Un panier est détecté dans le cookie, on le vide,

4) Récupérer, dans ps_cart, l'identifiant du panier (A) qui correspondra à ce permalink_id,

5) Dupliquer "id_product" "id_product_atrribute" and "quantity" dans ps_cart_product correspondant au panier (A) pour le nouveau panier ou le panier détecté dans le cookie.

 

Pensez-vous que ce serait simple à mettre en oeuvre.. ? Sachant que je ne veux pas attribuer de permalink_id aux anciens paniers voire, éventuellement, soumettre la création de ce permalink_id que lorsque le Client clique sur "Partager"..

 

Merci d'avance à tous ceux qui auront pris le temps de me lire et de me répondre !

 

++

Link to comment
Share on other sites

Bonjour, Je ne connais pas de module qui fait ce genre de chose mais c'est une idée intéressante. Il faudrait le développer. Quelqu'un d'autre serait il interessé par ce type de module ?

 

Merci pour votre réponse. Effectivement, aucun module ne le fait à ma connaissance, pour l'instant cela reste une idée que j'aimerais appliquer ! :)

 

 

Bonjour ce sera pas facile puisque la personne doit dabord se connecter pour voir ce panier.

le panier est relatif aux cookies etc. 

A moins qu'il faut transmettre ces variables a un autre array qui va ensuite permettre de partager ces informations.

 

Merci pour votre réponse ! Pourquoi il doit d'abord se connecter ? Les utilisateurs ont possibilités de voir un panier sans se connecter, par contre, effectivement, il faut juste que lorsqu'il clique sur le lien, avant d'arriver sur la page, la création du panier soit déclenchée (comme lorsque l'on ajoute au panier) et que les produits correspondants soient ajoutés..

 

 

Perso je pencherais pour un approche plus simple nécessitant moins de developpement et rien de modifié au niveau du core.

 

Créer un commande par panier type, les marquer annulées.

Fabriquer un lien qui en quelque sorte embarque l'id_order que l'on souhaite injecter.

Le client arrive avec le lien (un micro controlleur front) repère l'id_order, et procède exactement de la même manière que le bouton re-commander de la page "Mes commandes".

 

On doit même pouvoir rappeler 90% du code existant ce qui assure la pérenité sur le long terme.

 

Merci pour ce retour ! Effectivement, ce serait "plus simple" mais créer une commande par panier implique que les combinaisons possibles sont plutôt mince..

 

Mon idée était basée, par exemple, sur une personne qui souhaite faire un petit réseau informatique chez lui et qui a besoin de Xm de câbles, Xembouts, une pince à certir etc.. Dans ce cas, un ami qui s'y connait mieux peut se rendre sur le site, faire son panier et partager son contenu via un simple lien.. De même que sur un forum d'entre-aide où une personne se renseigne pour savoir quels câbles prendre, quels embouts etc.. La personne a juste à lui communiquer le lien permanent du panier qu'il aura crée pour lui :)

Edited by presta'luv (see edit history)
  • Like 1
Link to comment
Share on other sites

Perso je pencherais pour un approche plus simple nécessitant moins de developpement et rien de modifié au niveau du core.

 

Créer un commande par panier type, les marquer annulées.

Fabriquer un lien qui en quelque sorte embarque l'id_order que l'on souhaite injecter.

Le client arrive avec le lien (un micro controlleur front) repère l'id_order, et procède exactement de la même manière que le bouton re-commander de la page "Mes commandes".

 

On doit même pouvoir rappeler 90% du code existant ce qui assure la pérenité sur le long terme.

Link to comment
Share on other sites

Perso je pencherais pour un approche plus simple nécessitant moins de developpement et rien de modifié au niveau du core.

 

Créer un commande par panier type, les marquer annulées.

Fabriquer un lien qui en quelque sorte embarque l'id_order que l'on souhaite injecter.

Le client arrive avec le lien (un micro controlleur front) repère l'id_order, et procède exactement de la même manière que le bouton re-commander de la page "Mes commandes".

 

On doit même pouvoir rappeler 90% du code existant ce qui assure la pérenité sur le long terme.

 

Et l'idée de créer un panier et d'y injecter les mêmes id_product en repérant le permalink_id seraient compliquée ?

Link to comment
Share on other sites

Dans la vie d'une boutique se créé des paniers tous les jours en volume assez conséquent. Régulièrement on procède a des vidanges de ceux n'ayant pas été convertis en commande. Donc le seul moyen de maintenir un panier dans la bdd avec l'interface de base est justement de s'assurer qu'ils soient convertis en commande. Donc commande annulé me semblait pertinent.

 

C'est l'idée de patcher la table panier qui me déplait, moins on s'écarte du schema standard, moins on a de risque de pleurer toutes les larmes de son corps plus tard.

 

Par contre dans le use case que tu présentes, la notion de permanence n'a pas de sens l'ami fait le panier c'est pour le consommer maintenant pas dans 5 mois donc pas besoin de se poser mille questions ... J'en ai une quand même, est-ce utile quand il suffit à l'ami de s'enregistrer avec l'email du client et de laisser le panier à l'abandon (a condition d'avoir activer l'option prestashop de maintient des paniers).

Link to comment
Share on other sites

Dans la vie d'une boutique se créé des paniers tous les jours en volume assez conséquent. Régulièrement on procède a des vidanges de ceux n'ayant pas été convertis en commande. Donc le seul moyen de maintenir un panier dans la bdd avec l'interface de base est justement de s'assurer qu'ils soient convertis en commande. Donc commande annulé me semblait pertinent.

 

Tout à fait d'accord avec le fait qu'un nombre important de paniers est créé !.. Du coup l'idée de générer un lien permanent lorsque le Client souhaite partager son panier permettrait d'éviter de conserver des identifiants uniques pour rien.. ?

 

 

C'est l'idée de patcher la table panier qui me déplait, moins on s'écarte du schema standard, moins on a de risque de pleurer toutes les larmes de son corps plus tard.

 

Je suis encore en 1.4.7 car trop d'investissements, trop de modules spécifiques donc pas d'évolution pour le moment :)

 

 

Par contre dans le use case que tu présentes, la notion de permanence n'a pas de sens l'ami fait le panier c'est pour le consommer maintenant pas dans 5 mois donc pas besoin de se poser mille questions ... J'en ai une quand même, est-ce utile quand il suffit à l'ami de s'enregistrer avec l'email du client et de laisser le panier à l'abandon (a condition d'avoir activer l'option prestashop de maintient des paniers).

 

Un ami pourrait effectivement faire ça..

 

Mais l'option regroupe d'autres possibilité également.. Si, par exemple, tu vas demander conseil sur un forum ou un blog, les autres internautes pourront te communiquer un seul lien qui te permettrait de cliquer pour avoir le panier complet de chargé.. Qu'en penses-tu ? Quand il s'agit d'acheter un téléphone + écouteurs, ok, c'est pas compliqué.. Mais quand il s'agit de monter quelque chose en kit ou en pièces détachées (câblages, ordinateur, vélo, meubles ..), ce serait plus pratique et intuitifs pour tout le monde d'avoir un lien permanent qui propose un panier avec 10 articles, plutôt que 10 liens uniques.. C'est moins contraignant et plus facile.

 

Par exemple, Shopify propose cette possibilité avec le variant_id du produit pour ajouter ce paramètre à l'URL : il charge automatiquement tous les produits correspondants et leurs quantités => https://docs.shopify.com/themes/customization/cart/use-permalinks-to-preload-cart

 

Cette idée me semblait plus pratique mais impossible, avec PS, d'ajouter de multiples produits/quantités via 1 seul URL.

 

 

 

EDIT :

 

Je viens de regarder un peu la fonction submitReorder.. En fait, si je ne dis pas de bêtises, on utilise le duplicate() pour dupliquer le panier de la commande concernée.. On ne pourrait pas faire la même chose pour dupliquer un panier pour un autre panier ? Si le panier existe, on duplique, si le panier n'existe plus, on affiche un message comme quoi le panier n'est plus valide.. ?

Edited by presta'luv (see edit history)
Link to comment
Share on other sites

Il n'y a pas de problème particulier à injecter dans un panier, encore une fois s'inspirer de ce qui est fait dans le contrôleur historique, une commande c'est un panier associé et c'est bien un panier qui clone sont contenu, donc 90% du taf est soit écrit son appelable directement. Il suffit de faire un contrôleur front qui prenne l'id panier.

 

C'est pas parce qu'aujourd'hui tu es en 1.4 que tu doive te bloquer pour l'éternité donc, avis personnel évitons les miasmes collé ici et là.

 

HS: C'est amusant que tu parles de Shopify, je suis en train de finaliser une passerelle entre les 2.

 

Si tu clone un panier, tu clone les quantités de ce dernier donc aucun problème dans ton cas.

J'aurais tendance à ne rien faire d'autre que bouton partage = générer un lien vers le contrôleur et détacher le panier actuel du client. Si tu as des automates qui purgent les paniers abandonnés trop vieux, le lien deviendra caduque mais je ne pense pas que ce soit particulièrement grave. Si ça l'est, du peux convertir ce panier en commande annulée ce qui fige le panier dans le marbre - donc tu as couvert ton besoin.

  • Like 1
Link to comment
Share on other sites

Si tu clone un panier, tu clone les quantités de ce dernier donc aucun problème dans ton cas.

J'aurais tendance à ne rien faire d'autre que bouton partage = générer un lien vers le contrôleur et détacher le panier actuel du client. Si tu as des automates qui purgent les paniers abandonnés trop vieux, le lien deviendra caduque mais je ne pense pas que ce soit particulièrement grave. Si ça l'est, du peux convertir ce panier en commande annulée ce qui fige le panier dans le marbre - donc tu as couvert ton besoin.

 

Ok super, ca avance ! Effectivement l'idée serait de pouvoir dupliquer un panier existant vers un nouveau (aucun automate purgent les paniers) en récupérant les produits et les quantités.

 

Une idée précise de ce que donnerait ce contrôleur ?! Une sorte de page sandwich qui, une fois appelée, récupère l'id_panier et crée un nouveau panier ?

 

Merci en tout cas, j'aperçois une petite lumière dans mon idée malgré le manque de connaissance :)

Link to comment
Share on other sites

Un simple module avec un CartShareController.php les métas qui vont bien et zooo ton controlleur repère id_cart et appelle ta fonction qui réplique en quelque sort le code de l'historique ... suivi d'une redirection vers le tunnel de commande

Après même si tu avais une purge panier abandonné, rien ne t'empèche toi de faire une commande, l'annuler sur un panier que tu veux rendre permanent

 

On parle bien sûr depuis le début d'un dev spécifique mais pas trop lourd.

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