Modification Adresse Livraison Pour Kiala

9 posts in this topic

Posted · Report post

Bonjour, je me casse la tete pour pouvoir proposer kiala a mes client, pour le moment j'ai juste un probleme a la fin.

 

Je passe par step1 et si c'est mode kiala alors dans la partie droite je supprime les champ adresse et je propose un choix radio de point kiala, apres validation ca me met bien a gauche l'adresse de facturation et a droite le nom etc avec adresse du point kiala, je choisi le mode de paiement, je valide les CGV puis valide la commande et la sur le resumé ET sur la BDD j'ai les info qui etait normalement dans les champs que j'ai caché en step1... J'ai forcé le modification de 

 

$frm['adresse2'] = $utilisateur['adresse'];
$frm['code_postal2'] = $utilisateur['code_postal'];
$frm['ville2'] = $utilisateur['ville'];
$frm['pays2'] = get_country_name($utilisateur['pays']);
 
Par
 
$frm['adresse2'] = "Point Kiala ".$v['shortId']."<br>".$v->name."<br>".$v->address->street;
$frm['code_postal2'] = $v->address->zip;
$frm['ville2'] = $v->address->city;
$frm['pays2'] = "Belgique";

 

Mais rien n'y fait. Se que je voudrais savoir, c'est comment se comporte la variable adresse de livraison, par quel fonction / page / tpl elle passe avant de se retrouver sur le resumé (qui si je ne me trompe pas est repris de la BDD)? A quel endroit ses valeur sont mise en BDD? la commande est enregistré en 2 morceau? une fois pour les donnée de base puis une seconde fois avec les produits?

 

Enfin si vous pouvez m'orienté car car fait 16h d'affilé que je suis la dessus et j'ai touts essayé et je commence a faire pire que mieux...

 

Merci

 

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

 

Les adresses de facturation et livraison sont gérées principalement dans la page achat/achat_maintenant.php. qui gère différent cas de figure en fonction de la configuration de la boutique et de . Les informations sont prise de la base de donnée avec get_user_information et sont stockée en session via la fonction put_session_commande. La commande est créée en une seul fois sur la page achat/fin_commande.php par la fonction save_in_database de la classe Caddie.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour, Merci pour ses différent détails, je m'y remet merci ;)

Share this post


: post
Share on other sites

Posted · Report post

Rebonjour, je n'y arrive pas :(

 

je comprend le fonctionnement mais il y a plusieurs put_session_commande et je ne vois pas trop  laquel est utilisé...

 

Si dans achat_maintenant.php je met ceci:

 

if (is_socolissimo_module_active() && !empty($_REQUEST) && !empty($_REQUEST['PUDOFOID']) && !empty($_REQUEST['CEEMAIL']) && !empty($_REQUEST['STR_SIGNATURE']) && !empty($_REQUEST['ORDERID'])) {
	// On veut vérifier s'il y a eu passage par la page SO de SoColissimo
	put_session_commande_from_so_page();
	$_SESSION['session_caddie']->update();
} elseif (!empty($_POST)) {
//*****AJOUT DEBUT
$_POST['adresse2'] = "test";
//*****AJOUT FIN
	put_session_commande($_POST);
	if (!isset($form_error_object)) {
		$form_error_object = new FormError();

Alors la pas de probleme, ca enregistre bien "test" en BDD et sur le resumé de la commande MAIS quand je veux reprendre les bonne variable du point kiala (nom, adresse, zip, city, pays) presente dans display_caddie.php sous la fonction get_order_step2 qui s'occupe deja de les envoyé vers le step2 pour l'affichage (qui s'affiche bien) ben ca ne fonctionne pas... Les variable sont pas reconnu dans achat_maintenant.php, j'ai meme essayé de passer ses variable en SESSION donc en step2 je les affiche ET je les met en SESSION puis dans achat maintenant je met ceci:

 

if (is_socolissimo_module_active() && !empty($_REQUEST) && !empty($_REQUEST['PUDOFOID']) && !empty($_REQUEST['CEEMAIL']) && !empty($_REQUEST['STR_SIGNATURE']) && !empty($_REQUEST['ORDERID'])) {
	// On veut vérifier s'il y a eu passage par la page SO de SoColissimo
	put_session_commande_from_so_page();
	$_SESSION['session_caddie']->update();
} elseif (!empty($_POST)) {
//*****AJOUT DEBUT
$_POST['adresse2'] = $_SESSION['session_caddie']->testadresse2;
//*****AJOUT FIN
	put_session_commande($_POST);
	if (!isset($form_error_object)) {
		$form_error_object = new FormError();

Mais la ca ne fonctionne plus, je valide la commande et j'ai en adresse de livraison la meme adresse que celle de facturation et non pas celle du point kiala...

 

Désolé de ne pas géré php sur le bout des doigt mais j'essaie de me débrouillé un maximum :(

 

Merci pour votre aide ;)

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Modifier le process de commande nécessite du travail et du temps, comme vous l'avez constaté. Nous pouvons réaliser ce développement si vous le souhaitez, auquel cas il faut définir des spécifications fonctionnelles précises qui nous permettront d'établir un devis.

Share this post


: post
Share on other sites

Posted · Report post

Je comprend Simon mais c'est financièrement impossible actuellement... J'ai juste du temps... 

 

Merci

Share this post


: post
Share on other sites

Posted · Report post

Rebonjour, j'y suis arrivé  :D

 

Apres une 50ene de commande passé moi meme pour tester, ca fonctionne correctement :)

 

Il me reste plus qu'une choses a faire, c'est trouver ou sont géré les erreur de formulaire pour pouvoir ajouter un controle sur le choix du point Kiala, histoire de ne pas pouvoir passé a l'etape suivante si aucun point Kiala n'est selectionné.

 

Merci Simon pour les indication de comment se passe la commande.

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Les erreurs du formulaire sont gérées par la class form_error_object dans le fichier achat/achat_maintenant.php.
Par exemple la ligne
    $form_error_object->valide_form($_SESSION['session_commande'], $check_fields);
prends en premier argument la session commande (qui contient les données du formulaire) et $check_fields qui contient le nom des valeurs à contrôler. Si une de ces valeurs n'est pas renseignée, une erreur sera automatiquement créée.
Pour ajouter le contrôle d'un nouveau champ, vous pouvez ajouter une nouvelle entrée dans le tableau $check_fields. $check_fields prend en index le nom du champ à contrôler et a pour valeur le texte qui servira pour le message d'erreur.
Il restera à gérer l'affichage de l'erreur dans le fichier order_step1.tpl. Cette manipulation est à faire dans get_order_step1 (les messages à afficher sont passés en paramètre via form_error_object).

Share this post


: post
Share on other sites

Posted · Report post

Bonjour, Merci Simon, touts fonctionne a merveille :D

 

Je viens meme de recevoir une commande d'un client par Kiala :) Reste plus qu'a laissé faire le temps pour voir si il n'y a pas de bug :)

 

Un tout grand merci pour ses conseil car c'est pas toujours simple de visualisé le fonctionnement quand il y a des morceau de code un peux partout ;)

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping