Forcer une adresse de livraison

  • Posts: 332
  • Thank you received: 4
10 years 6 months ago #129024

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.

  • Posts: 81566
  • Thank you received: 13075
  • MODERATOR
10 years 6 months ago #129069

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.

  • Posts: 332
  • Thank you received: 4
10 years 6 months ago #129109

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.

  • Posts: 81566
  • Thank you received: 13075
  • MODERATOR
10 years 6 months ago #129151

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.

  • Posts: 332
  • Thank you received: 4
10 years 6 months ago #129410

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.

  • Posts: 26014
  • Thank you received: 4004
  • MODERATOR
10 years 6 months ago #130013

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.

Also helping the HikaShop support team when having some time or couldn't sleep.
By the way, do not send me private message, use the "contact us" form instead.

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

  • Posts: 332
  • Thank you received: 4
10 years 6 months ago #130045

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 :

$checked.=' onclick="this.form.submit(); return false;"';
par
$checked.=' onclick="function-pour-relais();"';
sachant que function_pour_relais(), c'est :
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: 10 years 6 months ago by emohk.

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

  • Posts: 13201
  • Thank you received: 2322
10 years 6 months ago #130088

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.

  • Posts: 332
  • Thank you received: 4
10 years 6 months ago #130096

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.

  • Posts: 332
  • Thank you received: 4
10 years 6 months ago #130120

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: 10 years 6 months ago by emohk.

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

  • Posts: 332
  • Thank you received: 4
10 years 5 months ago #130534

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.

  • Posts: 81566
  • Thank you received: 13075
  • MODERATOR
10 years 5 months ago #130706

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