Frais de port et type de transport

14 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Ma boutique de billetterie n'utilise que l'envoi postal comme type d'expédition avec des frais de port fixes correspondant à l'affranchissement.

Comment faire pour supprimer la liste déroulante "choix du type d'expédition" dès la création du caddy et renseigner immédiatement les frais de port fixes pour cliquer immédiatement sur "Commander" ??

Merci de votre réponse.

Korrigan

1 personne aime ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Ces informations sont configurables en back office. Dans l'onglet 'Gestion du site', les pages modes de livraisons et tarifs de livraisons vous permettrons de configurer vos moyens et frais de ports de la manière que vous souhaitez.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour, Ces informations sont configurables en back office. Dans l'onglet 'Gestion du site', les pages modes de livraisons et tarifs de livraisons vous permettrons de configurer vos moyens et frais de ports de la manière que vous souhaitez.

Bonjour Simon,

Nous nous sommes mal compris : j'ai bien configuré 1) les zones de livraison et 2) les tarifs de livraison dans le back office. En l'occurrence, il n'existe qu'un seul tarif de livraison (1,50€ quel que soit la commande) puisqu'il correspond à l'envoi par la poste des tickets de la billetterie. Dans la rubrique "Gestion des frais de port", j'ai sélectionné "en fonction des zones, du poids total et du montant de la commande" et j'ai renseigné un Total maximal pour ce tarif à 10000€, un montant de 1,50€ sans TVA.

Tout fonctionne bien ainsi.

Ma question porte sur le déroulement de la création du caddy :

Lorsque le client a créé son caddy, une étape intermédiaire apparait, que je voudrais supprimer (voir copie écran 1) : sur cette page, en haut à droite, les Frais de Port ne sont pas (encore) renseignés, et le total général est forcément provisoire, puisque ils ne le seront qu'après avoir sélectionné "Envoi Postal" dans la liste déroulante en bas à gauche, dans le cadre "Livraison".

J'aimerais arriver directement sur la page de la copie d'écran 2, obtenue après sélection de "Envoi postal", puisque c'est le seul cas de figure possible ! Autrement dit, que le seul choix offert par la liste déroulante "Envoi Postal" soit validé à l'ouverture, et donc que le total de la commande indiqué en haut à droite soit mis à jour en conséquence, ou même que cette liste déroulante soit supprimée puisqu'elle est inutile !

Merci de votre réponse

Korrigan

post-7669-0-94289500-1337002023_thumb.jp

post-7669-0-95775000-1337002025_thumb.jp

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Pour forcer le type de livraison à l'ouverture de la page caddie, vous pouvez remplacer

    $typeId = intval($_POST['type']);
dans achat\caddie_affichage.php par l'unique moyen de livraison de votre site :
   $typeId = VOTRE_ID;
Il faudra également enlever le test sur la présence du POST :
if (isset($_POST['type'])) {

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour, Pour forcer le type de livraison à l'ouverture de la page caddie, vous pouvez remplacer
 $typeId = intval($_POST['type']);
dans achat\caddie_affichage.php par l'unique moyen de livraison de votre site :
 $typeId = VOTRE_ID;
Il faudra également enlever le test sur la présence du POST :
if (isset($_POST['type'])) {

Bonjour Simon,

Merci de votre réponse. Je pense que nous approchons de la solution.

Voici le code résultant :

//if (isset($_POST['type'])) {

$typeId = 8;

$_SESSION['session_caddie']->set_type($typeId);

$_SESSION['session_caddie']->update();

//}

Malgré tout, ce n'est pas parfait. L'envoi postal est bien reconnu comme seul option possible, mais il faudrait que le caddy se mette à jour directement à l'affichage. En l'occurrence, le libellé "Envoi Postal"( correspondant au type 8) n'apparait dans la liste déroulante qu'après avoir cliqué sur "Mettre à jour le panier" (à gauche au-dessus du bloc "Livraison").

Ne pourrait-on pas carrément supprimer la liste déroulante au profit d'un libellé fixe du genre "Type d'expédition : Envoi Postal" ?

L'intérêt final étant, ne l'oublions pas, que les montants en haut à droite soient mis à jour dès l'ouverture de la page.

Merci de votre réponse.

Korrigan

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

La fonction update recalcul les montants du caddie en prenant en compte le type de livraisons, et charge la variable $_SESSION['session_caddie']->typeId.

Dans la fonction get_caddie_content_html() du fichier \lib\fonctions\display_caddie.php, la sélection automatique de l'option est faite via cette variable. A priori, la modification que vous avez faites doit fonctionner.

Pouvez-vous tester les variables $_SESSION['session_caddie']->typeId et $_SESSION['session_caddie']->type lors de l'affichage du panier ?

Si vous souhaitez supprimer le select des moyens de livraisons, vous pouvez modifier ce bloc de code :

           	 if (!empty($_SESSION['session_caddie']->zoneId) && !empty($mode_transport)) {
if ($mode_transport == 1) {
// Ici on est dans le cas où le calcul des frais de ports est par poids ou par montant total
$sqlType = 'SELECT DISTINCT(t.id), t.nom_' . $_SESSION['session_langue'] . '
FROM peel_tarifs tf
INNER JOIN peel_types t ON t.id = tf.type
WHERE t.etat = 1 AND tf.zone = "' . intval($_SESSION['session_caddie']->zoneId) . '" AND (poidsmax>="' . floatval($_SESSION['session_caddie']->total_poids) . '" OR poidsmax=0) AND (totalmax>="' . floatval($_SESSION['session_caddie']->total_produit) . '" OR totalmax=0)';
$resType = query($sqlType);
}

if (!empty($resType) && num_rows($resType) > 0) {
$output .= SHIPPING_TYPE . ' <span class="etoile">(*)</span>' . BEFORE_TWO_POINTS . ': ' . $form_error_object->text('type') . '
<select name="type" onchange="frmsubmit(\'' . REFRESH . '\')">
<option value="">' . SHIP_TYPE_CHOOSE . '</option>
';
while ($Type = fetch_assoc($resType)) {
$output .= '
<option value="' . intval($Type['id']) . '" ' . frmvalide(vb($_SESSION['session_caddie']->typeId) == $Type['id'], ' selected="selected"') . '>' . String::html_entity_decode_if_needed($Type['nom_' . $_SESSION['session_langue']]) . '</option>';
}
$output .= '
</select>
';
} else {
$output .= '
<span style="color:red;">' . ERREUR_TYPE . '</span><br />';
}
}[/CODE]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour, La fonction update recalcul les montants du caddie en prenant en compte le type de livraisons, et charge la variable $_SESSION['session_caddie']->typeId. Dans la fonction get_caddie_content_html() du fichier \lib\fonctions\display_caddie.php, la sélection automatique de l'option est faite via cette variable. A priori, la modification que vous avez faites doit fonctionner. Pouvez-vous tester les variables $_SESSION['session_caddie']->typeId et $_SESSION['session_caddie']->type lors de l'affichage du panier ? Si vous souhaitez supprimer le select des moyens de livraisons, vous pouvez modifier ce bloc de code :
 if (!empty($_SESSION['session_caddie']->zoneId) && !empty($mode_transport)) { if ($mode_transport == 1) { // Ici on est dans le cas o&#249; le calcul des frais de ports est par poids ou par montant total $sqlType = 'SELECT DISTINCT(t.id), t.nom_' . $_SESSION['session_langue'] . ' FROM peel_tarifs tf INNER JOIN peel_types t ON t.id = tf.type WHERE t.etat = 1 AND tf.zone = "' . intval($_SESSION['session_caddie']->zoneId) . '" AND (poidsmax>="' . floatval($_SESSION['session_caddie']->total_poids) . '" OR poidsmax=0) AND (totalmax>="' . floatval($_SESSION['session_caddie']->total_produit) . '" OR totalmax=0)'; $resType = query($sqlType); } if (!empty($resType) && num_rows($resType) > 0) { $output .= SHIPPING_TYPE . ' <span class="etoile">(*)</span>' . BEFORE_TWO_POINTS . ': ' . $form_error_object->text('type') . ' <select name="type" onchange="frmsubmit(\'' . REFRESH . '\')"> <option value="">' . SHIP_TYPE_CHOOSE . '</option> '; while ($Type = fetch_assoc($resType)) { $output .= ' <option value="' . intval($Type['id']) . '" ' . frmvalide(vb($_SESSION['session_caddie']->typeId) == $Type['id'], ' selected="selected"') . '>' . String::html_entity_decode_if_needed($Type['nom_' . $_SESSION['session_langue']]) . '</option>'; } $output .= ' </select> '; } else { $output .= ' <span style="color:red;">' . ERREUR_TYPE . '</span><br />'; } }

Bonjour Simon,

Je vais étudier ce code pour supprimer la liste déroulante.

Mais dans l'immédiat je ne comprends pas pourquoi le caddy ne se met pas à jour à l'ouverture de la page, mais seulement après rafraichissement de la page (via le navigateur) ou par "Mettre à jour le panier" ????

Ce cas de figure serait suffisant, puisque l'étape suivante consiste pour l'acheteur à cliquer sur le bouton "Commander"

Par ailleurs, la vérification est concluante, un test des variables à l'affichage du caddy donne :

$_SESSION['session_caddie']->typeId = 8

et

$_SESSION['session_caddie']->type = Envoi postal

En conclusion, je n'arrive toujours pas à la solution...

Merci de votre réponse

Korrigan

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon,

Je vais étudier ce code pour supprimer la liste déroulante.

Mais dans l'immédiat je ne comprends pas pourquoi le caddy ne se met pas à jour à l'ouverture de la page, mais seulement après rafraichissement de la page (via le navigateur) ou par "Mettre à jour le panier" ????

Ce cas de figure serait suffisant, puisque l'étape suivante consiste pour l'acheteur à cliquer sur le bouton "Commander"

Par ailleurs, la vérification est concluante, un test des variables à l'affichage du caddy donne :

$_SESSION['session_caddie']->typeId = 8

et

$_SESSION['session_caddie']->type = Envoi postal

En conclusion, je n'arrive toujours pas à la solution...

Merci de votre réponse

Korrigan

Bonjour Simon,

Help !!!

Le problème reste identique ! Il faudrait que la page s'actualise dès l'ouverture avec les frais de tansport !

Comment faire ?

Pour essayer de palier à ce problème j'ai provisoirement changé la configuration du site en supprimant les frais de port au profit des "Frais de préparation".

Dans ce cas l'affichage du caddy est correct dès l'ouverture, avec les 1,50€ correspondant en fait à nos frais d'affranchissement.

Le problème c'est que nous perdons systématiquement partout les affichages de l'adresse de livraison !!!!!!

Ce n'est donc pas la solution finale....!!??

Pouvez-vous m'aider à résoudre ce problème ?? Je suis un peu perdu....

Merci

Korrigan

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Bonjour Simon,

Je vais étudier ce code pour supprimer la liste déroulante.

Mais dans l'immédiat je ne comprends pas pourquoi le caddy ne se met pas à jour à l'ouverture de la page, mais seulement après rafraichissement de la page (via le navigateur) ou par "Mettre à jour le panier" ????

Ce cas de figure serait suffisant, puisque l'étape suivante consiste pour l'acheteur à cliquer sur le bouton "Commander"

Par ailleurs, la vérification est concluante, un test des variables à l'affichage du caddy donne :

$_SESSION['session_caddie']->typeId = 8

et

$_SESSION['session_caddie']->type = Envoi postal

En conclusion, je n'arrive toujours pas à la solution...

Merci de votre réponse

Korrigan

=> Après des tests en local, nous avons fait fonctionner la boutique PEEL comme vous le souhaitez. Je ne comprends pas non plus pourquoi la manipulation que je vous aie fournis ne fonctionne pas sur votre site. Pouvez-vous nous transmettre les accès à votre site pour comprendre le problème svp ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

=> Après des tests en local, nous avons fait fonctionner la boutique PEEL comme vous le souhaitez. Je ne comprends pas non plus pourquoi la manipulation que je vous aie fournis ne fonctionne pas sur votre site. Pouvez-vous nous transmettre les accès à votre site pour comprendre le problème svp ?

voici l'adresse : http://nuitsdesologne.com/caddy2/

merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

La sélection du type de livraison fonctionne bien sur votre site, mais il faut sélectionner la zone de livraison avant. Il faut donc faire la même opération sur la zone que pour le type, c-a-d forcer la valeur de l'id de la zone dans le fichier caddie_affichage.php :

if (isset($_POST['pays_zone'])) {
$_SESSION['session_caddie']->set_zone(VOTRE_ID);
$_SESSION['session_caddie']->update();
}[/CODE]

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour, La sélection du type de livraison fonctionne bien sur votre site, mais il faut sélectionner la zone de livraison avant. Il faut donc faire la même opération sur la zone que pour le type, c-a-d forcer la valeur de l'id de la zone dans le fichier caddie_affichage.php :
if (isset($_POST['pays_zone'])) { $_SESSION['session_caddie']->set_zone(VOTRE_ID); $_SESSION['session_caddie']->update(); }

Bonjour,

????

toujours pas !!!!

en modifiant ce code il est exact que les variables Zone et Livraison prennent la bonne valeur dès L'OUVERTURE de la page. Mais les frais de transport en haut à droite RESTENT A ZERO (au lieu d'indiquer immédiatement 1,50€) tant que la page n'a pas été mise à jour par le submit du select ou par le lien "Mise à jour du panier" dont le script sollicite également le même submit.

Ce qu'il faudrait c'est un REFRESH de la page sitôt après qu'elle soit chargée.

J'ai essayé de mettre un echo refresh, mais le problème c'est que si je mets un refresh à une seconde, la page se recharge toutes les secondes...

Je pensais se serait plus simple ....!

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Dans caddie_affichage.php, le code concernant la zone est


$pays_zone = 1;
$_SESSION['session_caddie']->set_zone($_POST['pays_zone']);
$_SESSION['session_caddie']->update();
[/CODE] il faut mettre
[CODE] $pays_zone = 1;
$_SESSION['session_caddie']->set_zone($pays_zone);
$_SESSION['session_caddie']->update();

Sinon, la zone n'est pas correctement défini.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Dans caddie_affichage.php, le code concernant la zone est


	$pays_zone = 1;

	$_SESSION['session_caddie']->set_zone($_POST['pays_zone']);

	$_SESSION['session_caddie']->update();

il faut mettre
	$pays_zone = 1;

	$_SESSION['session_caddie']->set_zone($pays_zone);

	$_SESSION['session_caddie']->update();

Sinon, la zone n'est pas correctement défini.

OUUUPPPPSSSS................!!!!!

Je suis désolé, c'est moi qui ai fait l'erreur ! Effectivement en corrigeant ma bêtise, ça marche !!!!!

C'est donc exactement ce que je désirais comme fonctionnement !

Mille mercis pour votre patience et votre efficacité !

Bien cordialement

Korrigan

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping