Skip to main content

Forcer une adresse de livraison

More
12 years 11 months ago #129024 by emohk
Bonjour,
Je suis en train de mettre en place ma gestion de points relais : à ce jour, un internaute sur la page de commande peut sélectionner un magasin relais et en retour de cette validation, j'ai bien les coordonnées du magasin.
Maintenant, je suis un peu bloqué car je voudrais que cette nouvelle adresse soit traitée comme une nouvelle adresse de livraison (telle que sur la commande) et donc qu'elle soit directement affichée dans la div "hikashop_checkout_shipping_div". ne faut-il pas utiliser un des API adress???

Merci
Cordialement

Eric

-- url of the page with the problem -- : mywebsite.com/mypage
-- HikaShop version -- : x.x.x
-- Joomla version -- : x.x
-- PHP version -- : x.x.x
-- Browser(s) name and version -- : XXXXX x.x.x
-- Error-message(debug-mod must be tuned on) -- : Error_message

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

More
12 years 11 months ago #129069 by nicolas
Bonjour,

Pour le passage en caisse, il faut définir une fonction getShippingAddress qui doit retourner soit false si l'utilisateur a sa propre adresse, soit l'html pour remplacer le bloc de sélection d'adresse de livraison.
Ensuite, il faudra la stocker dans un champs personnalisé de la table "order" pour pouvoir ensuite la réafficher de la même manière pour la facture, les emails, etc de la commande.

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

More
12 years 11 months ago #129109 by emohk
Bonjour Nicolas,

En fait, en retour de mon interface de sélection d'un relais, j'ai une adresse avec différents champs (nom, adresse1, ... cP, ville) et je voudrais enregistrer cette nouvelle adresse de shipping comme le ferait l'appel au popup de saisie d'une nouvelle adresse (donc directement sans passer par la popup) et je décoche la case à cocher "Utiliser la même adresse que pour la facturation".

Une idée.

Merci

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

More
12 years 11 months ago #129151 by nicolas
Dans ce cas, il suffit de l'enregistrer dans la table hikashop_address. Vous pouvez utiliser la fonction save de class.address pour cela.
Il faut penser à bien spécifier l'id de l'utilisateur courant dans le champs address_user_id. C'est récupérable comme ceci:
$user_id = hikashop_loadUser();
Enfin, une fois l'adresse enregistrée et l'id de l'adresse récupéré, il suffit de mettre l'id en session comme ceci:
$app=JFactory::getApplication();
$app->setUserState('com_hikashop.shipping_address',$address_id);

La case est cochée/décochée automatiquement par HikaShop en fonction des adresses de shipping/billing. Si c'est le même id en session, c'est que la case est cochée, sinon la case est décochée.

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

More
12 years 11 months ago #129410 by emohk
Merci pour ces info.

Par ailleurs, en retour du popup qui a pemi de sélectionner un relais, comment je peux (car je suis un peux perdu) activer le radio bouton qui correspond à la méthode qui a permi de lancer ce popup dans le checkout ?

Merci

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

More
12 years 11 months ago #130013 by Jerome
Bonjour,

Je pense que la radio doit être sélectionnée avant (enfin, en même temps) que l'ouverture de la popup.
Ca sera plus simple à mettre en place que de gérer l'évènement de fermeture/validation.

Cordialement,

Jerome - Obsidev.com
HikaMarket & HikaSerial developer / HikaShop core dev team.

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

More
12 years 11 months ago - 12 years 11 months ago #130045 by emohk
Bonjour,

Oui en effet, c'est certainement plus simple. Du coup, je modifie pour le radio dans shipping.php qui porte sur le mode de livraison pour le relais :
Code:
$checked.=' onclick="this.form.submit(); return false;"';
par
Code:
$checked.=' onclick="function-pour-relais();"';
sachant que function_pour_relais(), c'est :
Code:
window.open (xxx); this.form.submit(); return false;"';

Par contre, j'ai un soucis dans l'url d'appel de ma popup, j'ai fais un essai en mettant directement le lien complet et j'ai une errue 404??
Cdt
Eric
Last edit: 12 years 11 months ago by emohk.

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

More
12 years 11 months ago #130088 by Xavier
Bonjour,

Êtes vous sûr de la validité de l'url ? Avez vous bien mis les quote comme il faut ?
Pourquoi ne pas ajouter directement window.open(xxx); dans le onclick plutot que de faire une fonction en plus ?

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

More
12 years 11 months ago #130096 by emohk
Oui, j'ai vraiment envie de compliquer (lol).
Par contre, pour mon url, le lien que j'ai mis dans window.open() est valide, car dans mon navigateur j'y accède ???

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

More
12 years 11 months ago - 12 years 11 months ago #130120 by emohk
En fait, j'ai résolu après qqc essai, mais je suis passé par une fonction (une probleme d'encodage avec les guillemets et les doubles côtes)

Merci
Last edit: 12 years 11 months ago by emohk.

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

More
12 years 11 months ago #130534 by emohk
Bonsoir,

Je bute sur un problème lié à l'adaptation de ma gestion de livraison : j'ai un champs personnalisé (type textarea), dont la valeur est initié au retour de l'appel de mon popup par une instruction document.write (document.form.le nom de mon champ). Toute est OK, le textarea affiche bien le contenu. Par contre, comment je peux transferer le textarea dans une variable php de shipping.php

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

More
12 years 11 months ago #130706 by nicolas
Mettez un name à votre textarea ( par example name="my_choice" ). Il sera ensuite disponible dans $_POST comme ceci:
echo $_POST;

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

Time to create page: 0.245 seconds
Powered by Kunena Forum