Skip to main content

désactiver le panier

More
14 years 3 days ago #67176 by RomainFaure
Bonjour tout le monde,

Y a-t-il un moyen de désactiver le panier? J'aimerais qu'un utilisateur n'ai qu'un produit achetable à chaque fois.

Mes remerciements par avances à ceux qui me répondront!

Please Log in or Create an account to join the conversation.

More
14 years 3 days ago #67181 by RomainFaure
J'en profite pour poser une seconde question: dans la page Liste de mes commandes, on peut accéder à nos précédentes commandes. Pour les commandes où le client n'a finalement pas payé, peut-il revenir dessus et finaliser sa commande à nouveau?

Please Log in or Create an account to join the conversation.

More
14 years 2 days ago #67288 by nicolas
Replied by nicolas on topic Re: désactiver le panier
Bonjour,

Dans l'onglet "Passage en caisse" de la configuration, il suffit de mettre 1 dans l'option "Nombre maximum de produits dans le panier".

Dans l'onglet "Passage en caisse" de la configuration, il suffit d'activer l'option "Autoriser les clients à changer<br/>leur méthode de paiement après le passage en caisse".
The following user(s) said Thank You: RomainFaure

Please Log in or Create an account to join the conversation.

More
14 years 1 day ago - 14 years 11 hours ago #67598 by RomainFaure
Merci!

EDIT: je reformule ma question: Y a-t-il une option/fonction qui vide le panier avant l'ajout d'un quelconque produit dedans?

Par exemple, je peux faire une action avant qu'un order soit créé en utilisant onBeforeOrderCreate. Là je souhaiterais faire une action avant qu'un produit soit ajouté au panier!
Last edit: 14 years 11 hours ago by RomainFaure.

Please Log in or Create an account to join the conversation.

More
14 years 10 hours ago #67738 by RomainFaure
Autre question: à propos du champ "quantité" dans le panier, peut-on au lieu d'afficher un champ de texte modifiable afficher à la place un simple label (du texte quoi!).

Voilà voilà. Merci encore pour le travail effectué sur ce forum.

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #67904 by nicolas
Replied by nicolas on topic Re: désactiver le panier
Vous pouvez créer un plugin hikashop et implémenter la fonction:
onBeforeCartUpdate(&$cartClass, &$cart, $product_id, $quantity, $add, $type,$resetCartWhenUpdate,$force,&$do)

Pour le champs de quantité du panier, il faut éditer les fichiers "cart" des vues "product" et "checkout" via le menu Affichage->Vues et changer le input de quantité

<input id="hikashop_checkout_quantity_<?php echo $row->cart_product_id;?>" type="text" name="item[<?php echo $row->cart_product_id;?>]" class="hikashop_product_quantity_field" value="<?php echo $row->cart_product_quantity; ?>" onchange="var qty_field = document.getElementById('hikashop_checkout_quantity_<?php echo $row->cart_product_id;?>'); if (qty_field){<?php echo $input; ?>}" />

par simplement la valeur: <?php echo $row->cart_product_quantity; ?>
The following user(s) said Thank You: RomainFaure

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #68010 by RomainFaure
C'est inespéré! Merci beaucoup je vais tester tout ça!

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #68034 by RomainFaure
Re bonjour,

Suite à quelques tests je me pose la question de la fonction du paramètre $add. Y a-t-il une doc sur cette fonction disponible?
Merci encore pour le support!

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #68159 by nicolas
Replied by nicolas on topic Re: désactiver le panier
Quand $add est à 1, le produit est ajouté au panier.
Quand il est à 0, la quantité du produit est remplacée dans le panier.

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago - 13 years 11 months ago #68246 by RomainFaure
Ok, je vois. Du coup quelle est la marche à suivre pour reset le cart dans la fonction onBeforeCartUpdate? Pour l'instant j'ai opté pour:

(cart bloqué à 1 produit max dans le panier)

Cas 1: Si il y a déjà un produit dans le panier
1A- Si on tente de rajouter le même produit, on ne fait rien
1B- Si on tente de rajouter un produit différent de celui dans le cart, on delete le produit dans le hikashop_cart_produit
Puis on renvoie "true"

Cas 2: Si il n'y a pas de produit dans le panier
2- On ne fait rien

EDIT: Mais en faisant ça j'obtiens le message suivant:
"
Message
Limite dépassée. Vous ne pouvez ajouter le produit: produit A
Le panier est vide
"
Last edit: 13 years 11 months ago by RomainFaure.

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #68340 by RomainFaure
En fait, je peux résumer ce que je veux faire dans la phrase suivante:

"J'ai déjà un produit A dans le cart, mon cart est limité à un seul produit, et je veux rajouter un nouveau produit B (distinct de A) dans le cart qui remplace le produit A".

Je pense que c'est plus clair comme ça!

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #68344 by nicolas
Replied by nicolas on topic Re: désactiver le panier
Il va falloir vider le panier avant d'ajouter B.

Cela peut se faire ainsi:
$class = hikashop_get('class.cart');
if($class->hasCart()){
$class->delete($class->cart->cart_id);
}
The following user(s) said Thank You: RomainFaure

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago - 13 years 11 months ago #68425 by RomainFaure
Merci Nicolas!

Finalement, j'ai obtenu ce que je voulais en faisant la manipulation suivante:
- dans onBeforeCartUpdate, je regarde si je suis dans la situation de conflit de produit
- si oui, j'update le produit dans la table hikashop_cart_products en le remplaçant par le nouveau
- le cas échéant, je mets le paramètre $do à 0 afin d'annuler la mise à jour du cart vue que je viens de le faire manuellement.

J'espère que ce n'a va pas poser de problèmes à l'avenir...

Sinon j'ai fait un test de validation de paiement avec la sandbox, et j'ai utilisé la fonction onAfterOrderConfirm. Et là cette fonction ne s'active pas lors du paiement...du coup je me posais la question de si elle pouvais être appelée dans un plugin hikashop simple, ou seulement dans un plugin hikashoppayment?
Last edit: 13 years 11 months ago by RomainFaure.

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago - 13 years 11 months ago #68635 by RomainFaure
Suite à une série de tests avec le plugin de paiement paypal et mon propre plugin de paiement, dans ce dernier j'arrive à trigger onPaymentDisplay mais pas onAfterOrderConfirm! Je ne comprends pas pourquoi...
Last edit: 13 years 11 months ago by RomainFaure.

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #68805 by nicolas
Replied by nicolas on topic Re: désactiver le panier
En effet, onAfterOrderConfirm n'est appelé que pour les plugins de paiement.
Cette fonction permet au plugin de paiement sélectionné d'afficher la redirection vers la plateforme de paiement. Les autres autres plugins de paiement et les autres plugins en général ne sont pas appelés pour cette fonction.

Si vous voulez executer du code après la confirmation d'une commande c'est onAfterOrderUpdate qu'il faut implémenter.

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #69121 by RomainFaure
Donc, si je veux exécuter du code après que le paiement est été effectué effectivement par la plateforme, il faut utiliser onAfterOrderUpdate, c'est bien ça?

Je vais faire des tests, je reviens vers vous après!

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #69126 by RomainFaure
Je viens de faire des tests, la fonction onAfterOrderUpdate n'est pas appelée une fois le paiement par la plateforme effectuée. Est-ce que c'est parce que je n'ai pas activé une option dans hikashop?

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #69212 by nicolas
Replied by nicolas on topic Re: désactiver le panier
onAfterOrderUpdate est appelée quand la commande change.
Et notemment lorsque le statut de la commande est passée de créée à confirmée par le plugin de paiement lors de la notification automatique de paiement par la plateforme de paiement à HikaShop.

Si onAfterOrderUpdate n'est pas appelé après le paiement, c'est que le statut de la commande n'est pas changé et que donc la plateforme de paiement n'a pas notifiée HikaShop du paiement:
www.hikashop.com/en/support/documentatio...or.html#notification
The following user(s) said Thank You: RomainFaure

Please Log in or Create an account to join the conversation.

More
13 years 11 months ago #69611 by RomainFaure
Effectivement, j'ai finalement pu tout débugger et faire marcher la fonction onAfterOrderUpdate. Je pense que dans mon cas j'avais mal configuré les différentes étapes de paiement du plugin paypal, notamment je ne faisais pas la différence entre le statut confirm et pending.

Merci encore Nicolas pour ta patience et ton aide.

Please Log in or Create an account to join the conversation.

Time to create page: 0.281 seconds
Powered by Kunena Forum