Affichage du caddie / cout du transport

12 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour,

Voila, lorsque le client commande un article et qu'il arrive sur le caddie, je voudrais que le premier affichage du caddie ne comporte pas le cout du transport, car

le transport est facturé selon l'adresse de livraison (sans choix possible par le client - il sélectionne l'adresse de livraison et le calcul du transport devra etre

automatisé selon un tableau de tarifs) et une fois que le client choisi soit :

- récupération de la commande au comptoir

- livraison à l'adresse de facturation

- livraison à une autre adresse

et là en fonction de son choix le cout du transport sera calculé puis apres l'étape '2' il obtiendra les prix définitifs

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

compris ! tu souhaites afficher le transport une fois le pays et mode d'expédition renseignés ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

pas exactement mais c'est dans l'dée

En fait il n'aura pas le choix du mode d'expédition car les expéditions sont faites par un seul transporteur et ce transport nous fait passer le tableau des

tarifs qu'il applique selon l'adresse de destination. Donc une fois le pays selectionné le transport doit être automatiquement calculé selon les deux premier chiffre du code postal (c'est à dire en fonction du département)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

oui en effet l'idée est là !

pour ta demande il s'agit ici d'un développement sur mesure auquel nous pourrons t'aider par le biais de la communauté.

Commence à coder quelques lignes et nous t'aiderons.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

ok ben jvais voir ce sue j'arrive à faire et je vous recontacterez

Mais lorsque j'ai voulu elevé les lignes que je ne voulez pas afficher dans le caddie, j'avais des problemes lorsque je voulais retourner sur la page d'accueil (par exemple) j'aivais une erreur php et impossible de faire quoi que ce soit.

Alors dans quelle page puis-je trouver le calcul des frais de ports exactement car j'ai cherché dans "caddie_affichage"; "caddie" mais je n'ai pas reussi à trouver les lignes correspondant au calcul du transport.

Et une dernière question (du moins pour le moment ;) ) est-il possible de passer le calcul du transport avec des variables globales afin de pouvoir récupérer les valeurs de ces variables dans une autre page ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

voila j'ai enlever l'affichage des données que je ne voulais plus dans le caddie, mais le probleme eest que losque l'on clik sur le boutton "commander" du

caddie, la page suivante ne s'affiche plus ... ;)

Code de la page : "achat/modeles/caddie.php"

<? if ($_SESSION['caddie']->compte_elements() == 0) { 


	echo "<div class=\"normal\">".nl2br(EMPTY_CADDIE)."</div>";

	 return false; 

 } ?>


<script language="Javascript">

function frmsubmit(func) {

	frm = document.entryform;

	frm.func.value = func;

	frm.submit();

}	

</script>

<?php echo "<div class=\"entete\"><img src=\"$wwwroot/images/tres_petite_puce_fleur\">&nbsp;".CADDIE."</div>" ?>


<form name="entryform" method="POST" action="<?=$_SERVER['PHP_SELF']?>">

<input type="hidden" name="func" value="">

<table border="0" cellspacing="5" cellpadding="0" width="100%">


<?


echo "<tr><td>";


echo "<div class=\"label_rouge\">";


echo "<blink>";


echo nl2br(stripslashes(vb script:return confirm('Etes-vous s&ucirc;r de vouloir enlever ce produit du panier ?');" class="normal" href="<?=$_SERVER['PHP_SELF']?>?func=enleve&ligne=<?=$i?>&id=<?=$prod['id']?>"><img src="images/poubelle.gif" width="25" height="25" alt="" border="0"></a></td>

				<td class="lignecaddie">

				<!-- affiche le nom du produit -->

				<a class="normal" href="achat/produit_details.php?id=<?=$prod['id']?>"><?echo stripslashes($prod['nom_'.$_SESSION['langue'].''])?></a>

				<?php


				if (!empty($delivery_stock)) { echo "<br />".DELIVERY_STOCK." : $delivery_stock<br />";}


				echo (!empty($comment)) ? "<br /><b>".COMMENTS."</b><br /><textarea name=\"comment[]\" class=\"formulaire1\">$comment</textarea>" : "<input type=\"hidden\" name=\"comment[]\" value=\"\" />";


				echo (!empty($couleur) > 0) ? "<br /><b>".COLOR."</b> : $couleur<br /> <input type=\"hidden\" name=\"couleur[]\" value=\"$couleur\">" : "<input type=\"hidden\" value=\"\" name=\"couleur[]\">";


				echo (!empty($taille) > 0) ? "<br /><b>".SIZE."</b> : $taille<br /> <input type=\"hidden\" name=\"taille[]\" value=\"$taille\">" : "<input type=\"hidden\" value=\"\" name=\"taille[]\">";


				echo (!empty($email_check) > 0) ? "<br />".EMAIL_FRIEND." : $email_check<br /> <input type=\"hidden\" name=\"email_check[]\" value=\"$email_check\">" : "<input type=\"hidden\" value=\"\" name=\"email_check[]\">";



				echo "</td>";


				echo "<td class=\"lignecaddie\" align=\"center\">";


				if (!empty($remise_produit)) { echo "<s>".fprix($prix_cat)." &euro;</s>&nbsp;"; }


				echo fprix($prix)."&euro;";


				echo "</td>";


				echo "<td class=\"lignecaddie\" align=\"center\">";


				echo (!empty($remise_produit)) ? fprix($remise_produit)." &euro; (- $remise_produit_percent %)" : "-";


				echo "</td>";


				?>


				<td class="lignecaddie" align="center"><?=$quantite?><input type="hidden" name="quantite[]" value="<?=$quantite?>" onChange="java script:frmsubmit('recalc');" class="formulaire1"></td>

				<td class="lignecaddie" align="center">


				<?echo fprix($total_prix); ?> &euro; ttc


				</td>

			</tr>

	<? 		} 

		} 

	} ?>

	<tr>


		<td colspan="5" class="normal" align=right><?echo TOTAL_TTC ?> :</td>


		<td class="normal" align="right">


				<? echo fprix($_SESSION['caddie']->total_produit_avant_promo ) ?>&nbsp;&euro; TTC



		</td>

	</tr>


	<?php


	if (!empty($_SESSION['caddie']->ecotaxe_ttc)) {


	?>


	<tr>

		<td colspan="5" class="normal" align="right">Ecotaxe T.T.C :</td>


		<td class="normal" align="right">


				<? echo fprix($_SESSION['caddie']->ecotaxe_ttc) ?>&nbsp;&euro; T.T.C



		</td>


	<?php

	}


	#- Si la session client contient une remise en % > 0 

	if (!empty($_SESSION['caddie']->total_remise_client)) {


	?>

	<tr>

		<td colspan="5" class="normal" align="right"><?echo REMISE_CLIENT ?> (<? echo $_SESSION['caddie']->remise_client_percent." % "?>):</td>


		<td class="normal" align="right">


				- <? echo fprix($_SESSION['caddie']->total_remise_client) ?>&nbsp;&euro; T.T.C



		</td>

	</tr>

	<?php

	}


	#- Si la session caddie contient un code promotionnel 

	if (!empty($_SESSION['caddie']->total_remise_code) ) { 


	?>


	<tr>

		<td colspan="5" class="normal" align="right"><?echo CODE_PROMO_REMISE." (".$_SESSION['caddie']->remise_code_percent." % ) :";?></td>

		<td class="normal" align="right">

			- <?=fprix($_SESSION['caddie']->total_remise_code) ?>&nbsp;&euro; T.T.C

		</td>

	</tr>

	<? } 


	#- Si la session caddie contient un chèque cadeau

	if (!empty($_SESSION['caddie']->total_remise_cheque) ) { 


	?>


	<tr>

		<td colspan="5" class="normal" align="right"><?echo CHEQUE_CADEAU_REMISE." :";?></td>

		<td class="normal" align="right">

			- <?=fprix($_SESSION['caddie']->total_remise_cheque) ?>&nbsp;&euro; T.T.C

		</td>

	</tr>

	<? } 


	#- Si la session caddie contient un chèque cadeau

	if (!empty($_SESSION['caddie']->total_remise_bon) ) { 


	?>


	<tr>

		<td colspan="5" class="normal" align="right"><?echo BON_REDUCTION_REMISE." :";?></td>

		<td class="normal" align="right">

			- <?=fprix($_SESSION['caddie']->total_remise_bon) ?>&nbsp;&euro; T.T.C

		</td>

	</tr>

	<? }  


	#- Si la session caddie contient un chèque cadeau

	if (!empty($_SESSION['caddie']->avoir) ) { 


	?>


	<tr>

		<td colspan="5" class="normal" align="right"><?echo AVOIR." :";?></td>

		<td class="normal" align="right">

			- <?=fprix($_SESSION['caddie']->avoir) ?>&nbsp;&euro; T.T.C

		</td>

	</tr>

	<? } 


	?>

	<tr>

<!--		<td colspan="5" class="normal" align=right><?echo SHIPPING_COST?> :</td>

		<td class="normal" align="right">

		<?php


			echo (!empty($_SESSION['caddie']->cout_transport)) ? $_SESSION['caddie']->cout_transport." &euro; ttc" : "".OFFERED."&nbsp;".FROM." $seuil_total &euro;"; 


		?>-->

		</td>

	</tr> 

	<?



	if ($_SESSION['caddie']->total > 0) {

	?>


	<tr>


		<td colspan="5" class="normal" align=right><?echo TOTAL_HT ?> :</td>


		<td class="normal" align="right">


				<? echo fprix($_SESSION['caddie']->total_ht) ?>&nbsp;&euro; H.T.



		</td>

	</tr>


	<?php


	if ($_SESSION['caddie']->zoneTva == 1) {


	?><tr>

		<td colspan="5" class="normal" align="right"><i><?echo VAT ?> :</i></td>


		<td class="normal" align="right">


				<i><? echo fprix($_SESSION['caddie']->total_tva) ?>&nbsp;&euro;</i>



		</td>

	</tr>

	<?php


	}


	?>



	<tr>

		<td colspan="5" class="label" align=right><?echo NET ?> :</td>


		<td class="total" align="right">


				<? echo fprix($_SESSION['caddie']->total) ?>&nbsp;&euro;



		</td>

	</tr>


<!--	<? 


	}


	if ( $_SESSION['caddie']->total_points > 0 ) {

	?>

	<tr>

		<td colspan="5" class="normal" align="right"><?echo ORDER_POINT ?> :</td>


		<td class="normal" align="right">


				<? echo $_SESSION['caddie']->total_points."&nbsp;".POINT ?>


		-->

		</td>

	</tr>

	<? } ?>


	<tr>

		<td colspan="6" class="normal">


		<table border="0" cellpadding="5" cellspacing="0" width="100%">


		<tr >

		<!--	<td class="label" style="border-top:1px solid black;border-left:1px solid black;border-right:1px solid black;<?php echo (empty($_SESSION['caddie']->zone)) ? "border-bottom:1px solid black;" : "";?>">


			<?php

			if (isset($_SESSION['caddie']->pays)) {


			$queryPays = mysql_query("SELECT pays_".$_SESSION['langue']." FROM peel_pays WHERE pays_".$_SESSION['langue']." = '".addslashes($_SESSION['caddie']->pays)."'");


				if (mysql_num_rows($queryPays) >0) {


							$objPays = mysql_fetch_array($queryPays);


							$ship = $objPays['pays_'.$_SESSION['langue'].''];


				}


			}


			if (!empty($erreur_pays)) {echo "<font color=red><b>$erreur_pays</b></font><br />";}


			echo COUNTRY_SHIP ?> (*) :

			<select class="formulaire1" name="pays_zone" onChange="java script:frmsubmit('recalc')">

			<option value="|"><?echo COUNTRY_CHOOSE ?></option>

			<?php


			$sqlPays = "SELECT id, pays_".$_SESSION['langue'].", zone FROM peel_pays WHERE etat = '1' ORDER BY pays_".$_SESSION['langue']."";


			$resPays = mysql_query($sqlPays);


			if ($resPays) {


				if (mysql_num_rows($resPays) >0) {


					while ($Pays = mysql_fetch_array($resPays)) {


						echo "<option value=\"".$Pays['id']."|".$Pays['zone']."\"";


						if (vb script:frmsubmit('recalc')">

			<option value=""><?echo SHIP_TYPE_CHOOSE ?></option>

					<?php


					$queryZone = mysql_query("SELECT id FROM peel_zones WHERE nom_".$_SESSION['langue']." = '".addslashes($_SESSION['caddie']->zone)."'");


					$objZone = mysql_fetch_object($queryZone);


					$sqlType = "SELECT DISTINCT(t.id), t.nom_".$_SESSION['langue']." FROM peel_tarifs tf, peel_types t WHERE t.id = tf.type AND tf.zone = '".$objZone->id."'";


					$resType = mysql_query($sqlType) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());;


					if ($resType) {


						if (mysql_numrows($resType)) {


							while ($Type = mysql_fetch_array($resType)) {


								echo "<option value=\"".$Type['nom_'.$_SESSION['langue'].'']."\"";


								if (vb script:frmsubmit('recalc')">

		<a class="normal" href="java script: frmsubmit('recalc');"><img src="images/ok.gif" align="absmiddle"></a><br /> -->

		</td>

		<td colspan="2">&nbsp;</td>

	</tr>


	<tr>

	<!--	<td colspan="5" class='normal'>

		<b><?echo GIFT_CHECK ?> :</b><br />

		<input type="text" class="formulaire1" name="code_cheque" value="<?=strtoupper(vb script:frmsubmit('recalc')">

		<a class="normal" href="java script: frmsubmit('recalc');"><img src="images/ok.gif" align="absmiddle"></a><br /> -->


		</td>

		<td colspan="2">&nbsp;</td>

	</tr>


	<tr>

	<!--	<td colspan="5" class='normal'>

		<b><?echo BON_REDUCTION ?> :</b><br />

		<input type="text" class="formulaire1" name="code_bon" value="<?=strtoupper(vb script:frmsubmit('recalc')">

		<a class="normal" href="java script: frmsubmit('recalc');"><img src="images/ok.gif" align="absmiddle"></a><br />

		-->

		</td>

		<td colspan="2">&nbsp;</td>

	</tr> 

	<tr>

		<td colspan="6" align="right">

		  <p>&nbsp;</p>

		  <p>&nbsp;</p>

		  <p><img src="images/actualiser.gif" align="absmiddle">

				<a class="normal" href="java script: frmsubmit('recalc');" onMouseOver="return overlib('Vos frais de port sont offerts à partir de <?php echo $seuil_total ?> EUROS d\'achat');" onMouseOut="return nd();"><?echo UPDATE ?></a>


			  </p></td>

	</tr>



	<tr><td colspan="6" align="center">

	<p>&nbsp;	</p>

	<p>&nbsp;</p>

	<p><a class="normal" href="java script: frmsubmit('sauvegarde');"><?echo BACKUP ?></b></a> |

	  <a class="normal" href="<?=$wwwroot?>/achat/index.php"><?echo CATALOG?></a> |

	  <a class="normal" href="java script: frmsubmit('vide');"><?echo EMPTY_LIST ?></a>

	  </p>

	<?php


	if ($_SESSION['caddie']->total > 0) { ?>


	<div align="center"><a class="normal" href="java script: frmsubmit('commande');" onMouseOver="return overlib('Vos frais de port sont offerts à partir de <?php echo $seuil_total ?> EUROS d\'achat');" onMouseOut="return nd();"><b><?echo strtoupper(ORDER) ?></b></a></div>


	<?php } else { ?>


	<div align="center" class="normal"><p><?php echo MSG_SUGGEST ?></p></div>



	<?php } ?>






	</td></tr></table>


</td></tr></table>

</form>
code de la page "achat/caddie_affichage.php" :
<?

include("../configuration.inc.php");


if (isset($_REQUEST['func'])) {


	switch ($_REQUEST['func']) {


		case "enleve" :


			/* Décrementation de la table peel_stocks_temporaires */


			$error = array();


			$qte = $_SESSION['caddie']->quantite[$_GET['ligne']];


			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$_GET['ligne']]."'");


			$C = mysql_fetch_object($resC);


			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$_GET['ligne']]."'");


			$T = mysql_fetch_object($resT);


			$sql = "UPDATE peel_stocks_temp SET stock = stock + $qte, qte = qte - $qte WHERE produit_id = '".intval($_SESSION['caddie']->articles[$_GET['ligne']])."' AND couleur_id = '".vn(intval($C->id))."' AND taille_id = '".vn(intval($T->id))."'";


			@mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$_SESSION['caddie']->enleve(intval($_GET['ligne']));


			$_SESSION['caddie']->nettoie();


			$_SESSION['caddie']->recalc_total();


			//if (!empty($_SESSION['caddie']->code_cheque)) { 


			//$error_check = calcul_code_cheque_cadeau($_SESSION['caddie']->code_cheque); 


			//array_push($error, $error_check);


			//}


			//if (!empty($_SESSION['caddie']->code_bon)) { 


			//$error_bon = calcul_code_bon_reduction($_SESSION['caddie']->code_bon); 


			//array_push($error, $error_bon);


			//}


			//if (!empty($_SESSION['caddie']->type)) { 


			//calcul_frais_expedition(vb($_SESSION['caddie']->type));


			//}


			header("Location:".$_SERVER["PHP_SELF"]);



		break;


		case "vide" :


		foreach($_SESSION['caddie']->articles as $ligne => $produitid) {


			$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->couleur[$ligne]."'");


			$C = mysql_fetch_object($resC);


			$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$_SESSION['caddie']->taille[$ligne]."'");


			$T = mysql_fetch_object($resT);


			$sql = "DELETE FROM peel_stocks_temp WHERE produit_id = '".intval($produitid)."' AND couleur_id = '".vn($C->id)."' AND taille_id = '".vn($T->id)."'";


			mysql_query($sql) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


		}


			$_SESSION['caddie']->init();


			break;


		case "sauvegarde" :


			maj_quantite($_POST);


			if (est_identifie()) {


				header("Location:$wwwroot/achat/sauvegarde_devis.php");


			} else {


				header("Location:$wwwroot/membre.php");


			}


		break;						


		case "recalc" :


			$error = maj_quantite($_POST);


		break;


		case "commande" :


			if (empty($_SESSION['caddie']->pays)) {


				$erreur_pays = stripslashes(MSG_ERR_SHIP_COUNTRY);


			} elseif (empty($_SESSION['caddie']->type)) {


				$erreur_type = stripslashes(MSG_ERR_TYPE);


			} else {


			maj_quantite($_POST);


			$_SESSION['caddie']->nettoie();


			$_SESSION['caddie']->recalc_total();


			if (est_identifie()) {


				header("Location:$wwwroot/achat/achat_maintenant.php");


			} else {


				header("Location:$wwwroot/membre.php");


			}


			}


			break;			

	}







	$_SESSION['caddie']->nettoie();


	$_SESSION['caddie']->recalc_total();

}



$DOC_TITLE = "PEEL.FR";


include("$repertoire_modele/haut.php");

include("modeles/caddie.php");

include("$repertoire_modele/bas.php");


/******************************************************************************

 * FONCTIONS

 *****************************************************************************/


function maj_quantite(&$form) {


global $seuil;

global $seuil_total;

global $seuil_total_reve;


		$type = vb($_POST['type']);


		$code_promo = vb($_POST['code_promo']);


		$code_cheque = vb($_POST['code_cheque']);


		$code_bon = vb($_POST['code_bon']);


		$ship = explode("|", $_POST['pays_zone']);


		$paysId = intval($ship[0]);


		$zoneId = intval($ship[1]);


		$zoneTVA = 1;


		/*************************************************************/

		/* Récupération du nom du pays puis insertion dans le caddie */


		/*************************************************************/

		$sqlCountry = "SELECT pays_".$_SESSION['langue']." as pays FROM peel_pays WHERE id = '".vb($paysId)."'";


		$resCountry = mysql_query($sqlCountry)

		or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


		if ($resCountry) {


			if (mysql_num_rows($resCountry) > 0) {


				$Country = mysql_fetch_array($resCountry);


				$pays = $Country['pays'];


				$_SESSION['caddie']->pays($pays); #- On place le nom du pays dans le caddie si il est déterminé



			} else {


				$pays = "";


			}


		}


		/********************************************************************************

********************************/

		/* Si le pays d'expédition est déterminé, on récupère la zone et on vérifie si la zone de TVA s'applique ou pas */

		/********************************************************************************

********************************/


		$sqlZone = "SELECT nom_".$_SESSION['langue'].", tva FROM peel_zones WHERE id = '".vn($zoneId)."'";


		$resZone = mysql_query($sqlZone);


		if ($resZone) {


			if (mysql_num_rows($resZone) > 0) {


				$Zone = mysql_fetch_row($resZone);


				$zone = $Zone[0];


				$zoneTva = $Zone[1];


				$_SESSION['caddie']->zone($zone, $zoneTva); #- On place la zone si elle est déterminée



			} else {


				$zone = "";


				$zoneTva = 1;


			}


		}


		/*********************************/

		/* Calcul des frais d'expédition */

		/*********************************/


		if (!empty($type)) { calcul_frais_expedition(vb($type)); }


		/*********************************/

		/* Gestion du code promotionnel  */

		/*********************************/


		$error = array();


		$sql_cp = "SELECT * FROM `peel_codes_promos` WHERE nom = '".strtoupper($code_promo)."' AND `date_debut` < now( ) AND `date_fin` > now( )" or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


		$res_cp = mysql_query($sql_cp);


		$code = mysql_fetch_array($res_cp);


		if (mysql_num_rows($res_cp) > 0) {


			$remise_code_percent = $code['remise'];


			$_SESSION['caddie']->code_promo(strtoupper($code_promo), $remise_code_percent);  #- On place le code promo dans le caddie si il est déterminé.


		} else {


			$remise_code = 0;


			if (!empty($code_promo)) { # Empeche l'affichage d'un message d'erreur si le code n'est pas renseigné.


				array_push($error,nl2br(MSG_ERR_CODE_PROMO));


			}


		}


		/*********************************/

		/* Gestion du chèque cadeau	  */

		/*********************************/


		$error_check = calcul_code_cheque_cadeau($code_cheque);


		array_push($error, $error_check);


		/*******************************************/

		/* Gestion du bon de réduction	  */

		/*******************************************/


		$error_bon = calcul_code_bon_reduction($code_bon);	


		array_push($error, $error_bon);


	/*****************************************************************/

	/* Récupération des remises en % qui ne sont pas dans un tableau */

	/*****************************************************************/


	foreach ($_POST['id'] as $i => $produitid) {


		$sqlProd = "SELECT nom_".$_SESSION['langue']." as nom, prix, prix_revendeur, promotion, tva, etat_stock, delai_stock, points, poids FROM peel_produits WHERE id = '".intval($produitid)."'";


		$resProd = mysql_query($sqlProd) or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


		$prod = mysql_fetch_array($resProd);


		$points = $prod['points'];


		$poids = $prod['poids'];


		$tva_percent = !empty($zoneTva) ? $prod['tva'] : "0";


		/*******************************************************************/

		/* 0 - On récupère les données du caddie						   */

		/******************************************************************/	


		$quantite = $_POST['quantite'][$i];


		$comment = vb($_POST['comment'][$i]);


		$option = vn($_POST['option'][$i]);


		$email_check = vb($_POST['email_check'][$i]);


		/**************************************************/

		/* 1 - On récupère le prix catalogue (sans promo) */

		/**************************************************/		


		/* Choix entre prix revendeur et prix public */


		(isset($_SESSION['utilisateur']['priv']) && $_SESSION['utilisateur']['priv'] == "reve") ? $prix_cat = $prod['prix_revendeur'] + vn($option) : $prix_cat = $prod['prix'] + vn($option);


		$prix_cat_ht = $prix_cat / (1 + $tva_percent/100);


		/****************************************************************************/

		/* 2 - On calcule les promotions en valeur (calculé toujours sur le prix HT) */

		/***************************************************************************/	


		$remise_produit_percent = vn($prod['promotion']);


		$remise_produit = $prix_cat_ht * $remise_produit_percent/100;


		/*******************************************************************/

		/* 3 - On calcule le prix vendu HT et le prix TTC				  */

		/******************************************************************/	


		$prix_ht = $prix_cat_ht - $remise_produit;


		$prix = $prix_ht * (1+$tva_percent/100);


		$total_prix = $prix * $quantite;


		$total_prix_ht = $prix_ht * $quantite;


		$tva = $total_prix - $total_prix_ht;


		/*******************************************************************/

		/* 4 - Contrôle des problématiques liées à la gestion des stocks*/

		/******************************************************************/	


		$etat_stock = $prod['etat_stock'];


		$delivery_stock = $prod['delai_stock'];


		$couleur = $_POST['couleur'][$i];


		$taille = $_POST['taille'][$i];


		$resC = mysql_query("SELECT id FROM peel_couleurs WHERE nom_".$_SESSION['langue']." = '".$couleur."'");


		$C = mysql_fetch_object($resC);


		$resT = mysql_query("SELECT id FROM peel_tailles WHERE nom_".$_SESSION['langue']." = '".$taille."'");


		$T = mysql_fetch_object($resT);


		$s = mysql_fetch_array(mysql_query("SELECT stock FROM peel_stocks WHERE produit_id = '".$produitid."' AND couleur_id = '".vn($C->id)."' AND taille_id = '".vn($T->id)."'"));


		if ($etat_stock == 1) {


			/* $s est d&eacute;finie dans la requ&ecirc;te de controle du stock */	

			if ($quantite > $s['stock']) {


			$resProd = mysql_query("SELECT nom_".$_SESSION['langue']." as nom FROM peel_produits WHERE id = '".intval($produitid)."'");


			$Prod = mysql_fetch_object($resProd);


			$message = "<p>Attention, Le produit <i>".$prod['nom']."</i> dispose d'un stock limit&eacute; &agrave; ".$s['stock']." unit&eacute;s.</p>";


			array_push($error,nl2br($message));


			$quantite = $s['stock'];


			}


		}


		/*******************************************************************/

		/* 5 - On envoie les données dans l'objet caddie				   */

		/******************************************************************/	



		$_SESSION['caddie']->place(

		$i, 

		$produitid, 

		$quantite, 

		$couleur, 

		$taille, 

		$prix_cat, 

		$prix_cat_ht, 

		$prix, 

		$prix_ht, 

		$total_prix,

		$total_prix_ht,

		$tva_percent, 

		$tva, 

		$poids, 

		$points, 

		$remise_produit_percent, 

		$remise_produit, 

		$comment, 

		$etat_stock, 

		$delivery_stock, 

		$option,

		$email_check);			


		}	


		if (!empty($type)) { calcul_frais_expedition(vb($type)); }


		return $error;


}


/*******************************************/

/* Gestion du bon de réduction			 */

/*******************************************/


function calcul_code_bon_reduction(&$code_bon) {


			$error_bon  = "";


			$sql_bon = "SELECT * FROM `peel_bons_reduction` WHERE nom = '".strtoupper($code_bon)."'" or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$res_bon = mysql_query($sql_bon);


			$ar_bon = mysql_fetch_array($res_bon);


			if (mysql_num_rows($res_bon) > 0) {


				if ($ar_bon['seuil'] <= $_SESSION['caddie']->total) {


					$remise_code_bon = $ar_bon['remise'];


					$bon = $ar_bon['nom'];


					$_SESSION['caddie']->bon_reduction(strtoupper($bon), $remise_code_bon);  #- On place le code dans le caddie si il est déterminé.


				} else {


				$remise_code_bon = 0;


				$bon = "";


				$_SESSION['caddie']->bon_reduction(strtoupper($bon), $remise_code_bon);  #- On place le code dans le caddie si il est déterminé.


				$error_bon = nl2br(MSG_ERR_CODE_BON_SEUIL);


				}


			} else {


				$remise_code_bon= 0;


				if (!empty($code_bon)) { # Empeche l'affichage d'un message d'erreur si le code n'est pas renseigné.


					echo $error_bon;


					$error_bon = nl2br(MSG_ERR_CODE_BON);


				}


			}


			return $error_bon;


}


function calcul_code_cheque_cadeau(&$code_cheque) {


			$error_check  = "";


			$sql_check = "SELECT * FROM `peel_cheques_cadeaux` WHERE code = '".strtoupper($code_cheque)."' AND etat = '1' " or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$res_check = mysql_query($sql_check);


			$ar_check = mysql_fetch_array($res_check);


			if (mysql_num_rows($res_check) > 0) {


				if ($ar_check['seuil'] <= $_SESSION['caddie']->total) {


					$remise_code_check = $ar_check['remise_cheque'];


					$code_cheque = $ar_check['code'];


					$_SESSION['caddie']->cheque_cadeau(strtoupper($code_cheque), $remise_code_check);  #- On place le code dans le caddie si il est déterminé.


				} else {


				$remise_code_check = 0;


				$code_cheque = "";


				$_SESSION['caddie']->cheque_cadeau(strtoupper($code_cheque), $remise_code_check);  #- On place le code dans le caddie si il est déterminé.


				$error_check = nl2br(MSG_ERR_CODE_CHECK_SEUIL);


				}


			} else {


				$remise_code_check= 0;


				if (!empty($code_cheque)) { # Empeche l'affichage d'un message d'erreur si le code n'est pas renseigné.


					$error_check = nl2br(MSG_ERR_CODE_CHECK);


				}


			}


			return $error_check;


}	






function calcul_frais_expedition(&$type) {


global $seuil;

global $seuil_total;


			$_SESSION['caddie']->type($type); #- On place le type d'expédition si il est déterminé


			$expedition = 0;


			$queryType = mysql_query("SELECT id FROM peel_types WHERE nom_".$_SESSION['langue']." = '".htmlspecialchars($type, ENT_QUOTES)."'")

			or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$objType = mysql_fetch_object($queryType);


			$queryZone = mysql_query("SELECT id FROM peel_zones WHERE nom_".$_SESSION['langue']." = '".htmlspecialchars($_SESSION['caddie']->zone, ENT_QUOTES)."'")

			or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


			$Zone = mysql_fetch_object($queryZone);


			$ZoneId = $Zone->id;


			$sql_tarif = "SELECT tarif, poidsmax, tva FROM peel_tarifs WHERE type = '".$objType->id."' AND zone = '".$ZoneId."' ORDER BY poidsmax ASC";


			$result_tarif = mysql_query($sql_tarif)

			or DIE('Une erreur de connexion &agrave; la base s est produite ' . __LINE__ . '.<p>' . MYSQL_ERROR());


				if ($result_tarif) {


					if (mysql_num_rows($result_tarif)) {


						while ($tab_tarif = mysql_fetch_array($result_tarif)) {


							if ($_SESSION['caddie']->total_poids <= $tab_tarif['poidsmax']) {


								$expedition = $tab_tarif['tarif'];


								$expedition_ht = $tab_tarif['tarif'] / (1+$tab_tarif['tva']/100);


								break;


							} else {


							$expedition = $tab_tarif['tarif'];


							$expedition_ht = $tab_tarif['tarif'] / (1+$tab_tarif['tva']/100);


							}


						}


					}


				} 


			#- Vérifie si le total du panier n'exc&egrave;de pas les seuils d&eacute;finis en back office

			$seuil = (isset($_SESSION['utilisateur']['priv']) && $_SESSION['utilisateur']['priv'] == "reve")  ? $seuil_total_reve : $seuil_total;


			if ($_SESSION['caddie']->total_produit > $seuil) {$expedition = 0; $expedition_ht = 0;} #- Frais de port gratuit si le total TTC des produits est > au seuil.


			$_SESSION['caddie']->expedition($expedition, $expedition_ht); #- On place le cout du transport dans le caddie



}




?>

Voila...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

J'ai oublier de préciser que pour ne plus afficher les données, jai mis des partie du code en commentaire au lieu de l'effacer...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Je continue à "gratter" dans le code mais en fait si je ne passe pas à l'étape suivante c'est parce qu'il lui faut le pays d'expédtion et le type alors qu'ils

seront choisi automatiquement lors du contrôle des données du client par le client lui même...

Mais je n'arrive pas à trouver où sont les lignes de codes à retirer pour ne plus qu'il demande le pays, la zone et le type d'expédition !!

Désolé pour les fautes, dans la réponse précédente j'ai oublié les "s" à parties du code ... ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Pour moi, il faut renseigner ces varaibles manquantes par des valeurs par defaut, par ex pays a france et zone et type par le moins cher.

Ensuit passer à l'adresse de livraison et enfin réafficher le tout.

Mais vous maitrisez le php pou rfaire tout ca ?

Willy

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ok merci pour le tuyau, en ce qui concerne ma maîtrise du php, j'ai deux mois d'expérience ;)

Mais il ne pas y avoir de raison pour que je ne réussisse pas, même si ça doit être difficile...

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Finalement j'ai un probleme ;)

Je n'arrive pas a retrouver les variables du cout du transport, de la zone et du type pour leur donner une valeur par défaut avant quelles soient contrôlées

pour que la page "achat_mintenant" s'affiche. Dans quelle page trouve-t-on ces variebles ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Kefren,

Finalement avez-vous réussi à faire les modifications du calcul automatique des frais de port.

Je souhaiterai faire la même chose.

Pourriez-vous me renseigner ?

A l'avance merci de votre aide

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