Mondial relais et point de livraison, galère

  • Posts: 119
  • Thank you received: 6
10 years 7 months ago #152806

-- HikaShop version -- : starter
-- Joomla version -- : 3.2


Bon je suis vraiment pas le roi du php :unsure:
Ma derniere chance avant de passer a autre chose

j'ai lu pas mal de topic sur votre forum

www.hikashop.com/forum/5-support-en-fran...se-de-livraison.html
www.hikashop.com/forum/5-support-en-fran...-session.html#135938

sans reellement tout comprendre surtout ou integrer ces codes

J'ai reçu de mondial relais ce lien pour essayer d'installer la livraison mondial relais sur Hikashop "widget"
widget.mondialrelay.com/parcelshop-picke...tImplementation.aspx

J'ai copié les scripts du widget dans shipping.php
Je fais appel au widget via la description du manual shipping plugin
copier coller, je sais faire

Bon je peux selectionner un point relais et j'ai par retour un code point relais



maintenant j'ai aucune idée comment sauvegarder ce code au niveau de l'adresse de livraison

cordialement

PS mon Flux de passage en caisse


PS2 : le preview marche tj pas sur votre Forum

Last edit: 10 years 7 months ago by tramber91.

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
10 years 7 months ago #152812

Bonjour,

Le plus simple, ca va être de créer un champs personnalisé de la table "commande" pour stocker cette valeur avec la commande.
Il va falloir ajouter le view "champs perso" sur la même étape de votre flux de passage en caisse, ajouter un display:none en CSS sur la zone des champs persos car cela ne sert à rien de la montrer, et ajouter un peu de js sur un évènement onclick du bouton next (fichier "step" de la vue "checkout") pour copier la valeur du point relai sélectionné dans le champs perso avant la soumission du formulaire du passage en caisse.
HikaShop se chargera en suite de stocker pour vous le champs perso dans la commande et de l'afficher dans les emails, la commande, la facture...

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
8 years 1 month ago #252061

Bonjour,

je remonte ce sujet car je suis exactement dans le même cas, sauf que je coince dès l'étape une, lorsque je créer un nouveau champs personnalisé, il est automatiquement de la table "adresse" et je ne peux changer ca.

Dans mes recherches j'ai bien lu ce topic qui m'a fait plaisir, mais je ne peux suivre les instructions à cause de la table "adresse" non modifiable :(

Que dois-je faire ?
Merci d'avance

Last edit: 8 years 1 month ago by Minie.

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

  • Posts: 12953
  • Thank you received: 1778
8 years 1 month ago #252122

Bonjour,

La table et le type du champs personnalisé sont à saisir lors de la création du champs, il vous sera donc nécessaire de créer un nouveau champs et d'initialiser correctement le "type" et la "table".

Le mieux serai de suivre ce petit tutorial qui vous permettra de mettre tout cela en marche :
www.hikashop.com/support/documentation/2...h-mondial-relay.html

Aussi, veillez noter que les champs personnalisés de table "Order" ne sont accessibles qu'a partir de la version Business d'Hikashop comme indiqué sur la documentation :

Order custom fields: you will be able to personalize the information you can also gather from your customers when they order something on your store. But the difference with the previous type of custom field is that these fields appear on the checkout in the fields view. For example, You can ask them information about the delivery or the payment or a "comments to the shop" field. Then, you will find this information on the order details and/or the orders listing on the back end. This is only available in the business version of HikaShop.

Last edit: 8 years 1 month ago by Mohamed Thelji.

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
8 years 1 month ago #252164

Bonjour,

Super ce tuto il etait bien caché :) Merci beaucoup.

L'achat de la version business était prévu pour demain donc je m'y colle dès demain matin.

Merci !

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
8 years 1 month ago #252333

Bonjour,

tout c'est bien passé pour l'installation du champ personnalisé, mais il me reste deux problèmes :

1) Depuis juin 2016 Google a rendu obligatoire l'utilisation d'une clé API pour afficher des google map, le plugin mondial relay utilisant une google map, je dois pouvoir rentrer une clé API quelque part, mais je n'ai pas constaté de champs prévu à cet effet dans le plugin :(

2) Le sélecteur de point relais s'affiche même lorsque l'utilisateur à choisi la livraison à domicile, ne peut t'on pas faire de restriction pour n'inclure que certains modes de livraison ?

Cordialement

Last edit: 8 years 1 month ago by Minie.

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
8 years 1 month ago #252341

Bonjour,

Cela nous a été rapporté et nous avons modifié le plugin en conséquence:
www.hikashop.com/forum/install-update/88...e-s-affiche-pas.html

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
8 years 1 month ago #252426

Bonjour,

parfait merci.
Pour les restrictions en fonction des modes de livraison quand peut t'on espérer les voir apparaître ?

Cordialement.

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
8 years 1 month ago #252463

Bonjour,
je donne une solution simple pour ceux qui auraient le même problème de restrictions.

Chemin du passage en caisse :
1- Panier + choix de livraison
2- Connexion
3- Livraison + adresse + champs
4- Paiement

J'explique:
1- Avoir le choix de livraison dès la première vue sans connexion est important pour éviter les surprises de prix et la fuite du client
2- La connexion permet à hikashop de récupérer les infos d'adresse nécessaires à mondial relay
3- C'est la que ca devient intéressant je détaille
3.1- Inclure à nouveau les choix de livraison mais avec un {display:none} dans le CSS (juste pour cette étape de panier) histoire d'avoir l'info des checkbox dans le code, ca ne sera donc pas visible
3.2- Vérification de l'adresse enregistrée pour ceux qui sont déjà client ou si besoin de modification
3.3- Affichage du champ modial relay préalablement configuré
4- Paiement ...

Voici le bout de code permettant l'affichage ou non de mondial relay selon les méthodes de paiement cochées à l'étape 1
Il faut d'abord récupéré la ou les ID de toutes les méthodes de paiement utilisant mondial relay dans le backoffice (pour l'exemple: ID =1)

if(document.getElementById('#hikashop_shipping_manual_1')){
	if( $('#hikashop_shipping_manual_1').is(':checked') ) {
   	    $("#hikashop_checkout_additional_info").show();
	} else {
    	    $("#hikashop_checkout_additional_info").hide();
}
}

J'explique mon code ligne par ligne :
SI le document peut récupérer l'élément XX par son ID {
SI l’élément XX est coché {
montrer l'élément XX
} SINON {
cacher l'élément XX
}
}

La vérification de l'existence de l'élément n'est utile que lorsque vous avez plusieurs méthodes de livraisons en mondial relay.
L'avantage de ma méthode : la plus simple et propre que j'ai pu trouver
L’inconvénient : Le champ mondial relay ne peut pas être "obligatoire" sinon les client qui demandent la livraison à domicile se verront contraint de remplir un champ invisible pour passer à l'étape suivante (autrement dit ils sont dans la ***) :P

Voila, en espérant apporter un peu ma contribution pour les suivants.

Last edit: 8 years 1 month ago by Minie.
The following user(s) said Thank You: nicolas, Mohamed Thelji

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
8 years 1 month ago #252673

Je souhaite apporter deux petites rectifications à mon code :

1) Etant donné que mon code applique une règle selon l'existence du choix radio par ID d'un mode de livraison mondial relais, le code ne s'applique pas lorsqu'un produit qui ne propose pas mondial relais est acheté (ex: carte cadeau livrée uniquement par mail) Mon code commence par la condition: SI l’élément existe : alors on affiche sinon on cache, mais par défaut le selecteur est affiché si aucune des conditions n'est remplie donc ajouter au début du code :

$("#hikashop_checkout_additional_info").hide();

Ainsi lorsque le client achète un produit qui n'a pas de monde de livraison mondial relais dans le choix multiple le selecteur ne s'affichera pas.

2) Retirer le # sur la ligne de vérification d'élément par ID cela peut créer des erreurs. Il est inutile vu qu'on précise qu'on sélectionne l'élément par son ID.

Code total rectifié :
$("#hikashop_checkout_additional_info").hide();

if(document.getElementById('hikashop_shipping_manual_1')){
	if( $('#hikashop_shipping_manual_1').is(':checked') ) {
   	 	$("#hikashop_checkout_additional_info").show();
	} else {
    	$("#hikashop_checkout_additional_info").hide();
}
}

if(document.getElementById('hikashop_shipping_manual_2')){ // Autant de fois que vous avez d'ID mondial relay (ici ID 2)
	if( $('#hikashop_shipping_manual_2').is(':checked') ) {
   	 	$("#hikashop_checkout_additional_info").show();
	} else {
    	$("#hikashop_checkout_additional_info").hide();
}
}

Last edit: 8 years 1 month ago by Minie.

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

  • Posts: 382
  • Thank you received: 13
  • Hikashop Business
8 years 1 month ago #252840

Bonjour je sais pas trop si je dois ouvrir un autre post où faire évoluer celui ci ? :
Comment faire pour ajouter les champs suivants:
data.ID =
data.Nom =
data.Adresse =
data.CP =
data.Ville =
data.Pays =

Seul le code point relais FRxxxxx ça reste un peu flou dans les mails de notifications.
Merci.

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
8 years 1 month ago #252919

Bonjour,

Les données détaillées du point relai ne sont pas enregistrées donc impossible a rajouter dans les emails de notifications.
J'ai regardé l'API de MondialRelai et il ne semble pas que leur API fournisse ces détails donc même en modifiant le plugin MondialRelai, je ne vois pas.

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

  • Posts: 382
  • Thank you received: 13
  • Hikashop Business
8 years 1 month ago #252966

nicolas wrote: Bonjour,

Les données détaillées du point relai ne sont pas enregistrées donc impossible a rajouter dans les emails de notifications.
J'ai regardé l'API de MondialRelai et il ne semble pas que leur API fournisse ces détails donc même en modifiant le plugin MondialRelai, je ne vois pas.


Ok merci Nicolas.

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

  • Posts: 382
  • Thank you received: 13
  • Hikashop Business
8 years 2 weeks ago #254857

nicolas wrote: Bonjour,

Les données détaillées du point relai ne sont pas enregistrées donc impossible a rajouter dans les emails de notifications.
J'ai regardé l'API de MondialRelai et il ne semble pas que leur API fournisse ces détails donc même en modifiant le plugin MondialRelai, je ne vois pas.


Bonjour, je me permet de revenir sur ce post car j'ai contacté Mondial relay et voici ce qu'il m'ont répondu...

Je vous confirme que la méthode Web Service WSI3_PointRelais_Recherche retourne tous les détails d’un Point Relais. Vous trouverez la documentation technique relative aux méthodes Webservice sur cette page :
http://www.mondialrelay.fr/solutionspro/documentation-technique/cahier-des-charges-informatiques/http://www.mondialrelay.fr/solutionspro/documentation-technique/cahier-des-charges-informatiques/

Je suppose qu'il parle de ce document :

http://www.mondialrelay.fr/media/52521/web-service-v5.1.pdf

Mais modifier le plugin c'est pas dans mes compétences :unsure:

Last edit: 8 years 2 weeks ago by hikaphil.

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

  • Posts: 82868
  • Thank you received: 13376
  • MODERATOR
8 years 2 weeks ago #254858

Bonjour,

Oui, cette méthode existe, mais pas avec l'API utilisée dans le plugin que nous avons développé.
L'API utilisée par le plugin s’appelle Widget: www.mondialrelay.fr/media/52527/widget-v-3.1.pdf
Pour implémenter ce dont ils parlent, cela nécessiterait bien plus que juste quelques lignes à modifier/ajouter dans le plugin.

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

  • Posts: 123
  • Thank you received: 4
6 years 9 months ago #288592

Bonjour.

Je ré ouvre ce topic car je n'ai pas vraiment toutes les informations pour gérer le plug-in.

J'ai bien intégré le plugin "Mondial Relay" et je l'ai configuré comme décrit dans le tuto d'Hikashop.
Il fonctionne :P

Par contre je voudrais que la carte avec la sélection du point relai n'apparaisse que si le mode de livraison "Mondial Relay" est sélectionné.
Actuellement je dispose de 3 mode de livraison :

  1. Commande à récupérer en boutique (livraison gratuite)
  2. Mondial Relay
  3. Colissimo
Lorsque je choisi un mode différent de "Mondial Relay" la carte apparaît quand même.
Comment faire pour que la carte avec la sélection du point relai n'apparaisse que si le mode de livraison "Mondial Relay" est sélectionné et n'apparaisse pas autrement ?

De plus lorsque la commande est créée et confirmée les mails envoyés aux personnes qui ont acheté le(s) produit(s) avec le mode de livraison "Mondial Relay" contiennent l'adresse de facturation et l'adresse de livraison.
Je voudrais que l'adresse de livraison n'apparaisse pas dans les mails de notifications si le mode de livraison "Mondial Relay" est sélectionné.
Comment dois-je faire ?

Pour finir seul le code du point relai apparait dans les mails de notifications ce qui n'est vraiment pas parlant pour les personnes qui doivent aller retirer leur colis dans un point relai.
Est-il possible de récupérer les champs "Adresse", "Code postal" et "Ville" du point relai ?

Merci pour toutes vos réponses.

Cordialement.

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
6 years 9 months ago #288597

Bonjour,

j'avais fait un script il y a un moment pour régler le problème d'affichage, je l'ai amélioré depuis il était un peu long.

Tu peux faire ma méthode :

1) L'image qui te servira à afficher Mondial relay dans ton checkout, nomme la "mondialRelay".
(../media/com_hikashop/images/shipping/mondialRelay.png)

2) Dans la vue PHP com_hikashop->checkout->shipping , recherche l'input radio qui affichera le mode de livraison, dans ma version il a la class CSS "hikashop_checkout_shipping_radio" (ligne 178 pour moi)
Avant la fermeture des double guillemets de la class CSS, rajoute une condition en php pour ajouter une class en fonction du mode, ce qui va donner :

class="hikashop_checkout_shipping_radio <?php if ($rate->shipping_images == 'mondialRelay') { echo 'mondialRelay';} ?>"

3) Ensuite on peut se servir de cette class insérée dans le DOM pour agir en condition sur le reste de la page en JS
if	($('.mondialRelay').is(':checked'))	{
	$("#hikashop_checkout_additional_info").show();
}	
else {
	$("#hikashop_checkout_additional_info").detach();
}

Il y a surement un façon encore plus simple ou propre, si quelqu'un veut en proposer une meilleur que la mienne, en tout cas ca marche nikel, bien sur il te faudra avoir l’étape livraison au même endroit que l’étape champs perso puisque le JS agit sur la page en fonction du radio coché. Perso j'ai doublé la livraison sur la page suivante, avec un display:none, l'utilisateur de voit rien, mais le JS trouve bien la case cochée.

Pour ce qui est de l'adresse de livraison qui s'affiche, tu peux imaginer un système similaire à celui que je viens de décrire, mais en modifiant la vue de l'email envoyé au client. (SI affichage point relais -> ALORS on n'affiche pas l'adresse de livraison) étant donné que l'email contient la donnée du point relais si il y en a, tu peux agir en condition sur un autre élément de la même vue. Je vais d’ailleurs le faire quand j'aurais le temps mais ca reste de l’esthétique contrairement au premier problème qui peut coincer le client si tu mets le point relais en "requis" alors qu'il veut livraison domicile. Et bien sur si tu ne le met pas en requis un client point relais risque de valider commande sans point relais. D’où le "detach" dans le JS et non un simple "hide".

Pour le dernier point, c'est intéressant, mais je n'ai pas de réponse :) le staff en aura surement.

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

  • Posts: 123
  • Thank you received: 4
6 years 8 months ago #288718

Bonjour Minie.

Merci pour ta réponse.

Bon j'ai fait normalement comme tu l'écris dans ta réponse mais je pense que ça ne marche pas pour moi.

Voici ce que j'ai fait :
1 - j'ai mis l'image mondialRelay.png dans le répertoire ../media/com_hikashop/images/shipping/
2 - j'ai rajouté la condition PHP dans la classe CSS hikashop_checkout_shipping_radio. Par contre il y a une condition sur le if(!HIKASHOP_RESPONSIVE), je l'ai donc modifié dans le IF (ligne 178 aussi pour moi) et dans le ELSE (ligne 184 pour moi). Ai-je bien fait ?

<?php if(!HIKASHOP_RESPONSIVE) { ?>
			<td>
				<input class="hikashop_checkout_shipping_radio <?php if ($rate->shipping_images == 'mondialRelay') { echo 'mondialRelay';} ?>" type="radio" name="hikashop_shipping<?php echo $shipping_key;?>" id="hikashop_shipping_<?php echo $rate->shipping_type.'_'.$rate->shipping_id . $shipping_key;?>" value="<?php echo $rate->shipping_type.'_'.$rate->shipping_id . $shipping_key;?>" <?php echo $checked; ?> />
			</td>
			<td><label for="hikashop_shipping_<?php echo $rate->shipping_type.'_'.$rate->shipping_id . $shipping_key;?>" style="cursor:pointer;">
				<span class="hikashop_checkout_shipping_image">
<?php } else { ?>
			<td>
				<input class="hikashop_checkout_shipping_radio <?php if ($rate->shipping_images == 'mondialRelay') { echo 'mondialRelay';} ?>" type="radio" name="hikashop_shipping<?php echo $shipping_key;?>" id="hikashop_shipping_<?php echo $rate->shipping_type.'_'.$rate->shipping_id . $shipping_key;?>" value="<?php echo $rate->shipping_type.'_'.$rate->shipping_id . $shipping_key;?>" <?php echo $checked; ?> />
				<label class="btn btn-radio" for="hikashop_shipping_<?php echo $rate->shipping_type.'_'.$rate->shipping_id . $shipping_key;?>"><?php echo $rate->shipping_name;?></label>
				<span class="hikashop_checkout_shipping_price_full"><?php echo $price_text; ?></span>
				<span class="hikashop_checkout_payment_image">
3 - j'ai rajouté la condition mais je ne sais pas où la mettre dans le fichier PHP :) Où l'as-tu mise stp ?
4 - pour finir tu dis avoir doublé la livraison (ce que j'ai fait aussi) avec un display:none. Mais où est-ce que tu rajoutes ce display:none ?

Désolé pour mes questions mais je débute en PHP, CSS et JS ;)
Merci pour tes réponses.

EDIT : rajout du passage en caisse et panier + livraison.

1 - passage en caisse


2 - panier + livraison


3 - livraison n°2


Normalement la 2ème livraison devrait être en display:none si j'ai bien compris ?
Par contre ce que je ne comprends pas c'est que si je choisis "Mondial Relay" les informations complémentaires n'apparaissent pas alors !!!
Merci pour tes explications.

Cordialement.

Last edit: 6 years 8 months ago by rooominet83.

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

  • Posts: 454
  • Thank you received: 31
  • Hikamarket Multivendor Hikashop Business
6 years 8 months ago #288727

Bonjour Deluze,

etape 1 et 2 nikel. Pour l'étape 3 c'est du javascript alors il faut que tu l'insère dans un fichier .js dans ton template. Je ne sais pas ce que tu utilise, moi je créer mes templates avec template creator CK, et je créer un fichier .js perso. Donc soit tu fais ca, sans oublier de le déclarer dans l'index.php de ton template

<script src="/templates/ton_template/scripts/script.js" type="text/javascript"></script>
Soit tu trouve un fichier .js déjà présent dans le template que tu utilise, et tu ajoute le code de l'étape 3 à la fin. (le mieux est quand même d'ajouter ton propre fichier.)

Etape 4, un peu similaire à l'étape 3 sauf que c'est du CSS, il faut donc que tu ajoute le display:none dans un fichier du style template.css dans ton template, par contre tu dois bien sélectionner le mode de livraison de cette étape et non de la première. Par exemple mon doublon de livraison est à l'étape 2, mon code CSS est donc :
.hikashop_checkout_page_step2 .hikashop_shipping_methods {
    display: none;
}

Regarde dans la structure HTML de Hikashop à l'étape voulue de ton panier, la DIV englobante qui porte l'id "hikashop_checkout_page" porte aussi une classe (du style "hikashop_checkout_page_step2") qui contiendra le numéro de l'étape pour que ca ne se répercute pas sur le reste.

Ensuite, même après avoir fini ces deux étapes ca ne peut pas fonctionner sur ton site si tu met l'image de la poste pour ton mode de livraison mondialRelay. En fait le principe de mon code, en me servant de l'image, c'est qu'il est valable pour tous les modes de livraisons MondialRelay, car sur ce site par exemple j'ai 7 mondiaRelay, 7 Colissimo, et d'autres types, donc ca aurait été trop long de cibler par ID de mode de livraison, mais il faut te servir de l'image que je t'ai fait mettre dans le dossier " ../media/com_hikashop/images/shipping/".

Etape 1 - l'image doit être attribuée dans la config de tes modes de livraison MondialRelay.

Etape 2 - la condition PHP que je t'ai fait rajouter dans la class va regarder dans la base de donnée quelle image est attribuée au mode de livraison, et si l'image porte le nom "mondialRelay", ca ajoute la class mondialRelay.

Etape 3 - Le code javascript va détecter si une case mondial relay est cochée, pour afficher le champ perso qui le contient, sinon il le retire du code.

Etape 4 - Pour faire propre, on évite la répétition visuelle des modes de livraisons sur ton étape 3 en ciblant la div en CSS pour la supprimer de la page sans la supprimer du code.

Normalement après ca, ca marchera tant que tu attribuera l'image aux modes de livraison mondialRelay

Pour ta dernière question, si jamais tu as d'autres infos additionnelles que tu souhaites afficher sans afficher mondiaRelay, il te faut changer le sélecteur de l'étape 3 et remplacer "#hikashop_checkout_additional_info" par "#hikashop_order_mondialrelay" par exemple ainsi tu ne cible que le widget.

Last edit: 6 years 8 months ago by Minie.

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

  • Posts: 382
  • Thank you received: 13
  • Hikashop Business
6 years 8 months ago #289139

Bonjour, il y a toujours pas moyen de récupérer sur le mail le lieu de livraison ?
ça n'affiche que le code mondial relais ?
Si un client choisi un point relais à côté de son lieu de travail, impossible de savoir où est le point relais.

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

Time to create page: 0.131 seconds
Powered by Kunena Forum