désactiver le panier

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #67176

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #67181

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.

  • Posts: 81677
  • Thank you received: 13102
  • MODERATOR
11 years 7 months ago #67288

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #67598

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: 11 years 7 months ago by RomainFaure.

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

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #67738

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.

  • Posts: 81677
  • Thank you received: 13102
  • MODERATOR
11 years 7 months ago #67904

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #68010

C'est inespéré! Merci beaucoup je vais tester tout ça!

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

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #68034

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.

  • Posts: 81677
  • Thank you received: 13102
  • MODERATOR
11 years 7 months ago #68159

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #68246

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: 11 years 7 months ago by RomainFaure.

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

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #68340

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.

  • Posts: 81677
  • Thank you received: 13102
  • MODERATOR
11 years 7 months ago #68344

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #68425

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: 11 years 7 months ago by RomainFaure.

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

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #68635

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: 11 years 7 months ago by RomainFaure.

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

  • Posts: 81677
  • Thank you received: 13102
  • MODERATOR
11 years 7 months ago #68805

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #69121

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #69126

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.

  • Posts: 81677
  • Thank you received: 13102
  • MODERATOR
11 years 7 months ago #69212

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.

  • Posts: 56
  • Thank you received: 1
11 years 7 months ago #69611

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.083 seconds
Powered by Kunena Forum