Panier en PHP

Signaler
Messages postés
4
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
23 septembre 2009
-
Messages postés
5
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
20 novembre 2009
-
Allo tout le monde. J'ai un gros problème mais s'en ai pas un..... Je cherche depuis 2 semaines déjà, le moyen d'extraire les produits de mon panier en PHP et à les inscrire dans une page de confirmation dans le but de les recevoir par email. Je ne veux pas de paiement sécurisé ou de paiement par carte de crédit. Mes clients ont un compte net 30 jours qu'il paie par chèque.

La partie panier est construite mais pour le reste aucun forum peut m'aider.

Si quelqu'un connait une solution je pourrait mieux en finir avec ce problème.....


Merci de votre aide à l'avance

6 réponses

Messages postés
28
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
4 juillet 2010

Bonjour,

Il faut que tu donnes plus d'informations. Par exemple, ton panier est-il stocké dans une base de donnée ou dans une variable de session ?

Donne aussi des exemples de code que tu as utilisé.

A+

Jérôme
Messages postés
4
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
23 septembre 2009

Voila le infos


<?php
session_start();
function creationPanier(){
$ret= false;

if (isset( $_SESSION['panier']))
$ret = true;
else
{

$_SESSION['panier']=array();
$_SESSION['panier']['libelleProduit'] = array();
$_SESSION['panier']['qteProduit'] = array();
$_SESSION['panier']['prixProduit'] = array();
$ret=true;
}
return $ret;
}
function ajouterArticle($libelleProduit,$qteProduit,$prixProduit){

if (creationPanier())
{
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);

if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] += $qteProduit ;
}
else
{
array_push( $_SESSION['panier']['libelleProduit'],$libelleProduit);
array_push( $_SESSION['panier']['qteProduit'],$qteProduit);
array_push( $_SESSION['panier']['prixProduit'],$prixProduit);
}

}

else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}



function supprimerArticle($libelleProduit){

if (creationPanier())
{
$tmp=array();
$tmp['libelleProduit'] = array();
$tmp['qteProduit'] = array();
$tmp['prixProduit'] = array();

for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
if ($_SESSION['panier']['libelleProduit'][$i] !== $libelleProduit)
{
array_push( $tmp['libelleProduit'],$_SESSION['panier']['libelleProduit'][$i]);
array_push( $tmp['qteProduit'],$_SESSION['panier']['qteProduit'][$i]);
array_push( $tmp['prixProduit'],$_SESSION['panier']['prixProduit'][$i]);
}

}


$_SESSION['panier'] = $tmp;
unset($tmp);

}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
function modifierQTeArticle($libelleProduit,$qteProduit){
if (creationPanier())
{

if ($qteProduit > 0)
{
$positionProduit = array_search($libelleProduit, $_SESSION['panier']['libelleProduit']);

if ($positionProduit !== false)
{
$_SESSION['panier']['qteProduit'][$positionProduit] = $qteProduit ;
}
}
else
supprimerArticle($libelleProduit);

}
else
echo "Un problème est survenu veuillez contacter l'administrateur du site.";
}
function MontantGlobal(){

$total=0;

for($i = 0; $i < count($_SESSION['panier']['libelleProduit']); $i++)
{
$total += $_SESSION['panier']['qteProduit'][$i] * $_SESSION['panier']['prixProduit'][$i];
}

return $total;
}


et voici le code panier

<?php
session_start();
include_once("fonctions-panier.php");

if (isset($_GET['action']))
{
$erreur =false;
if(in_array( $_GET['action'],array('ajout', 'suppression', 'refresh')))
$action = $_GET['action'];
else
$erreur=true;

$l = preg_replace('#\v#', '', $_GET['l']);

$q = intval($_GET['q']);

$p = floatval($_GET['p']);

}

elseif(isset($_POST['action']))
{
unset($_GET);
$erreur=false;

if(in_array($_POST['action'],array('ajout', 'suppression', 'refresh')))
$action=$_POST['action'];
else
$erreur=true;

$l = preg_replace('#\v#', '',$_POST['l']);

$p = floatval($_POST['p']);


$QteArticle = array();

$i=0;
foreach ($_POST['QteArticle'] as $contenu){
$QteArticle[$i++] = intval($contenu);

}

}




if ($erreur==false){

switch($action){

Case "ajout":
ajouterArticle($l,$q,$p);
break;

Case "suppression":
supprimerArticle($l);
break;

Case "refresh" :

for ($i = 0 ; $i < count($QteArticle) ; $i++)
{
modifierQTeArticle($_SESSION['panier']['libelleProduit'][$i],round($QteArticle[$i]));
}
break;

Default:
break;

}
}

echo '<?xml version="1.0" encoding="iso-8859-1"?>';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>


<title>Achat en ligne</title>
</head>




Service à la clientèle:



Téléphone: 450-326-3666



Sans frais : 1-877-330-3666



Par courriel :
[mailto:soutien@cablotech.ca?subject=Demande de soutien
soutien@cablotech.ca]




<form method="post" action="panier.php">
Vos achats ,

----

Description: ,

Quantité: ,

Prix Unitaire: $ ,

Action: ,

<?php
if (creationPanier())
{
$nbArticles=count($_SESSION['panier']['libelleProduit']);
if ($nbArticles <= 0)
echo \"----
Votre panier est vide </ td>";
else
{
for ($i=0 ;$i < $nbArticles ; $i++)
{
echo "----
";
echo ", \".htmlspecialchars($_SESSION['panier']['libelleProduit'][$i]).\"</ td>\";
echo \", \";
echo \"".htmlspecialchars($_SESSION['panier']['prixProduit'][$i]).", \";
echo \"Supprimer, \";
echo \"\";
}

echo \"----
, \";
echo \"";
echo "Total : $ ".MontantGlobal();
echo ", \";

echo \"----
";
echo "";
echo "";

echo ", \";
}
}
?>

</form>

</html>
N/B Les rabais d'entreprise ne sont pas inclus dans les prix inscrits dans ce panier d'achat
Si vous ne connaissez pas le pourcentage de rabais appliqué à votre compte, contactez votre représentant..


Les prix sont sujets à
changements sans préavis. Les frais de livraison ne sont pas inclus pour les
secteurs hors livraison de Cablotech. Les taxes ne sont pas incluses dans nos
prix et seront calculées en fonction de votre province. Un préposé du service à
la clientèle vous contactera pour confirmer l'acceptation de la commande par
Cablotech. La devise monétaire est le Dollar Canadien.




[b]Vous pouvez le tester à l'adresse suivante: www.cablotech.ca/correcteur_testphp.htm Les items sont bien dans mon panier mais je voudrait les recevoir par email avec un bouton envoyer ou quelque chose du genre...
Merci à l'avance/b
Messages postés
4
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
23 septembre 2009

Oups je pensait que ce n'était pas dificile mais je crois que c'est plus difficile que je ne crois.

Je croyait que c'était la même solution qu'envoyé un formulaire...

Svp je suis bloqué...

Diskotek
Messages postés
28
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
4 juillet 2010

Salut,

J'ai pas regardé tout ton script.
Mais voici lien vers un script qui répond à ton problème :
http://www.phpcs.com/codes/ENVOYER-FORMULAIRE-AVEC-FONCTION-MAIL-FORMAT-HTML-OPTION_26426.aspx

Attention, la fonction MAIL utilisée dans le script ne fonctionne que sur des serveurs LINUX (équipé de serveur SMTP).

Voilà, tu devrais pouvoir essayer et dis-nous si cela fonctionne.

Amicalement,

Jérôme
Messages postés
4
Date d'inscription
mardi 22 septembre 2009
Statut
Membre
Dernière intervention
23 septembre 2009

Pas bon!!!
Je crois que je me suis mal expliquer. Je suis capable de fabriquer un formulaire en php, ce n'est pas le problème.

Mon problème c'est que je veux récupéré les produit inscrit à l'interieur de mon panier et les envoyé a mon adresse email lorsque quelqu'un clique sur envoyé la commande...

Pour les formulaire je suis correcte mais pour le contenant de mon panier..... Je veux tout simplement un bouton checkout et une commande ''envoyé par email à mon adresse.


Merci pour le lien mais je l'avais déjà essayé et il ne fonctionne pas.


J'apprécie vos recherche et je cherche aussi. Aussitot que quelequ'un ou moi le trouve, je vous en fait part assuré.

Diskotek
Messages postés
5
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
20 novembre 2009

Pourquoi ne pas demander directement à l'auteur du tutoriel ?