![](https://forum.peel.fr/uploads/set_resources_1/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png)
jcdhl
Utilisateur open source-
Compteur de contenus
21 -
Inscrit(e) le
-
Dernière visite
Messages posté(e)s par jcdhl
-
-
Bonjour,comment je trensforme ça en html ??
je n'en ai aucune idée...
sinon pour l'image oui je commance à savoir mettre des images...
à bientôt...
Bonjour,
Il faut définir des entêtes pour ton mail de cette façon :
// Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
Ensuite tu n'as plus qu'à envoyer ton mail :
// Envoi
mail($support, $objet, $message, $headers);
Et $message peut-être définis comme suit :
// message
$message = "<html>
<head>
<title>Commande N°$commandeid</title>
</head>
<body>
<img src="dzmlzdllzdl.com/image-logo.jpg" >....
</body>
</html>";
Cordialement
Jcdhl
P.S. : Je ne t'oublis pas Négoce, je n'ai pas encore eu le temps de me pencher sur le problème pour avoir tous les détails du client dans ce mail
-
Bonjour,Merci jcdhl, ça marche !!
j'ai une dernière question...
comment ajouter les coordonnées de contacte du client
nom, mail, adresse, phone, ainsi que le moyen de paiement et le type d'envoi...
la total pour éviter de ce connecter au site !
Merci encore...
Bonjour,
Je travaille actuellement dessus et dès que j'ai terminé je te le donne ici même.
Cordialement
Jcdhl
-
Bonjour,ça n'a pas marché !!
car j'ai déjà ce code :
// Mail d'information envoyé à l'administrateur
mail(
$support,
"Vous avez une nouvelle commande sur le site $site",
"Bonjour,\n\nUne commande $commandeid vient d'être enregistrée sur le site $site.\n\nDate de commande : ".return_date_fr($com->o_timestamp)." \n\n$article\n\n Rendez-vous sur : $wwwroot",
"FROM:$support");
[/codebox]Par celui que je t'ai donné.
Si oui, as-tu un message d'erreur ou qu'y a-t-il dans l'email que tu reçois ?
Jcdhl
-
Bonjour,car j'ai j'ai déjà un code qui m'envoi quelques infos mais pas tout ce que je souhaite mettre sur le mail...
mais j'ai aussi des charlatants qui commandes avec de fausses adresses email pour s'amuser...
alors je prefer avoir les mêmes infos que que dans l'admin...
car quand on a un nom AAAA, prénom BBBB email aaaa@bbbb at fr
on ce doute que c'est du vent !!
Merci de préciser comment placer le code SVP...
à bientôt...
Bonjour,
Je te donne le code que j'ai utilisé sur mon site je n'ai pas rencontré de bug.
Il faut mette ce code dans fonctions.php dans la fonction "email_commande".
$qid_commande = mysql_query("SELECT * FROM peel_commandes WHERE id = '$commandeid'");
$qid_items = mysql_query("
SELECT
p.id
,p.reference
,oi.nom_produit
,oi.promotion
,p.prix AS curr_prix
,oi.prix AS purchase_prix
,oi.quantite
,oi.prix * oi.quantite AS total
FROM peel_commandes_articles oi
LEFT JOIN peel_produits p ON (oi.produit_id = p.id)
WHERE commande_id = '$commandeid'
");
$commande = mysql_fetch_object($qid_commande);
// Mail d'information envoyé à l'administrateur
$objet_commande="Une commande portant le numéro $commandeid vient d'être enregistrée sur le site $site.\n\n";
$objet_commande.="Montant total de la commande AVEC frais de port : $com->montant €\n\n";
$total_general=0;
while ($prod = mysql_fetch_array($qid_items))
{
$objet_commande.="$prod[reference] | ";
//$objet_commande.="$prod[id]\t";
$objet_commande.=stripslashes($prod['nom_produit'])." | ";
//$objet_commande.=fprix($prod['curr_prix'])."\t";
$objet_commande.=fprix($prod['purchase_prix'])." | ";
$objet_commande.="$prod[quantite] | ";
$total = $prod['purchase_prix']*$prod['quantite'];
$total_general+=$total;
$objet_commande.=fprix($total)." €\n";
}
if ($commande->promo_libelle!="" || $commande->promo!="0")
{
$objet_commande.="\nRéduction : ";
$objet_commande.=$commande->promo_libelle." | ";
$objet_commande.="- ".$commande->promo." €\n\n";
$total_general-=$commande->promo;
}
$objet_commande.="\nMontant total de la commande SANS frais de port : ".fprix($total_general)." €\n";
mail(
$support,
"Nouvelle commande sur votre site web $site",
$objet_commande,
"FROM:$support");
[/codebox]Cordialement
Jcdhl
-
Bonjour,
Dans ton code, remplace cette ligne :
<?echo stripslashes($sortie['image1']) ?>
par celle-ci :
<img src="<?php echo $repertoire_images?>/<?php echo stripslashes($sortie['image1']) ?>" />
En effet, dans la variable image1, c'est le nom de l'image qui est stocké :) .
Cordialement
Jcdhl
-
par contre pour les left join, ya quand meme moins bourin à faire n'est ce pas?Bonsoir,
Si tu trouves une solution moins lourde, je suis preneur ;)
Pour ma requête, j'ai été contraint de faire 2 left join de suite parce que les infos concernants l'état de la catégorie ne sont pas directement accessibles depuis la table "peel_produits".
Il faut donc joindre les tables "peel_produits" et "peel_produits_categorie" pour savoir dans quelle catégorie est le produit et joindre en même temps les tables "peel_produits_categorie" et "peel_categorie" pour vérifier que l'état de la catégorie est "en ligne".
Cordialement
Jcdhl
-
Bonjour,Je suis interressé par tes modifications sur la page de recherche, si tu peux me les envoyer en MP ou en public, comme tu veux ;)
Merci beaucoup par avance
Cdlt
Fabrice
Bonjour,
Voici l'ancienne requete utilisée pour la recherche :
//$resultat = mysql_query("SELECT id, reference, nom FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR descriptif LIKE '%" . addslashes($_GET['motclef']) . "%' LIMIT $start,$nb");
et il faut la remplacer par celle-ci :
$resultat = mysql_query("SELECT peel_produits.id, peel_produits.reference, peel_produits.nom FROM peel_produits LEFT JOIN peel_produits_categories ON peel_produits.id=peel_produits_categories.produit_id
LEFT JOIN peel_categories ON peel_categories.id=peel_produits_categories.categorie_id WHERE peel_produits.etat = 1 AND peel_categories.etat = 1 AND (peel_produits.nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR peel_produits.descriptif LIKE '%" . addslashes($_GET['motclef']) . "%') LIMIT $start,$nb");
Explications :
La catégorie du produit n'est pas directement disponible. Il faut donc passer par l'intermédiaire de 2 jointures succéssives pour trouver l'état de la catégorie du produit.
La requête suivante sert pour faire la pagination:
- Ancienne requete :
//$result=mysql_query("SELECT COUNT(*) FROM peel_produits WHERE nom LIKE '%" . addslashes($_GET['motclef']) . "%' ");
- Nouvelle requete :
$result = mysql_query("SELECT COUNT(*) FROM peel_produits LEFT JOIN peel_produits_categories ON peel_produits.id=peel_produits_categories.produit_id
LEFT JOIN peel_categories ON peel_categories.id=peel_produits_categories.categorie_id WHERE peel_produits.etat = 1 AND peel_categories.etat = 1 AND (peel_produits.nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR peel_produits.descriptif LIKE '%" . addslashes($_GET['motclef']) . "%')");
N'hésite pas à aller voir sur mon site tu verras que le fonctionnement est OK.
exemple de recherche : fais une recherche sur le terme feuille. Alors que j'ai plusieurs sous-catégories pour les feuilles de scrapbooking dans la catégorie "scrapbooking" qui ne sont pas encore en ligne, tous les produits de ces catégories sont en lignes mais ils n'apparaitront pas dans les résultats de la recherche.
Cordialement
Jcdhl
-
oui elle est bien configurée mais je sais pas pourquoi ça marche pas :DC'est bien une adresse de chez Free parce qu'ils bloquent sinon ?
jcdhl
-
Bonjour,est ce que vous pourriez me dire comment faire pour que ces message ne s'affiche pas je suis chez free,
SMTP = smtp.free.fr
Warning: mail(): Failed to connect to mailserver at "smtp.free.fr" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\documents and settings\gall\bureau\2\lib\fonctions\fonctions.php on line 800
Warning: mail(): Failed to connect to mailserver at "smtp.free.fr" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\documents and settings\gall\bureau\2\lib\fonctions\fonctions.php on line 814
Warning: mail(): Failed to connect to mailserver at "smtp.free.fr" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\documents and settings\gall\bureau\2\lib\fonctions\fonctions.php on line 825
Merci.
Bonjour,
Vérifie dans ton fichier php.ini que cette ligne soit bien configurée.
Je suis également chez free et chez moi ça marche :
[mail function]
; For Win32 only.
SMTP = smtp.free.fr
; For Win32 only.
sendmail_from = ton_adresse_email@free.fr
-
L'avantage de cette solution, c'est qu'on peut préparer une catégorie avec un grand nombre de produits et quand on veut la mettre en ligne, on n'est pas obligé de passer sur chaque produit pour le mettre en ligne.
On a juste à mettre la catégorie en ligne et hop le tour est joué. :D
jcdhl
-
Bonjour,
J'ai été confronté à un problème sur la page de recherche.
Quand on fait une recherche sur un terme, il liste tous les produits qui sont en état actif sans se préocuper de l'état de la catégorie dans laquelle ces produits se trouvent.
Dans les faits, nous avons des produits qui sont en état en ligne et pour éviter qu'ils s'affichent, nous avons mis la catégorie en attente.
Jusque là tout parait normal.
Mais si on fait une recherche, ces produits ressortent. J'ai donc modifié le formulaire de recherche pour qu'il n'affiche que les produits en ligne dont la catégorie est également en ligne.
Si cela vous intérresse faite le moi savoir et je vous donnerai toutes les modifications que j'ai effectué.
Cordialement
jcdhl
-
merci Willyc'était ça mon erreur maintenant reste la page achat/modeles_caddie a modifier car on peut changer la valeur de la quantité affichée :D
Dans la page achat/modeles/caddie.php, il faut chercher la ligne :
<input type="text" size="3" name="quantite[]" value="<?php echo $quantite?>" />
Et la remplacer par :
<select name="quantite[]" class="formulaire1">
<?php // Affiche la quantité en stock
$i=1;
while ($i<=$prod['stock'])
{
echo "<option value=\"$i\"";
if ($i==$quantite) {echo" selected";}
echo " >$i</option>";
$i++;
}
?>
</select>
De cette façon, on a une liste déroulante avec la quantité en stock.
La condition sert à sélectionner la quantité qu'on a ajouté.
Il ne faut pas oublier de changer la fonction "recupere_articles_caddie" dans le fichier fonction.php pour avoir le stock disponible.
juste la requete sql :
$requete = "SELECT id, reference, nom, promotion, prix, tva, stock FROM peel_produits WHERE id IN ($in_clause)";
jcdhl
-
J'ajouterais juste qu'il faut ajouter le champ "stock" à la requet SQL qui ramenne les infos sur le produit ou s'il sagit d'une requete de type "select *", ça n'est pas la peine.Willy
J'ai bien rajouter le champ stock dans la requete sql qui ramenne les infos sur le produit :
$sql = "SELECT p.id, p.reference, p.nom, p.promotion, p.descriptif, p.description, p.image1, p.prix, p.on_special, p.stock, p.typeenvoi, p.poids, pc.categorie_id FROM peel_produits p, peel_produits_categories pc WHERE p.id = pc.produit_id AND pc.categorie_id = $catid AND p.etat = 1 ORDER BY p.LIMIT $start,$nb";
jcdhl
-
on peut voir ou tu déclare ta variable $stockJ'ai crée le champ stock dans la table peel_produit
Sur la page achat/index.php je crée un champ de type 'hidden' pour mettre le stock et j'affiche le stock disponible sous forme de liste déroulante :
J'utilise cette même liste déroulante pour le caddie et pour la fiche détail du produit.
<input type="hidden" name="stock" value="<? echo $prod['stock']; ?>">
<span class="impression" >
<? if ($prod['stock']>0){
?>
Quantité :
<select name="qte" class="formulaire1">
<?php // Affiche la quantité en stock
$i=1;
while ($i<=$prod['stock'])
{
echo "<option value=\"$i\">$i</option>";
$i++;
}
?>
</select>
Et ensuite, j'ai modifié la page caddie_ajout.php comme ceci :
$_SESSION['caddie']->ajout($_REQUEST['id'], $_REQUEST['qte'], $_REQUEST['stock']);
$_SESSION['caddie']->nettoie();
$_SESSION['caddie']->recalc_total();
$HTTP_REFERER = $_SERVER['HTTP_REFERER'];
if (! empty($HTTP_REFERER)) {
header("Location: $HTTP_REFERER");
} else {
header("Location: $wwwroot/index.php");
}
Je peux donc tester lors de l'ajout si la quantité voulue n'est pas supérieure à la quantité disponible.
Cordialement
jcdhl
-
Pour moi il faut remplacer ça:foreach ($this->articles as $produitid => $quantite) { if ($quantite > 1) { $this->articles[$produitid] = "1"; } }
Par une recherche du stock dispo et remplacer la quantité si > stock dispo.
Dans ce cas là, remettre la page caddie_affichage avec un message.
Ce script (en haut) limite la quantité commandée a un par article.
Willy
Voila ma fonction ajout modifiée :
function ajout(&$produitid, $quantite, $stock) {
/* Ajoute un article au caddie et met à jour le montant total */
if (isset($produitid)) {
if (! isset($this->articles[$produitid])) {
$this->articles[$produitid] = 'O';
}
$this->articles[$produitid] += $quantite;
if ($this->articles[$produitid]>$stock)
{
$this->articles[$produitid]=$stock;
}
}
}
J'ai ajouté la variable stock qui contient la quantité en stock
jcdhl
-
Et si on clique plusieurs fois sur le bouton ajouter au panier a partir de la fiche produit que se passe t'il ?Car là aussi il doit y avoir un contrôle.
Willy
A chaque fois, je vérifie la quantité en stock et donc on ne peut pas ajouter plus que la quantité disponible.
Je vérifie quand on clique sur ajouter à partir de la fiche produit, je vérifie quand on clique sur mettre à jour dans le caddie et je vérifie encore lors de la validation de la commande.
Il me parait donc très difficile de commander plus que le stock.
jcdhl
-
Bonjour,
Je suis nouveau sur le forum mais j'ai mis en place une boutique en ligne basé sur PEEL SHOPPING.
J'ai mis pas mal les mais dans le cambouis et j'ai intégré une gestion de stock qui n'est pas encore finalisé.
Cependant, j'ai fait en sorte que lorsqu'on affiche le caddie, au lieu d'une zone de saisie pour la quantité, j'ai mis une liste déroulante avec la quantité en stock. De cette façon il n'est pas possible de commander plus que ce qu'il y a en stock. Le stock quant à lui est diminué lors de la validation de la commande.
Il me reste a faire l'interface de gestion du stock dans la partie Admin et aussi lors de l'annulation d'une commande remettre la quantité annulée dans le stock.
Si je peux vous aider faites moi signe.
jcdhl.
-
l'intégration et le script d'insertion dans la base à partir de peel est de moi à l'origine.Si peux t'aider..
As tu bien installé wanewsletter?
Ah tu bien compris à quoi sert le script dans enregistrement.php?
Bonsoir,
Je viens de mettre en place le script et j'ai une erreur sur la fonction generate_key().
Ou se trouve cette fonction ?
Merci de votre aide
Cordialement
jcdhl
Re-bonsoir,
Ne cherchez plus j'ai trouvé cette fonction qui est dans le fichier de wanewsletter/includes/functions.php
Tout marche nickel
Merci.
dans fonction.php, lors de reception de mail de commande
dans PEEL SHOPPING : logiciel open source de boutique en ligne
Posté(e) · Signaler ce message
Bonjour,
Pour avoir les infos clients il faut simplement ajouté ceci dans la focntion email_commande()
Pour les autres infos que tu souhaites, elles sont dans la table peel_commandes :
client_info2 -> Adresse de livaraison
transport -> Type de transport
paiement -> Type de paiement
Pour le téléphone, il est dans la table peel_utilisateurs.
Cordialement
Jcdhl