Files
le-matelot/client/plugins/incitation/incitation_admin.php
2020-01-27 08:56:08 +01:00

797 lines
17 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
include_once(realpath(dirname(__FILE__)) . "/../../../fonctions/authplugins.php");
autorisation("incitation");
?>
<?php
include_once(realpath(dirname(__FILE__)) . "/Incitation.class.php");
if($_REQUEST['action'] == "modifier"){
if($_REQUEST['id']) {
$incitation = new Incitation();
($_REQUEST['inclurepromo']==1) ? $promoinclus = 1 : $promoinclus =0;
($_REQUEST['inclurenouveaute']==1) ? $nouvinclus = 1 : $nouvinclus =0;
$query = "UPDATE $incitation->table SET actif='" . $_REQUEST['active'] . "', seuiltotal='" . $_REQUEST['seuiltotal'] . "', type='" . $_REQUEST['type'] . "', valref='" . $_REQUEST['valref'] . "', qtetotal ='". $_REQUEST['qtetotal'] . "', inclurepromo ='". $promoinclus . "', inclurenouveaute ='". $nouvinclus . "', prodpanier ='". $_REQUEST['prodpanier'] . "', qteprod ='". $_REQUEST['qteprod'] . "' where id='". $_REQUEST['id']."'";
$resul = mysql_query($query, $incitation->link);
?>
<script type="text/javascript">
alert("Mise a jour Incitation OK ");
</script>
<?php
}
else {
$incitation = new Incitation();
$incitation->type = $_REQUEST['type'];
$incitation->valref = $_REQUEST['valref'];
$incitation->actif = $_REQUEST['actif'];
$incitation->seuiltotal = $_REQUEST['seuiltotal'];
$incitation->qtetotal = $_REQUEST['qtetotal'];
($_REQUEST['inclurepromo']==1) ? $incitation->inclurepromo = $_REQUEST['inclurepromo'] : $incitation->inclurepromo =0;
($_REQUEST['inclurenouveaute']==1) ? $incitation->inclurenouveaute = $_REQUEST['inclurenouveaute']: $incitation->inclurenouveaute =0;
$incitation->prodpanier = $_REQUEST['prodpanier'];
$incitation->qteprod = $_REQUEST['qteprod'];
$incitation->add();
}
}
if($_REQUEST['action'] == "supprimer"){
$incitation = new Incitation();
$query = "delete from $incitation->table where id='" . $_REQUEST['id'] . "'";
$resul = mysql_query($query, $incitation->link);
}
$type_bonus = array();
$incitation = new Incitation();
$query = "select * from $incitation->table order by id ";
$resul = mysql_query($query, $incitation->link);
$nbres = mysql_num_rows($resul);
if(!$nbres) return "";
$compt=0;
while($row = mysql_fetch_object($resul)){
$type_bonus[$compt] = $row;
$compt++;
}
?>
<script src='../lib/jquery/jquery.js' type='text/javascript'></script>
<script type="text/javascript">
$(document).ready(function(){
$(".cache").hide();
$(".ouvre").click(function(){
$(this).next(".cache").slideToggle(300);
});
$(".ouvre2").click(function(){
$(this).next(".cache2").slideToggle(300);
});
});
</script>
<style type="text/css">
#help_text ul {
list-style-type:disc; padding: 10px;
}
#help_text ul li {
list-style-type:auto;
margin: 5px 0;
}
#help_text ul li ul li {
list-style-type: none;
margin: 5px 0;
}
#help_text h3 {
margin: 10px 0;
}
#help_text .titre_cellule_tres_sombre {
float: none;
}
</style>
<div id="contenu_int">
<p>
<a class="lien04" href="accueil.php">Accueil</a>
<img width="12" height="9" border="0" src="gfx/suivant.gif"><a class="lien04" href="module_liste.php">Modules</a>
<img width="12" height="9" border="0" src="gfx/suivant.gif"><a class="lien04" href="module.php?nom=incitation">Incitation v0.5</a>
</p>
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td width="100%" height="30" class="titre_cellule_tres_sombre">Configuration des incitations</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="cellule_sombre" style="font-weight: bolder">
<th width="10%" height="30" style="text-align: center">Actif</th>
<th width="12%" height="30">Type d'incitation</th>
<th width="5%" height="30" style="text-align: center"></th>
<th width="16%" height="30">Code promo / REF</th>
<th width="10%" height="30" style="text-align: center">Tot Cmde</th>
<th width="10%" height="30" style="text-align: center">Qte Art</th>
<th width="5%" height="30" style="text-align: center">Promo</th>
<th width="5%" height="30" style="text-align: center">Nouv.</th>
<th width="10%" height="30" style="text-align: center">Ref Panier</th>
<th width="10%" height="30" style="text-align: center">Qte Ref</th>
<th width="15%" height="30" style="text-align: center">Valider</th>
<th width="10%" height="30" style="text-align: center">Suppr.</th>
</tr>
<tr class="cellule_claire">
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
<th height="10"></th>
</tr>
<?php
$incitation = new Incitation();
foreach ($type_bonus as $incitation) {
echo '<tr class="cellule_claire">
<form action="module.php" method="post">
<input type="hidden" name="nom" value="incitation" />
<input type="hidden" name="id" value="'.$incitation->id.'" />
<input type="hidden" name="action" value="modifier" />
<td style="text-align:center"><input type="checkbox" name="active"';
if($incitation->actif == 1) echo 'checked="checked"';
echo 'value="1" /></td>
<td><select name="type">
<option>Choisir un type</option>
<option value="remise"';
if ($incitation->type=='remise') echo 'selected="selected"';
echo '>Remise</option><option value="portoffert"';
if ($incitation->type=='portoffert') echo 'selected="selected"';
echo '>Port offert</option><option value="bonusref"';
if ($incitation->type=='bonusref') echo 'selected="selected"';
echo '>R&eacute;f&eacute;rence offerte</option>
</select>
</td>
<td>';
switch($incitation->type)
{
case 'remise': echo '<img src="../client/plugins/incitation/img/down.png" style="margin-left:10px;" />'; break;
case 'portoffert': echo '<img src="../client/plugins/incitation/img/globe.png" style="margin-left:10px;" />'; break;
case 'bonusref': echo '<img src="../client/plugins/incitation/img/add.png" style="margin-left:10px;" />'; break;
default : echo '<img src="../client/plugins/incitation/img/help.png" style="margin-left:10px;" />'; break;
}
echo '</td>
<td><input type="texte" name="valref" value="'.$incitation->valref.'"/></td>
<td><input type="texte" name="seuiltotal" value="'.$incitation->seuiltotal.'" style="width:80px;" /></td>
<td><input type="texte" name="qtetotal" value="'.$incitation->qtetotal.'" style="width:80px;" /></td>
<td><input type="checkbox" name="inclurepromo" value="1" ';
if ($incitation->inclurepromo=='1') echo 'checked="checked"';
echo '/></td><td><input type="checkbox" name="inclurenouveaute" value="1" ';
if ($incitation->inclurenouveaute=='1') echo 'checked="checked"';
echo '/></td>
<td><input type="texte" name="prodpanier" value="'.$incitation->prodpanier.'" style="width:80px;" /></td>
<td><input type="texte" name="qteprod" value="'.$incitation->qteprod.'" style="width:80px;" /></td>
<td><input type="submit" value="changer"/></form></td>
<td><a style="display:block; width:16px; height:16px;" href="module.php?nom=incitation&action=supprimer&id='.$incitation->id.'"><img src="../client/plugins/incitation/img/stop.png" style="margin-left:10px;" /></a></td>
</tr>';
}
?>
<tr class="cellule_claire"><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th><th height="10"></th></tr>
</table>
<form action="module.php" method="get" style="margin: 10px 0">
<input type="hidden" name="nom" value="incitation" /> <input
type="hidden" name="action" value="modifier" /> <input type="submit"
value="Ajouter une incitation" />
</form>
<div id="help_text" style="width: 970px; color: #000000;">
<div class="ouvre"
style="width: 975px; cursor: pointer; height: 50px; line-height: 60px;">
<img src="../client/plugins/incitation/img/bandeau.png"
style="float: left;" /> <img
src="../client/plugins/incitation/img/help.png"
style="float: left; margin: 22px 10px 0 290px;" />
<h3>Cliquer ici pour afficher l'aide</h3>
</div>
<div class="cache" style="width: 970px;">
<div class="titre_cellule_tres_sombre" style="width: 970px; height: 20px;">MODE D'EMPLOI</div>
<div style="width: 955px; border: #999999 dashed 1px; border-top: none; padding: 10px;">
<h3>Interface d'administration des Incitations</h3>
<ul>
<li>Colonne <b>"Actif"</b> : doit être cochée pour que
l'incitation fonctionne sur votre site (par défaut : décochée).</li>
<li>Colonne <b>"Type d'incitation"</b> : selectionner l'un des 3
types disponibles
<ul>
<li><img src="../client/plugins/incitation/img/down.png" style="float: left; margin: 0 10px;" />
Remise sur le montant de la commande</li>
<li><img src="../client/plugins/incitation/img/globe.png" style="float: left; margin: 0 10px;" />
Port offert</li>
<li><img src="../client/plugins/incitation/img/add.png" style="float: left; margin: 0 10px;" />
Référence offerte</li>
</ul>
</li>
<li>Colonne <b>"Code promo/REF"</b> : ce champ est obligatoire
pour les types "remise" et "référence offerte". Il est inutile et
peut rester vide pour le type "port offert".
<ul>
<li><img src="../client/plugins/incitation/img/tag_green.png" style="float: left; margin: 0 10px;" />
Pour le type <b>remise</b>: créez d'abords un code promo dans le BO Thelia (Code promo /Ajouter
un code promo) avec les paramètres de votre choix, puis coller ici le code promo créé pour l'occasion.</li>
<li><img src="../client/plugins/incitation/img/tag_green.png" style="float: left; margin: 0 10px;" />
Pour le type <b>référence offerte</b>: créez d'abords un produit spécifique, le cadeau, dans
votre catalogue avec un prix=0 et un stock=0. <br /> Pour éviter de
le voir s'afficher sur votre site, vous pouvez désactiver l'option
"en ligne".<br />Coller ici la réference de ce produit.</li>
</ul>
</li>
<li>Colonne <b>"Tot Cmde"</b> : condition d'attribution de
l'incitation : entrer un montant comme seuil minimal TTC d'une
commande (par défaut : 0).</li>
<li>Colonne <b>"Qte Art"</b> : condition d'attribution de
l'incitation : entrer une quantité minimale d'articles dans une
commmande (par défaut : 0).</li>
<li>Colonnes <b>"Promo"</b> et <b>"Nouv."</b> : Le total de la
commande et la quantité d'articles dans le panier sont calculés en
prenant en compte les produits nouveaux et/ou en promo si les
cases correspondantes sont cochées et vice versa (par défaut :
cochées).</li>
<li>Colonne <b>"Référence présente"</b> : condition d'attribution
de l'incitation : remplir avec la référence d'un produit du
catalogue impose que cette référence soit présente dans le panier
pour attribuer l'incitation (par défaut : vide).</li>
<li>Colonne <b>"Quantité référence"</b> : condition d'attribution
de l'incitation : quantité minimum de la référence ci-dessus (par
défaut : 0).</li>
<li>Colonne <b>"valider"</b> : obligatoire pour valider les mises
à jour de chaque Incitation.</li>
</ul>
<p>Le bouton <b>"ajouter une incitation"</b> permet de créer un
nombre illimité d'Incitations pour votre site.</p>
<h3>Mode de calcul du plugin</h3>
<p>Le déroulement du calcul est le suivant : Sur chaque page de
votre site disposant de la variable <b>$incitation_active=1</b> le
plugin manipule la variable de session promo, normalement dédiée
uniquement à l'enregistrement des codes promo validés par le client.
Il manipule aussi le panier pour enregistrer ou supprimer les
cadeaux prévus. Enfin il force le port à 0 si besoin et l'affiche
sur le site si la balise Th&eacute;lia #PANIER_PORT est présente.
concernant les remises sur total, le plugin prend en compte les
remises globales niveau client et les codes promos validés selon
l'enchaînement suivant :</p>
<ul style="liste-style-type: none">
<li><img src="../client/plugins/incitation/img/time.png"
style="float: left; margin: 0 10px;" /> 1°) Réinitialisation de la
session <b>promo</b> pour calcul dynamique de sa valeur par <b>Incitation</b>.</li>
<li><img src="../client/plugins/incitation/img/tag_green.png"
style="float: left; margin: 0 10px;" /> 2°) Calcul des <b>codes
promos</b> personnalisés soumis éventuellement par le client sur
la page commande.php*</li>
<li><img src="../client/plugins/incitation/img/down.png"
style="float: left; margin: 0 10px;" /> 3°) Calcul des Incitations
de type <b>remises</b> en fonction du total de la commande,
diminué de la remise globale niveau client et des éventuels codes
promos.</li>
<li><img src="../client/plugins/incitation/img/globe.png"
style="float: left; margin: 0 10px;" /> 4°) Calcul du <b>port
offert</b> en fonction du total de la commande diminué des
éventuels codes promos et remises.</li>
<li><img src="../client/plugins/incitation/img/add.png"
style="float: left; margin: 0 10px;" /> 5°) Calcul des <b>références
offertes</b> en fonction du total de la commande diminué des
éventuels codes promo et remises.</li>
</ul>
<p><img src="../client/plugins/incitation/img/error.png" style="float: left; margin: 0 10px;" /> * Le plugin modifie le
fonctionnement nominal de Thelia sur ce point : si un client rentre
un code promo sur la page commande.php et qu'il retourne ensuite sur
le site sans valider sa commande, son code promo sera réinitialisé :
il sera néanmoins en mesure de le rentrer à nouveau pour en
bénéficier une fois de retour sur la page commande.php.</p>
</div>
<div class="titre_cellule_tres_sombre"
style="width: 970px; height: 20px;">EXEMPLE</div>
<div style="width: 955px; border: #999999 dashed 1px; border-top: none; padding: 10px;">
Voici comment créer très simplement une promotion
sur votre site : pour une commande atteignant 100€, 10% de remise.
Pour une commmande atteignant 200€, 20% de remise. <br /> <br /> -
Sur la page code promo : <img
src="../client/plugins/incitation/img/exemple2.png" /> <br /> <br />
<br /> - Sur cette page module/incitation : <img
src="../client/plugins/incitation/img/exemple1.png" /> <br /> <br />
<br /> - Affichage du panier avec les balises Thelia : <img
src="../client/plugins/incitation/img/exemple3.png" /> <br />
</div>
<div class="titre_cellule_tres_sombre"
style="width: 970px; height: 20px;">TECHNIQUE</div>
<h3>Affichage des valeurs calculées par le plugin</h3>
<ul>
<li><img src="../client/plugins/incitation/img/down.png"
style="float: left; margin: 0 10px;" />L'affichage des <b>remises</b>
: <br />
<br /> <b>Incitation</b> utilise la session promo de Thelia ; de ce
fait l'affichage de ses calculs pour les remises est totalement
transparent : Incitation ne créée aucune balise supplémentaire ou
substitution. Les valeurs rendues par les substitutions
#PANIER_REMISE et #PANIER_TOTREMISE afficheront le montant des
remises attribuées par vos incitations et le total de la commande
diminué de ce montant alors que #PANIER_TOTAL affichera le montant
du panier sans les remises.</li>
<br />
<li><img src="../client/plugins/incitation/img/add.png"
style="float: left; margin: 0 10px;" />L'affichage des <b>références
offertes</b> : <br />
<br /> Comme tout produit, une référence offerte s'affiche
automatiquement dans le panier, la commande, la facture... sans
manipulation particulière.</li>
<br />
<li><img src="../client/plugins/incitation/img/globe.png"
style="float: left; margin: 0 10px;" />L'affichage du <b>port
offert</b> : <br />
<br /> Le port est une valeur dynamique que Thelia calcule
systématiquement avant de l'afficher. Le plugin incitation utilise
donc les substitutions #PANIER_PORT et #PANIER_TOTPORT et les
remplace avant Thelia. Cette manipulation a lieu sur ces
substitutions si votre page comporte la variable <b>$incitation_active=1</b>
(à ajouter sur transport.php pour générer la valeur exacte du port
sur cette page).</li>
</ul>
</div>
</div>
<h3>Ottoroots - 2009</h3>
<img src="../client/plugins/incitation/img/email.png" style="float: left; margin-right: 10px;" />ottoroots@gmail.com<br />
<img src="../client/plugins/incitation/img/world.png" style="float: left; margin-right: 10px;" /> www.cosmoweb.fr
<p>Portage Thelia 1.5 : Franck Allimant / <a href="http://www.cqfdev.fr" target="_blank">CQFDev</a></p>
</div>