- Posts: 23
- Thank you received: 0
Intégration - code php lié au bouton
- david_filip@hotmail.com
-
Topic Author
- Offline
Less
More
9 years 11 months ago #251157
by david_filip@hotmail.com
Intégration - code php lié au bouton was created by david_filip@hotmail.com
Bonjour,
Je viens de mettre à jour ma version Hikashop d'Essential à Business.
Je souhaiterais au moment du click sur le bouton "Ajouter au Panier" ajouter du code PHP supplémentaire afin de mettre à jour une table (autre qu'Hikashop) dans la base de donnée.
Pouvez-vous m'aiguiller vers le fichier et la partie de code à adapter afin de réaliser cette opération ?
En vous remerciant pour votre aide,
David Filip
Je viens de mettre à jour ma version Hikashop d'Essential à Business.
Je souhaiterais au moment du click sur le bouton "Ajouter au Panier" ajouter du code PHP supplémentaire afin de mettre à jour une table (autre qu'Hikashop) dans la base de donnée.
Pouvez-vous m'aiguiller vers le fichier et la partie de code à adapter afin de réaliser cette opération ?
En vous remerciant pour votre aide,
David Filip
Please Log in or Create an account to join the conversation.
9 years 11 months ago #251162
by nicolas
Replied by nicolas on topic Intégration - code php lié au bouton
Bonjour,
Idéalement, il faudrait faire un petit plugin implémentant le trigger onAfterCartUpdate d'HikaShop:
www.hikashop.com/support/documentation/6...ml#onAfterCartUpdate
Faire un plugin n'est pas très compliqué si vous êtes un développeur:
www.hikashop.com/support/documentation/6...mentation.html#howto
Idéalement, il faudrait faire un petit plugin implémentant le trigger onAfterCartUpdate d'HikaShop:
www.hikashop.com/support/documentation/6...ml#onAfterCartUpdate
Faire un plugin n'est pas très compliqué si vous êtes un développeur:
www.hikashop.com/support/documentation/6...mentation.html#howto
Please Log in or Create an account to join the conversation.
- david_filip@hotmail.com
-
Topic Author
- Offline
Less
More
- Posts: 23
- Thank you received: 0
9 years 11 months ago #251380
by david_filip@hotmail.com
Replied by david_filip@hotmail.com on topic Intégration - code php lié au bouton
Merci Nicola pour votre réponse.
Effectivement, vous avez vraiment apporté un soin particulier à votre développement et à la structure globale du produit. Bon boulot!
J'ai mis en oeuvre un plugin et cela fonctionne parfaitement. Je suis occupé à voir avec Cyril d'iCagenda un mariage possible entre vos deux produits.
J'ai à peu près tout ce qu'il me faut dans HK pour gérer les événements sans perdre pour autant la possibilité de réaliser des upsells. Il y a un exemple donné sur votre site pour l'inscription à un événement mais cela ne permet plus l'ajout d'autres produits dans le panier.
Pourrais-tu m'expliquer comment faire ou quoi développer assez simplement en php pour une fois arrivé au processus de validation de commande, je puisse identifier les événements dans le panier (j'ai ajouté un champ personnalise booléen isEvent au produit) et introduire dans la chaîne entre par exemple Panier et Adresse Livraison/Facturation une étape où on pourrait inscrire les noms des personnes présentes à l'événement fonction de la valeur Qty du "produit-événement"?
A défaut, serait-ce possible avec HikaSerial : un ticket assigné à un nom que l'on introduit et ce sans perdre la possibilité d'ajouter d'autres produits dans le panier ?
Merci pour vos éclairages,
David
Effectivement, vous avez vraiment apporté un soin particulier à votre développement et à la structure globale du produit. Bon boulot!
J'ai mis en oeuvre un plugin et cela fonctionne parfaitement. Je suis occupé à voir avec Cyril d'iCagenda un mariage possible entre vos deux produits.
J'ai à peu près tout ce qu'il me faut dans HK pour gérer les événements sans perdre pour autant la possibilité de réaliser des upsells. Il y a un exemple donné sur votre site pour l'inscription à un événement mais cela ne permet plus l'ajout d'autres produits dans le panier.
Pourrais-tu m'expliquer comment faire ou quoi développer assez simplement en php pour une fois arrivé au processus de validation de commande, je puisse identifier les événements dans le panier (j'ai ajouté un champ personnalise booléen isEvent au produit) et introduire dans la chaîne entre par exemple Panier et Adresse Livraison/Facturation une étape où on pourrait inscrire les noms des personnes présentes à l'événement fonction de la valeur Qty du "produit-événement"?
A défaut, serait-ce possible avec HikaSerial : un ticket assigné à un nom que l'on introduit et ce sans perdre la possibilité d'ajouter d'autres produits dans le panier ?
Merci pour vos éclairages,
David
Please Log in or Create an account to join the conversation.
9 years 11 months ago #251383
by nicolas
Replied by nicolas on topic Intégration - code php lié au bouton
Bonjour,
Pour ajouter des étapes dans le système de passage en caisse, l'idéal c'est d'utiliser les triggers de l'API checkout:
www.hikashop.com/support/documentation/6...tation.html#checkout
comme cela, il suffit ensuite d'ajouter la vue dans le "checkout workflow" de la configuration pour que le plugin soit appeler pour l'affichage dans le passage en caisse.
Pour récupérer le contenu du panier, cela se fait facilement avec la fonction loadFullCart comme expliqué dans la documentation développeur:
www.hikashop.com/support/documentation/6...umentation.html#code
Donc cela laisse toutes les libertés possibles. Et pour stocker les informations dans la commande, cela peut se faire par exemple avec un champs personnalisé de la table "commande" ou "article".
Pour ajouter des étapes dans le système de passage en caisse, l'idéal c'est d'utiliser les triggers de l'API checkout:
www.hikashop.com/support/documentation/6...tation.html#checkout
comme cela, il suffit ensuite d'ajouter la vue dans le "checkout workflow" de la configuration pour que le plugin soit appeler pour l'affichage dans le passage en caisse.
Pour récupérer le contenu du panier, cela se fait facilement avec la fonction loadFullCart comme expliqué dans la documentation développeur:
www.hikashop.com/support/documentation/6...umentation.html#code
Donc cela laisse toutes les libertés possibles. Et pour stocker les informations dans la commande, cela peut se faire par exemple avec un champs personnalisé de la table "commande" ou "article".
Please Log in or Create an account to join the conversation.
- david_filip@hotmail.com
-
Topic Author
- Offline
Less
More
- Posts: 23
- Thank you received: 0
9 years 11 months ago #251413
by david_filip@hotmail.com
Replied by david_filip@hotmail.com on topic Intégration - code php lié au bouton
Merci pour ta réponse Nicolas.
J'ai bien intégré la nouvelle étape dans le passage en caisse et cela fonctionne parfaitement.
L'étape en question m'affiche HIKASHOP_CHECKOUT_PLG.SHOP.VIEWNAME dans l'onglet.
Je ne vois pas très bien ce que je dois faire ici :
- dois-je créer un plugin supplémentaire pour la vue en question ?
- le nom affiché dans l'onglet n'est pas celui que j'ai assigné dans le tableau : $list = 'Infos des participants';
Pourrais-tu m'aiguiller sur la manière de construire cette vue ?
En te remerciant,
David
J'ai bien intégré la nouvelle étape dans le passage en caisse et cela fonctionne parfaitement.
L'étape en question m'affiche HIKASHOP_CHECKOUT_PLG.SHOP.VIEWNAME dans l'onglet.
Je ne vois pas très bien ce que je dois faire ici :
- dois-je créer un plugin supplémentaire pour la vue en question ?
- le nom affiché dans l'onglet n'est pas celui que j'ai assigné dans le tableau : $list = 'Infos des participants';
Pourrais-tu m'aiguiller sur la manière de construire cette vue ?
En te remerciant,
David
Please Log in or Create an account to join the conversation.
Less
More
- Posts: 12953
- Thank you received: 1778
9 years 11 months ago #251422
by Mohamed Thelji
Replied by Mohamed Thelji on topic Intégration - code php lié au bouton
Bonjour David,
Pour créer la vue en question, il suffira simplement d'ajouter un fichier PHP à ton plugin ayant comme nom : NomDeTonPlugin_view.php
Voici un example pouvant surement t'aider :
Pour créer la vue en question, il suffira simplement d'ajouter un fichier PHP à ton plugin ayant comme nom : NomDeTonPlugin_view.php
Voici un example pouvant surement t'aider :
Code:
/**
* Création de l'étape propre au plugin
*/
public function onCheckoutStepList(&$list) {
//add step on checkout workflow
$list['plg.shop.mynewstep'] = JText::_("PARTICIPANT_INFO');
}
/**
* Affichage de la vue NomDeTonPlugin_view.php lors de l'appel de l'étape 'plg.shop.mynewstep'
*/
function onCheckoutStepDisplay($layoutName, &$html, &$view, $pos, $options) {
if($layoutName != 'plg.shop.mynewstep')
return;
// appel NomDeTonPlugin_view.php
ob_start();
$this->showPage('view');
$html = ob_get_clean();
}
Please Log in or Create an account to join the conversation.
- david_filip@hotmail.com
-
Topic Author
- Offline
Less
More
- Posts: 23
- Thank you received: 0
9 years 11 months ago - 9 years 11 months ago #251496
by david_filip@hotmail.com
Replied by david_filip@hotmail.com on topic Intégration - code php lié au bouton
Mohamed, je te remercie pour ta réponse.
1) Au travers de mon plugin, j'arrive à correctement utiliser la méthode onCheckoutStepDisplay.
Par contre, je n'arrive pas à faire en sorte d'avoir le nom exact dans le nouvel onglet du workflow (voir fichier attaché).
Je pense que quelque chose m'échappe dans l'ajout du nom dans le tableau $list :
Précédemment, j'avais créé une vue php dans le répertoire Checkout en récupérant le fichier fiels.php que j'ai renommé en fields_df.php
Ensuite, j'ai introduit dans la liste :
Dans la partie Configuration->Passage en caisse : Je retrouve bien l'étape "Liste des participants".
Dans la partie site, la méthode onCheckoutStepDisplay fonctionne correctement (voir le listage de quelques propriétés produit dans jpg) mais pour le nom dans l'onglet de l'étape, je sèche... A quel moment, fait-on la connexion entre la vue (php) et la liste ?
Et c'est là que j'ai besoin de ton aide
Peux-tu me dire où je me trompe ?
2) J'aimerais également sur base d'une variable pouvoir rendre visible ou invisible cette nouvelle étape. J'ai essayé dans la méthode onCheckoutStepList de vider l'array par un unset mais rien n'y fait. J'imagine qu'il faut agir sur le view step.php mais je ne vois pas trop où je pourrais placer ma condition (probablement en plusieurs endroits). Peux-tu m'éclairer ?
Merci à toi,
David
1) Au travers de mon plugin, j'arrive à correctement utiliser la méthode onCheckoutStepDisplay.
Par contre, je n'arrive pas à faire en sorte d'avoir le nom exact dans le nouvel onglet du workflow (voir fichier attaché).
Je pense que quelque chose m'échappe dans l'ajout du nom dans le tableau $list :
Code:
$list['plg.shop.mynewstep'] = JText::_("PARTICIPANT_INFO');
Ensuite, j'ai introduit dans la liste :
Code:
$list['plg.shop.fields_df'] = 'Liste des participants';
Dans la partie site, la méthode onCheckoutStepDisplay fonctionne correctement (voir le listage de quelques propriétés produit dans jpg) mais pour le nom dans l'onglet de l'étape, je sèche... A quel moment, fait-on la connexion entre la vue (php) et la liste ?
Et c'est là que j'ai besoin de ton aide
Peux-tu me dire où je me trompe ?
2) J'aimerais également sur base d'une variable pouvoir rendre visible ou invisible cette nouvelle étape. J'ai essayé dans la méthode onCheckoutStepList de vider l'array par un unset mais rien n'y fait. J'imagine qu'il faut agir sur le view step.php mais je ne vois pas trop où je pourrais placer ma condition (probablement en plusieurs endroits). Peux-tu m'éclairer ?
Merci à toi,
David
Last edit: 9 years 11 months ago by david_filip@hotmail.com.
Please Log in or Create an account to join the conversation.
9 years 11 months ago #251521
by nicolas
Replied by nicolas on topic Intégration - code php lié au bouton
Bonjour,
1. Le nom de l'étape est généré automatiquement. Donc il suffit d'ajouter un override de traduction:
HIKASHOP_CHECKOUT_PLG.SHOP.VIEWNAME="Nom de mon étape"
via l'onglet Langues de la configuration HikaShop.
C'est converti dans le fichier "step" de la view "checkout":
2. Il n'est pas possible de supprimer une étape dynamiquement. Par contre, il est possible de la faire passer automatiquement.
Pour cela, dans onBeforeCheckoutStep vous pouvez faire votre vérification et soit rediriger vers l'étape d'après avec un $app->redirect() avec le paramètre step incrémenté dans l'URL, soit en ajoutant à la vue un peu de JS pour auto submit l'étape au chargement de la page plutôt que d'afficher le contenu de votre vue.
1. Le nom de l'étape est généré automatiquement. Donc il suffit d'ajouter un override de traduction:
HIKASHOP_CHECKOUT_PLG.SHOP.VIEWNAME="Nom de mon étape"
via l'onglet Langues de la configuration HikaShop.
C'est converti dans le fichier "step" de la view "checkout":
Code:
if($k == $this->step || empty($link)) {
echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name));
} else {
?>
<a href="<?php echo hikashop_completeLink('checkout&task=step&step='.$k.$url_itemid);?>">
<?php echo JText::_('HIKASHOP_CHECKOUT_'.strtoupper($step_name));?>
</a>
<?php
}
2. Il n'est pas possible de supprimer une étape dynamiquement. Par contre, il est possible de la faire passer automatiquement.
Pour cela, dans onBeforeCheckoutStep vous pouvez faire votre vérification et soit rediriger vers l'étape d'après avec un $app->redirect() avec le paramètre step incrémenté dans l'URL, soit en ajoutant à la vue un peu de JS pour auto submit l'étape au chargement de la page plutôt que d'afficher le contenu de votre vue.
Please Log in or Create an account to join the conversation.
Time to create page: 0.188 seconds