Accueil > > > MINI BOUTIQUE EN LIGNE ET DEVIS PAR MAIL TRANSMISSION INDIVIDUELLE DES ARTICLES DANS UN PANIER PAYPAL
MINI BOUTIQUE EN LIGNE ET DEVIS PAR MAIL TRANSMISSION INDIVIDUELLE DES ARTICLES DANS UN PANIER PAYPAL
Information sur la source
Description
En une seule page: on affiche les produits stockés dans une base de données (prix, désignations, frais de livraison/traitement oui ou non...). On renseigne le nombre de produits choisis. Permet trois choix d'affichage ( uniquement les produits choisis, non choisis ou les deux). Permet une demande de devis par un formulaire optionnel (nom email message) et transmet la demande à une adresse prédéfinie et a celle du client (vérification sommaire de la validité de cette adresse). Permet une impression sélective du devis. Transmet les produits choisis à un panier PayPal business en détaillant chaque produit ( quantité prix) Permet de différencier les produits soumis à des frais de livraison / traitement de ceux qui ne le sont pas.
Source
- <!--
- contenu du ficher de connexion db
- <?php //$connexion = mysql_connect('adresse serveur mysql','utilisateur','mot de passe') OR die(mysql_error());;
- //mysql_select_db('nom de la base de donnees',$connexion);
- ?>
- -->
-
- <!--
- La creation et le remplissage des tables de la db ne sont pas gere ici
- vous devez le faire manuellement
- Le code du bouton d'envoi a PayPal provient du site PayPal, j'ai juste ajoute la boucle PHP pour gerer le multi produits
- -->
-
-
-
-
-
-
- <form method="post" name="facture" action="<?php echo $PHP_SELF."#bouton"; ?>">
- <input type='submit' name='action' value='Calculer'>
- <table class="t1" summary="Formulaire devis facture">
- <tr>
- <td class="c4" style="width : 50%;" >Type de prestation</td>
- <td class="c4" style="width : 17%;" >Quantités</td>
- <td class="c4" style="width : 33%;" >Total ligne</td>
- </tr>
-
- <!-- debut script php -->
- <?php
- echo "\n\n\n\n\n\n<!--\n
- #############################################################################################\n
- # script de panier PayPal avec stockage des produits mysql et envoi du detail au panier PayPal\n
- # gestion des frais de traitement livraison\n
- # demande de devis possible avec envoi par mail au demandeur et au gestionaire du site\n
- #############################################################################################\n\n
- #############################################################################################\n
- # Ce script a ete developpe par 2AIDE, vous vous sera fourni gratuitement sur simple demande depuis le site http://www.2aide.fr/\n
- # Aucun support supplementaire ne vous sera propose gratuitement\n
- # Vous pouvez malgre tout solliciter une aide dans le cadre des prestations proposees sur le site http://www.2aide.fr/\n
- # Bien qu'il en soit maintenant tres eloigne ce script a ete inspire, au depart par un formulaire de contact propose gratuitement lui aussi.\n
- # 2aide remercie donc http://www.patrickhamy.net/ auteur de ce formulaire de contact\n
- #############################################################################################\n\n
- #############################################################################################\n
- # A vous de voir pour les css\n
- # Je precise juste que la classe masimp est declaree dans une feuille de style dediee a l'impression: media=print\n
- # Si vous utilisez ce code merci de laisser ces remarques\n
- #############################################################################################\n
- --> \n\n\n\n\n ";
-
- include ('FICHIER DE CONNEXION DB');
- $produit = 'SELECT * FROM `produits` WHERE vente = 1 ORDER BY cat, id';
- $liste = mysql_query( $produit,$connexion );
-
- $trans = array ( "è" => "e", "é" => "e", "à" => "a", "ê" => "e", "½" => "1/2", "ô" => "o", "ç" => "c", "È" => "E", "É" => "E", "À" => "A", "Ê" => "E", "Ô" => "O", "Ç" => "C"); //suppression des accents pour formulaire transmit a PayPal car probleme avec codage des caracteres
- $tota1 = array(0);
- $frais1 = array(0);
- $prod1 = array(0);
- $prix1 = array(0);
- $quant = array(0);
- $mail = array(0);
- $numprod = 0;
- $i = 0;
- if (isset($_POST[$var])) $_POST[$var]="0";
- while ($tablo = mysql_fetch_array($liste))
- {
- if (!isset($_POST[$var])) $_POST[$var]="0";
- $i++; //Incrementee a chaques tour de boucle WHILE
- $var = 'var'.$i; //Construction des variables POST du formulaire
-
- if ( $_POST["reset"] =="on" ) // reset des variables formulaires
- {
- $_POST[$var]= "0";
- $_POST['nom']= "0";
- $_POST['prenom']= "0";
- $_POST['message']= "0";
- $_POST['email']= "0";
- $_POST["envoi"] ="";
- } //Vide tous les champs du formulaire
-
- if ($_POST[$var]> "0") // si nombre d'articles commande superieurs a 0 pour une ligne
- {
- $numprod++; // compte le nombre d'articles selectionnes
- } // Creation de la variable de generation item pour les variables produits du bouton PayPal
-
- $prod = $tablo['designation']; // designation des articles
- $prodnohtm = strip_tags($prod); // supression des balises html dans designation des articles
- $proddec = html_entity_decode($prodnohtm, null, 'UTF-8'); // remplacement des entites html par le caractere accentue
- $prodno = strtr($prodnohtm, $trans); // remplacement des caracteres accentues par le caractere normal le plus proche ( supression des accents) pour formulaire transmit a PayPal
- $prix = $tablo['prix']; // designation des articles
-
- if ($_POST[$var]> "0") // nombre d'articles commande superieurs a 0 pour une ligne
- {
- $prod1[$numprod] = $prodno; //inscrit tous les produits selectionnes dans une variable tableau
- $quant[$numprod] = $_POST[$var]; //inscrit toutes les quantites produits selectionnes dans une variable tableau
- $prix1[$numprod] = $prix; //inscrit tout les prix produits selectionnes dans une variable tableau
- }
-
- $trait = $tablo['traitement']; //variable frais de livraison-traitement oui ou non
-
- if ($prix<>0) //verifie qu'un prix ne soit pas egal a 0
- {
- $prixht = ($prix/1.196)*$_POST[$var]; //calcule le prix ht a partir du ttc
- }
-
- $tva = round(($prixht*0.196),2); //calcule le montant de la TVA
- $type = $tablo['type']; //affectation du produit creation web ou depannage
-
- $total1[$i] = $prix*$_POST[$var]; //inscrit le prix total de chaque ligne dans une variable tableau
-
- if ($trait==1 && $prix*$_POST[$var]<>0) //si frais de livraison-traitement oui et nombre de produits x par prix >0
- {
- $fraisunit = ((($prix*$_POST[$var])/100)*3.4)+0.25; //calcule les frais de traitement
- }
- else {$fraisunit = 0;} //si pas de frais de traitement la variable est egale a 0
-
- $frais1[$i] = $fraisunit; //inscrit les frais de traitement de chaque ligne dans une variable tableau
-
- if ( $trait == 1) //si frais de traitement oui
- {
- $note = "+ frais de traitement"; //texte affiche pour frais de traitement oui
- }
- else { $note = "pas de frais de traitement";} //texte affiche pour frais de traitement non
-
- if ($_POST[$var] > 0) // si nombre de produits >0
- {
- $imp = ""; // autorisation d'impression de la ligne
- }
- else { $imp = "class='masimp' ";} // interdiction d'impression de la ligne
-
- if ( $_POST["reset"] =="on" ) // si demande remise a 0 du formulaire
- {
- $chk = 'checked="checked"'; // je force la case afficher les produits choisis a cochee
- $chk1 = 'checked="checked"'; // je force la case afficher les produits non choisis a cochee
- $vu = ""; //je ne cache aucune ligne
- }
- else //pas de demande de remise a 0 du formulaire
- {
- if ($_POST[$var] > 0 AND $_POST["masq"] !="on" AND $_POST["envoi"] !="on" ) //si nombre de produit > 0 ET case afficher les produits choisis pas cochee ET case envoyer demande de devis cochee
- {
- $vu = 'style="display : none;"'; //je n'affiche pas la ligne
- }
-
- if ($_POST[$var] > 0 AND $_POST["masq"] =="on" ) //si nombre de produit > 0 ET case afficher les produits choisis cochee
- {
- $vu = ""; //j'affiche la ligne
- }
-
- if ($_POST[$var] == 0 AND ($_POST["masq1"] !="on" OR $_POST["envoi"] =="on") ) //si nombre de produit = 0 ET case afficher les produits non choisis pas cochee ou case envoyer demande de devis cochee
- {
- $vu = 'style="display : none;"'; //je n'affiche pas la ligne
- }
-
- if ($_POST[$var] == 0 AND ($_POST["masq1"] =="on" AND $_POST["envoi"] !="on")) //si nombre de produit = 0 ET case afficher les produits non choisis cochee et case envoyer demande de devis pas cochee
- {
- $vu = ""; //j'affiche la ligne
- }
-
- if ($_POST["masq1"] !="on" AND $_POST["masq"] !="on" ) //si les cases afficher produits choisis et non choisis sont cochees
- {
- $vu = ""; //j'affiche la ligne
- }
-
- if ( $_POST["masq"] =="on" OR $_POST["envoi"] =="on" ) //si case afficher les produits choisis cochee OU case envoyer demande de devis cochee
- {
- $chk = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
- }
- else { $chk = "";} //sinon valeur par defaut de la case afficher les produits choisis a pas cochee
-
- if ( $_POST["masq1"] =="on" AND $_POST["envoi"] !="on" ) //si case afficher les produits non choisis cochee ET case envoyer demande de devis pas cochee
- {
- $chk1 = 'checked="checked"'; //valeur par defaut de la case afficher les produits non choisis a cochee
- }
- else { $chk1 = "";} //sinon valeur par defaut de la case afficher les produits non choisis a pas cochee
- }
-
- $code = " <tr ".$imp.$vu.">\n"; // generation du code du tableau de produits
- $code .=" <td class='c1'>\n";
- $code .=" <label> ".$prod.": <span class='def' title='".round(($prix/1.196),2)."€HT'>".$prix."€<sup>TTC</sup></span></label>\n";
- $code .=" </td>\n";
- $code .=" <td class='c2'>\n";
- $code .=" <input style='text-align : right;' type='text' name='".$var."' size='3' value='".$_POST[$var]."'>\n";
- $code .=" </td>\n";
- $code .=" <td class='c2' >\n";
- $code .=" ".round(($prixht),2)."€<sup>HT</sup> + ".$tva."€ de TVA\n";
- $code .=" <br>".$note."\n";
- $code .=" </td>\n";
- $code .=" </tr>\n";
-
- if ($_POST[$var]> "0")
- {
- $mail[$numprod] = $code; // inscription du code du tableau de produit dans une variable tableau
- }
-
- echo $code; // affichage du code du tableau de produits
- }
-
- $total = array_sum($total1); // Je fais le total des totaux de chaque ligne
- $totalht = round(($total/1.196),2); // j'extrait le total global HT et j'arrondi a 2 decimales
- $frais = round(array_sum ($frais1),2); // Je fais le total des frais de chaque ligne et j'arrondi a 2 decimales
- $totaltva = round(($total - $totalht),2); // j'extrais la TVA et j'arrondi a 2 decimales
- $facture = round(($total + $frais),2); // je calcule le total de la facture et j'arrondi a 2 decimales
-
- if ($total == 0 ) // si la facture est d'un montant egal a 0 euro
- {
- $chk = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
- $chk1 = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
- $env = "style='display : none;'"; // j'interdit l'affichage des options liees a un montant
- }
- else { $env = ""; } // sinon je n'interdit pas l'affichage des options liees a un montant
-
- $code1 = " <tr>\n"; // generation du code des tataux en bas de tableau
- $code1 .= " <td class='c1' colspan='3'>\n";
- $code1 .= " <br>Total ".$totalht."€<sup>HT</sup>\n";
- $code1 .= " <br>".$totaltva."€ de TVA\n";
- $code1 .= " <br>".$frais."€ de frais de traitement\n";
- $code1 .= " <br>Soit une facture totale de :".$facture."€<sup>TTC</sup>\n";
- $code1 .= " </td>\n";
- $code1 .= " </tr>\n";
- $code1 .= " </table>\n";
-
- echo $code1; // affichage du code des tataux en bas de tableau
-
- $headers ='From: "Devis"<VOTRE@EMAIL>'."\n"; // entete email devis
- $headers .='Content-Type: text/html; charset="utf-8"'."\n";
- $headers .='Content-Transfer-Encoding: 8bit';
-
- $mailtot = "<h1>Vous avez reçu une demande de devis !</h1>\n <p>"; // generation du code du mail de devis
- $mailtot .= $_POST["message"]."\n <br> de: ".$_POST["prenom"]." ".$_POST["nom"];
- $mailtot .= "<br>".$_POST["email"]."</p>\n<table>".implode($mail).$code1; // implode de la variable tableau contenant le code du tableau de produits
-
- if ( $_POST["envoi"] =="on" ) // si demande d'envoi de devis par mail
- {
- $chk2 = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
- $chk = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
- $chk1 = ''; //valeur par defaut de la case afficher les produits non choisis a pas cochee
- $action = 'Envoyer'; // texte du bouton de soumission
-
- if ($_POST["email"]<> "" && eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$_POST["email"]) ) // verification presence et vatidite de la saisie de l'email du client
- {
- mail('VOTRE@EMAIL','Demande de devis', $mailtot, $headers); //envoi du devis au gestionnaire du site
- mail($_POST["email"],'Copie du devis soumis', $mailtot, $headers); //envoi du devis au client
- $contfor = "<div style='display : none;'>"; //masque formulaire et autre si envoi OK
- $contfor1 = "</div>"; //masque formulaire et autre si envoi OK
- $_POST["envoi"] = ""; //intitialise le formulaire de contact
- $_POST["nom"] = "";
- $_POST["prenom"] = "";
- $_POST["email"] = "";
- $_POST["message"] = "";
- $chk2 = "";
- echo "<h2>Votre demande à bien été envoyée</h2>";
- }
- else { echo "<h3 class='masimp' >Vérifiez la saisie de votre adresse Email.</h3>"; } //previent d'un probleme avec adresse email
- // formulaire de contact
- echo "<div class='masimp'>\n".$contfor."\n<label>Nom: <input style='text-align : left;' type='text' name='nom' size='25' value='".$_POST["nom"]."' ></label>\n";
- echo "<br><br><label>Prénom: <input style='text-align : left;' type='text' name='prenom' size='25' value='".$_POST["prenom"]."' ></label>\n";
- echo "<br><br><label>Email: <input style='text-align : left;' type='text' name='email' size='25' value='".$_POST["email"]."' ></label>\n";
- echo "<br><br><label>Message: <textarea style='text-align : left;' name='message' cols='25' rows='15'>".$_POST["message"]."</textarea></label>\n".$contfor1."\n</div>\n";
- }
- else { $chk2 = ''; $action = 'Calculer';} // texte du bouton de soumission
- // diverses options d'affichage
- echo " <div class='masimp' style='width : 28em; margin-left : auto; margin-right : auto; text-align : left;' >\n\n";
- echo " <span ".$env."><input type='checkbox' name='envoi' ".$chk2." class='button'> Cochez cette case puis cliquez sur </span>\n";
- echo " <input type='submit' name='action' value='".$action."'>\n";
- echo " <span ".$env.">\n";
- echo " <br>pour demander un devis définitif\n";
- echo " <br>\n";
- echo " <br>\n";
- echo " <script type='text/JavaScript'>\n";
- echo " document.write('<button onClick=\'window.print();\'\>Imprimer le devis<\/button\>');\n";
- echo " </script>\n";
- echo " <br>\n";
- echo " </span>\n\n";
- echo " <br>\n";
- echo " <input type='checkbox' name='reset' class='button'>Cochez pour vider votre panier.\n";
- echo " <br>\n";
- echo " <input type='checkbox' name='masq' ".$chk." class='button'>cochez pour voir les produits que vous avez choisis.\n";
- echo " <br>\n";
- echo " <input type='checkbox' name='masq1' ".$chk1." class='button'>Cochez pour voir les produits non choisis.\n\n";
- echo " </div>\n";
- echo " </form>\n";
- ?>
-
- <div class="masimp"<?php echo $env; ?>>
- <br>
- <br>
- <script type="text/JavaScript">
- document.write('<div style=\"float : right;\"\>En cliquant sur ce bouton vous lancez une impression de vos choix<br\>ET accédez directement à la page de paiement.<\/div\>');
- </script>
- <noscript><div style="float : right;">En cliquant sur ce bouton vous accédez directement à la page de paiement.</div></noscript>
- <div style="float : right;" onClick="window.print();" >
- <form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
- <input type="image" src="URL ABSOLUE DE L'IMAGE DU BOUTON PAYPAL" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !">
- <img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
- <input type="hidden" name="upload" value="1">
- <input type="hidden" name="cmd" value="_cart">
- <input type="hidden" name="business" value="VOTRE CODE DE PARAINAGE OU VOTRE EMAIL IDENTIFIANT PAYPAL">
- <?php
- for($bouc=1; $bouc<=$numprod; $bouc++) // creation d'une boucle reiteree autant de fois q'un produit a ete choisi
- {
- echo '<input type="hidden" name="item_name_'.($bouc).'" value="'.$prod1[$bouc].'">'."\n"; // transmition de la designation des produits
- echo '<input type="hidden" name="quantity_'.($bouc).'" value="'.$quant[$bouc].'">'."\n"; // transmition de la quantite des produits
- echo '<input type="hidden" name="amount_'.($bouc).'" value="'.$prix1[$bouc].'">'."\n"; // transmition du prix des produits
- }
- ?>
-
- <input type="hidden" name="handling_1" value="<?php echo $frais; // transmition des frais de traitement livraison globaux ?>">
- <input type="hidden" name="logo_custom" value="URL ABSOLUE DE L'IMAGE DU BOUTON PAYPAL">
- <input type="hidden" name="no_note" value="1">
- <input type="hidden" name="currency_code" value="EUR">
- <input type="hidden" name="lc" value="FR">
- <input type="hidden" name="bn" value="PP-ShopCartBF">
- </form>
- </div>
- </div>
<!--
contenu du ficher de connexion db
<?php //$connexion = mysql_connect('adresse serveur mysql','utilisateur','mot de passe') OR die(mysql_error());;
//mysql_select_db('nom de la base de donnees',$connexion);
?>
-->
<!--
La creation et le remplissage des tables de la db ne sont pas gere ici
vous devez le faire manuellement
Le code du bouton d'envoi a PayPal provient du site PayPal, j'ai juste ajoute la boucle PHP pour gerer le multi produits
-->
<form method="post" name="facture" action="<?php echo $PHP_SELF."#bouton"; ?>">
<input type='submit' name='action' value='Calculer'>
<table class="t1" summary="Formulaire devis facture">
<tr>
<td class="c4" style="width : 50%;" >Type de prestation</td>
<td class="c4" style="width : 17%;" >Quantités</td>
<td class="c4" style="width : 33%;" >Total ligne</td>
</tr>
<!-- debut script php -->
<?php
echo "\n\n\n\n\n\n<!--\n
#############################################################################################\n
# script de panier PayPal avec stockage des produits mysql et envoi du detail au panier PayPal\n
# gestion des frais de traitement livraison\n
# demande de devis possible avec envoi par mail au demandeur et au gestionaire du site\n
#############################################################################################\n\n
#############################################################################################\n
# Ce script a ete developpe par 2AIDE, vous vous sera fourni gratuitement sur simple demande depuis le site http://www.2aide.fr/\n
# Aucun support supplementaire ne vous sera propose gratuitement\n
# Vous pouvez malgre tout solliciter une aide dans le cadre des prestations proposees sur le site http://www.2aide.fr/\n
# Bien qu'il en soit maintenant tres eloigne ce script a ete inspire, au depart par un formulaire de contact propose gratuitement lui aussi.\n
# 2aide remercie donc http://www.patrickhamy.net/ auteur de ce formulaire de contact\n
#############################################################################################\n\n
#############################################################################################\n
# A vous de voir pour les css\n
# Je precise juste que la classe masimp est declaree dans une feuille de style dediee a l'impression: media=print\n
# Si vous utilisez ce code merci de laisser ces remarques\n
#############################################################################################\n
--> \n\n\n\n\n ";
include ('FICHIER DE CONNEXION DB');
$produit = 'SELECT * FROM `produits` WHERE vente = 1 ORDER BY cat, id';
$liste = mysql_query( $produit,$connexion );
$trans = array ( "è" => "e", "é" => "e", "à" => "a", "ê" => "e", "½" => "1/2", "ô" => "o", "ç" => "c", "È" => "E", "É" => "E", "À" => "A", "Ê" => "E", "Ô" => "O", "Ç" => "C"); //suppression des accents pour formulaire transmit a PayPal car probleme avec codage des caracteres
$tota1 = array(0);
$frais1 = array(0);
$prod1 = array(0);
$prix1 = array(0);
$quant = array(0);
$mail = array(0);
$numprod = 0;
$i = 0;
if (isset($_POST[$var])) $_POST[$var]="0";
while ($tablo = mysql_fetch_array($liste))
{
if (!isset($_POST[$var])) $_POST[$var]="0";
$i++; //Incrementee a chaques tour de boucle WHILE
$var = 'var'.$i; //Construction des variables POST du formulaire
if ( $_POST["reset"] =="on" ) // reset des variables formulaires
{
$_POST[$var]= "0";
$_POST['nom']= "0";
$_POST['prenom']= "0";
$_POST['message']= "0";
$_POST['email']= "0";
$_POST["envoi"] ="";
} //Vide tous les champs du formulaire
if ($_POST[$var]> "0") // si nombre d'articles commande superieurs a 0 pour une ligne
{
$numprod++; // compte le nombre d'articles selectionnes
} // Creation de la variable de generation item pour les variables produits du bouton PayPal
$prod = $tablo['designation']; // designation des articles
$prodnohtm = strip_tags($prod); // supression des balises html dans designation des articles
$proddec = html_entity_decode($prodnohtm, null, 'UTF-8'); // remplacement des entites html par le caractere accentue
$prodno = strtr($prodnohtm, $trans); // remplacement des caracteres accentues par le caractere normal le plus proche ( supression des accents) pour formulaire transmit a PayPal
$prix = $tablo['prix']; // designation des articles
if ($_POST[$var]> "0") // nombre d'articles commande superieurs a 0 pour une ligne
{
$prod1[$numprod] = $prodno; //inscrit tous les produits selectionnes dans une variable tableau
$quant[$numprod] = $_POST[$var]; //inscrit toutes les quantites produits selectionnes dans une variable tableau
$prix1[$numprod] = $prix; //inscrit tout les prix produits selectionnes dans une variable tableau
}
$trait = $tablo['traitement']; //variable frais de livraison-traitement oui ou non
if ($prix<>0) //verifie qu'un prix ne soit pas egal a 0
{
$prixht = ($prix/1.196)*$_POST[$var]; //calcule le prix ht a partir du ttc
}
$tva = round(($prixht*0.196),2); //calcule le montant de la TVA
$type = $tablo['type']; //affectation du produit creation web ou depannage
$total1[$i] = $prix*$_POST[$var]; //inscrit le prix total de chaque ligne dans une variable tableau
if ($trait==1 && $prix*$_POST[$var]<>0) //si frais de livraison-traitement oui et nombre de produits x par prix >0
{
$fraisunit = ((($prix*$_POST[$var])/100)*3.4)+0.25; //calcule les frais de traitement
}
else {$fraisunit = 0;} //si pas de frais de traitement la variable est egale a 0
$frais1[$i] = $fraisunit; //inscrit les frais de traitement de chaque ligne dans une variable tableau
if ( $trait == 1) //si frais de traitement oui
{
$note = "+ frais de traitement"; //texte affiche pour frais de traitement oui
}
else { $note = "pas de frais de traitement";} //texte affiche pour frais de traitement non
if ($_POST[$var] > 0) // si nombre de produits >0
{
$imp = ""; // autorisation d'impression de la ligne
}
else { $imp = "class='masimp' ";} // interdiction d'impression de la ligne
if ( $_POST["reset"] =="on" ) // si demande remise a 0 du formulaire
{
$chk = 'checked="checked"'; // je force la case afficher les produits choisis a cochee
$chk1 = 'checked="checked"'; // je force la case afficher les produits non choisis a cochee
$vu = ""; //je ne cache aucune ligne
}
else //pas de demande de remise a 0 du formulaire
{
if ($_POST[$var] > 0 AND $_POST["masq"] !="on" AND $_POST["envoi"] !="on" ) //si nombre de produit > 0 ET case afficher les produits choisis pas cochee ET case envoyer demande de devis cochee
{
$vu = 'style="display : none;"'; //je n'affiche pas la ligne
}
if ($_POST[$var] > 0 AND $_POST["masq"] =="on" ) //si nombre de produit > 0 ET case afficher les produits choisis cochee
{
$vu = ""; //j'affiche la ligne
}
if ($_POST[$var] == 0 AND ($_POST["masq1"] !="on" OR $_POST["envoi"] =="on") ) //si nombre de produit = 0 ET case afficher les produits non choisis pas cochee ou case envoyer demande de devis cochee
{
$vu = 'style="display : none;"'; //je n'affiche pas la ligne
}
if ($_POST[$var] == 0 AND ($_POST["masq1"] =="on" AND $_POST["envoi"] !="on")) //si nombre de produit = 0 ET case afficher les produits non choisis cochee et case envoyer demande de devis pas cochee
{
$vu = ""; //j'affiche la ligne
}
if ($_POST["masq1"] !="on" AND $_POST["masq"] !="on" ) //si les cases afficher produits choisis et non choisis sont cochees
{
$vu = ""; //j'affiche la ligne
}
if ( $_POST["masq"] =="on" OR $_POST["envoi"] =="on" ) //si case afficher les produits choisis cochee OU case envoyer demande de devis cochee
{
$chk = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
}
else { $chk = "";} //sinon valeur par defaut de la case afficher les produits choisis a pas cochee
if ( $_POST["masq1"] =="on" AND $_POST["envoi"] !="on" ) //si case afficher les produits non choisis cochee ET case envoyer demande de devis pas cochee
{
$chk1 = 'checked="checked"'; //valeur par defaut de la case afficher les produits non choisis a cochee
}
else { $chk1 = "";} //sinon valeur par defaut de la case afficher les produits non choisis a pas cochee
}
$code = " <tr ".$imp.$vu.">\n"; // generation du code du tableau de produits
$code .=" <td class='c1'>\n";
$code .=" <label> ".$prod.": <span class='def' title='".round(($prix/1.196),2)."€HT'>".$prix."€<sup>TTC</sup></span></label>\n";
$code .=" </td>\n";
$code .=" <td class='c2'>\n";
$code .=" <input style='text-align : right;' type='text' name='".$var."' size='3' value='".$_POST[$var]."'>\n";
$code .=" </td>\n";
$code .=" <td class='c2' >\n";
$code .=" ".round(($prixht),2)."€<sup>HT</sup> + ".$tva."€ de TVA\n";
$code .=" <br>".$note."\n";
$code .=" </td>\n";
$code .=" </tr>\n";
if ($_POST[$var]> "0")
{
$mail[$numprod] = $code; // inscription du code du tableau de produit dans une variable tableau
}
echo $code; // affichage du code du tableau de produits
}
$total = array_sum($total1); // Je fais le total des totaux de chaque ligne
$totalht = round(($total/1.196),2); // j'extrait le total global HT et j'arrondi a 2 decimales
$frais = round(array_sum ($frais1),2); // Je fais le total des frais de chaque ligne et j'arrondi a 2 decimales
$totaltva = round(($total - $totalht),2); // j'extrais la TVA et j'arrondi a 2 decimales
$facture = round(($total + $frais),2); // je calcule le total de la facture et j'arrondi a 2 decimales
if ($total == 0 ) // si la facture est d'un montant egal a 0 euro
{
$chk = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
$chk1 = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
$env = "style='display : none;'"; // j'interdit l'affichage des options liees a un montant
}
else { $env = ""; } // sinon je n'interdit pas l'affichage des options liees a un montant
$code1 = " <tr>\n"; // generation du code des tataux en bas de tableau
$code1 .= " <td class='c1' colspan='3'>\n";
$code1 .= " <br>Total ".$totalht."€<sup>HT</sup>\n";
$code1 .= " <br>".$totaltva."€ de TVA\n";
$code1 .= " <br>".$frais."€ de frais de traitement\n";
$code1 .= " <br>Soit une facture totale de :".$facture."€<sup>TTC</sup>\n";
$code1 .= " </td>\n";
$code1 .= " </tr>\n";
$code1 .= " </table>\n";
echo $code1; // affichage du code des tataux en bas de tableau
$headers ='From: "Devis"<VOTRE@EMAIL>'."\n"; // entete email devis
$headers .='Content-Type: text/html; charset="utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$mailtot = "<h1>Vous avez reçu une demande de devis !</h1>\n <p>"; // generation du code du mail de devis
$mailtot .= $_POST["message"]."\n <br> de: ".$_POST["prenom"]." ".$_POST["nom"];
$mailtot .= "<br>".$_POST["email"]."</p>\n<table>".implode($mail).$code1; // implode de la variable tableau contenant le code du tableau de produits
if ( $_POST["envoi"] =="on" ) // si demande d'envoi de devis par mail
{
$chk2 = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
$chk = 'checked="checked"'; //valeur par defaut de la case afficher les produits choisis a cochee
$chk1 = ''; //valeur par defaut de la case afficher les produits non choisis a pas cochee
$action = 'Envoyer'; // texte du bouton de soumission
if ($_POST["email"]<> "" && eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$_POST["email"]) ) // verification presence et vatidite de la saisie de l'email du client
{
mail('VOTRE@EMAIL','Demande de devis', $mailtot, $headers); //envoi du devis au gestionnaire du site
mail($_POST["email"],'Copie du devis soumis', $mailtot, $headers); //envoi du devis au client
$contfor = "<div style='display : none;'>"; //masque formulaire et autre si envoi OK
$contfor1 = "</div>"; //masque formulaire et autre si envoi OK
$_POST["envoi"] = ""; //intitialise le formulaire de contact
$_POST["nom"] = "";
$_POST["prenom"] = "";
$_POST["email"] = "";
$_POST["message"] = "";
$chk2 = "";
echo "<h2>Votre demande à bien été envoyée</h2>";
}
else { echo "<h3 class='masimp' >Vérifiez la saisie de votre adresse Email.</h3>"; } //previent d'un probleme avec adresse email
// formulaire de contact
echo "<div class='masimp'>\n".$contfor."\n<label>Nom: <input style='text-align : left;' type='text' name='nom' size='25' value='".$_POST["nom"]."' ></label>\n";
echo "<br><br><label>Prénom: <input style='text-align : left;' type='text' name='prenom' size='25' value='".$_POST["prenom"]."' ></label>\n";
echo "<br><br><label>Email: <input style='text-align : left;' type='text' name='email' size='25' value='".$_POST["email"]."' ></label>\n";
echo "<br><br><label>Message: <textarea style='text-align : left;' name='message' cols='25' rows='15'>".$_POST["message"]."</textarea></label>\n".$contfor1."\n</div>\n";
}
else { $chk2 = ''; $action = 'Calculer';} // texte du bouton de soumission
// diverses options d'affichage
echo " <div class='masimp' style='width : 28em; margin-left : auto; margin-right : auto; text-align : left;' >\n\n";
echo " <span ".$env."><input type='checkbox' name='envoi' ".$chk2." class='button'> Cochez cette case puis cliquez sur </span>\n";
echo " <input type='submit' name='action' value='".$action."'>\n";
echo " <span ".$env.">\n";
echo " <br>pour demander un devis définitif\n";
echo " <br>\n";
echo " <br>\n";
echo " <script type='text/JavaScript'>\n";
echo " document.write('<button onClick=\'window.print();\'\>Imprimer le devis<\/button\>');\n";
echo " </script>\n";
echo " <br>\n";
echo " </span>\n\n";
echo " <br>\n";
echo " <input type='checkbox' name='reset' class='button'>Cochez pour vider votre panier.\n";
echo " <br>\n";
echo " <input type='checkbox' name='masq' ".$chk." class='button'>cochez pour voir les produits que vous avez choisis.\n";
echo " <br>\n";
echo " <input type='checkbox' name='masq1' ".$chk1." class='button'>Cochez pour voir les produits non choisis.\n\n";
echo " </div>\n";
echo " </form>\n";
?>
<div class="masimp"<?php echo $env; ?>>
<br>
<br>
<script type="text/JavaScript">
document.write('<div style=\"float : right;\"\>En cliquant sur ce bouton vous lancez une impression de vos choix<br\>ET accédez directement à la page de paiement.<\/div\>');
</script>
<noscript><div style="float : right;">En cliquant sur ce bouton vous accédez directement à la page de paiement.</div></noscript>
<div style="float : right;" onClick="window.print();" >
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="image" src="URL ABSOLUE DE L'IMAGE DU BOUTON PAYPAL" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !">
<img alt="" border="0" src="https://www.paypal.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="business" value="VOTRE CODE DE PARAINAGE OU VOTRE EMAIL IDENTIFIANT PAYPAL">
<?php
for($bouc=1; $bouc<=$numprod; $bouc++) // creation d'une boucle reiteree autant de fois q'un produit a ete choisi
{
echo '<input type="hidden" name="item_name_'.($bouc).'" value="'.$prod1[$bouc].'">'."\n"; // transmition de la designation des produits
echo '<input type="hidden" name="quantity_'.($bouc).'" value="'.$quant[$bouc].'">'."\n"; // transmition de la quantite des produits
echo '<input type="hidden" name="amount_'.($bouc).'" value="'.$prix1[$bouc].'">'."\n"; // transmition du prix des produits
}
?>
<input type="hidden" name="handling_1" value="<?php echo $frais; // transmition des frais de traitement livraison globaux ?>">
<input type="hidden" name="logo_custom" value="URL ABSOLUE DE L'IMAGE DU BOUTON PAYPAL">
<input type="hidden" name="no_note" value="1">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="lc" value="FR">
<input type="hidden" name="bn" value="PP-ShopCartBF">
</form>
</div>
</div>
Conclusion
Bon, c'est mon premier code ici, ça fait un mois que je m'essaie au PHP, et quelques années que je pique sournoisement des bouts de codes ici. Alors si ce petit truc maladroit pouvait être utile à quelqu'un ce serait un juste retour. Comme je l'ai dit je suis Newbie alors les critiques seront les bien venues.
Historique
- 25 juin 2008 23:23:05 :
- "une fote d'ortaugrafe".
ça m'étonnerai qu'il n'y en ai pas d'autres !!!
- 26 juin 2008 23:00:59 :
- Ajout d'un capture Phpmyadmin pour la structure de la table.
J'ai pas précisé mais ce code est à intégrer dans une de vos pages, il lui manque, au moins, le <head> et les balises <body>.
- 02 juillet 2008 20:48:27 :
- Ajout de la structure de la base de données (fichier sql)
- 02 juillet 2008 22:01:43 :
- Capture du formulaire 1
- 02 juillet 2008 22:02:38 :
- capture 2
- 02 juillet 2008 22:03:18 :
- capture 3
- 02 juillet 2008 22:04:18 :
- capture 4
- 02 juillet 2008 22:07:01 :
- correction captures
- 02 juillet 2008 22:12:31 :
- Correction captures + ajout de captures dans le zip
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Ajouté un info dans un lien pour soumission [ par pyranhaz ]
J'ai plusieurs liens étant chacun un produit distinct de consommation.Chaque produit peut être livré:1. par téléchargement ICQ ou MSN = $0.002. par la
Popup qui enlève la barre d'URL [ par pyranhaz ]
J'essai de faire fonctionner le popup dans un script php et je n'y arrive pas, j'ai toujours une erreur parse que je n'arrive pas à trouver... :-(voic
Paypal / Cyber Mut / e-Transactions [ par fguilbert ]
Bonjour,Je dois installer des paiements Paypal / cybermut / et e-transactions (credit agricole) sur plusieurs de mes sites hébergés sur un serveur déd
Payement PayPal via compte bancaire [ par wizard512 ]
Bonjours je souhaiterais savoir si vous n'aurez pas un lien oû je pourrais trouver le code source suivant.......une page html pouvant me permettre de
Paypal -_- [ par Sniperman113 ]
Bonjour tout le monde !Je viens de nouveau sur ce forum pour vous demander de l'aide avant que je fasse usage de ma corde et de mon tabouret :)J'ai ma
Paypal + Panier d'achat + Session client ... [ par yank76 ]
Salut à tous, Je vais essayer de vous expliquer rapidement mon problème ... Je dois faire un site avec exactement les mêmes fonctions que celui la
Modifier base de donnée après achat via Paypal [ par bobatheboss ]
Messieurs dames bonjour,je vous écrit car j'ai un soucis !J'ai codé un un petit site de vente d'objets uniques, qui utilise le panier Paypal.Tout fonc
Protection de formulaire avec paypal [ par bricethenetman ]
Bonjour, j'aimerais protéger une page de formulaire de facon identique à celle utilisée par les systeme audiotel mais uniquement avec paypal... Quelqu
Joomla et paypal [ par alibi_wafa ]
Salut, je développe un site web avec le CMS joomla 1.0.15, je veux intégrer le module paypal mais je ne sais pas comment?
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|