Flux d’activité

Flux d’activité de Messages

  1. william_13


    Bonjour et merci William_13.

    J'ai fait exactement ce que vous avez inscrit y compris la page de maintenance mais je ne vois pas apparaitre de modification au niveau du Back office, comment accéder à cette mise en maintenance ? ;)

    Jacques.

    bonsoir jacouille24

    normalement il doit y avoir

    site en cours de maintenance etc

    si la case oui dans la page maintenance a étè cochée

    et le site doit de nouveau fonctionner quant on coche la case non

    j ai mis la page maintenance dans le dossier administrateur.

    lors des tests celà a fonctionné normalement

    william_13

    chez moi en local celà fonctionne

    je viens de refaire le test et j ai bien ceci en page d accueil

    Le site G54 est actuellement en cours de maintenance pour quelques minutes.

    Merci de votre compréhension. et celà dans la page maintenance Vos modifications ont été prise en compte.

  2. xxxl


    bonjour a tous,

    j ai un bug agacant sur 5.3:

    je crai un article dont la designation est "toto vert"

    un fois créé dans la liste de produits il s appelle bien "toto vert"

    si je cliques dessus pour le modifier, la designation devient "toto" !! "vert" disparait !!!

    il faut que je remette la designation complete à chaque modif d un article......

    avez vous une idee ??

    Merci.

  3. serialmother


    Bonjour,

    dans la version premium5, j'ai mis le menu dans une barre horizontale,

    et je ne vois pas dans le forum comment modifier le template (si c'est bien le fichier à modifier) pour que le sous menu apparaisse au survol de la souris.

    Actuellement, il faut cliquer sur la catégorie pour afficher les sous-catégories, ce qui augmente la hauteur du bandeau.

    Un affichage au survol de la souris, et non plus au clic n'aurait pas d'incidence visuel.

    Est-ce bien cette partie du template qu'il faut modifier ?

    function affiche_menu_catalogue() {

    if (!isset($_GET['catid'])) { $catid = 0; } else {$catid = $_GET['catid']; }

    $frm['parent'] = array($catid);

    construit_menu_arborescent_cat($categorie_options, $frm['parent']);

    echo "<ul>";

    echo $categorie_options;

    echo "</ul>";

    ou faut il modifier la feuille de style ?

    Merci pour votre aide.

  4. jacouille24


    Bonjour à tous.

    Afin d'éviter quelques déboires à l'installation de PEEL SHOPPING V4, j'ai essayé de le placer sur plusieurs version de XP.

    J'ai constaté que sous XP simple, la mise en place était laborieuse et il arrive que le logiciel bug, donc j'ai essayé sur XP PRO simple "IDEM" je suis passé à la version XP PRO SP2 et SP3 et là c'est génial.

    Moralité :(qui n'engage que moi) QUAND ON VEUT FAIRE PRO, IL FAUT DU PRO.

    Il faut dire que XP PRO SP2 est nettement supérieur aux autres et la mise à jour est gratuite (quand il est d'origine et non cracké) ;)

  5. jacouille24


    bonsoir Jacouille24

    voici les modifs que j ai fait pour que le systeme puisse être opérationnel sur shopping

    il y a un debut de code sur haut.php

    if (!defined('IN_STANDBY'))

    {

    echo "<div align=\"center\" style=\"font-family:tahoma,verdana;font-size:13px;font-weight:bold;\"><br /><br />Le site $site est actuellement en cours de maintenance pour quelques minutes.<br /><br />Merci de votre compr&eacute;hension.</div>";

    exit();

    }

    et celui de la page configuration_inc

    que j ai modifié

    if ($standby == 0) {

    define('IN_STANDBY', TRUE);

    }

    et dans setup -> info.inc

    $standby = "0";

    ensuite concevoir une page ex : maintenance.php avec le code suivant

    debut code

    <?

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

    <html>

    <head>

    <title><?=$DOC_TITLE ?></title>

    <meta http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">

    <link REL="stylesheet" type="text/css" href="<?=$wwwroot?>/lib/css/admin.css" />

    <script type="text/javascript" language="javascript">

    /**

    * marks all rows and selects its first checkbox inside the given element

    * the given element is usaly a table or a div containing the table or tables

    *

    * @param container DOM element

    */

    var marked_row = new Array;

    function markAllRows( container_id ) {

    var rows = document.getElementById(container_id).getElementsByTagName('tr');

    var unique_id;

    var checkbox;

    for ( var i = 0; i < rows.length; i++ ) {

    checkbox = rows.getElementsByTagName( 'input' )[0];

    if ( checkbox && checkbox.type == 'checkbox' ) {

    unique_id = checkbox.name + checkbox.value;

    if ( checkbox.disabled == false ) {

    checkbox.checked = true;

    if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) {

    rows.className += ' marked';

    marked_row[unique_id] = true;

    }

    }

    }

    }

    return true;

    }

    /**

    * marks all rows and selects its first checkbox inside the given element

    * the given element is usaly a table or a div containing the table or tables

    *

    * @param container DOM element

    */

    function unMarkAllRows( container_id ) {

    var rows = document.getElementById(container_id).getElementsByTagName('tr');

    var unique_id;

    var checkbox;

    for ( var i = 0; i < rows.length; i++ ) {

    checkbox = rows.getElementsByTagName( 'input' )[0];

    if ( checkbox && checkbox.type == 'checkbox' ) {

    unique_id = checkbox.name + checkbox.value;

    checkbox.checked = false;

    rows.className = rows.className.replace(' marked', '');

    marked_row[unique_id] = false;

    }

    }

    return true;

    }

    </script>

    <style>

    tr.classe1 {

    background-color: #F4F4F4;

    color : #000000;

    font-family : "Trebuchet Ms", Arial, Helvetica;

    font-weight : normal;

    font-size : 13px;

    text-decoration: none;

    }

    tr.classe2 {

    background-color: #E5E5E5;

    color : #000000;

    font-family : "Trebuchet Ms", Arial, Helvetica;

    font-weight : normal;

    font-size : 13px;

    text-decoration: none;

    }

    tr.classe3 {

    background-color: #CCFFCC;

    color : #000000;

    font-family : "Trebuchet Ms", Arial, Helvetica;

    font-weight : normal;

    font-size : 13px;

    text-decoration: none;

    }

    </style>

    </head>

    <body>

    <?php

    $DOC_TITLE = "Maintenance du site";

    switch (vb($_REQUEST['mode'])) {

    case "ajout" :

    ecrire($_POST);

    echo "<div class=\"normal\">Vos modifications ont &eacute;t&eacute; prise en compte.</div>";

    $tab_var = lire();

    affiche_variables($tab_var);

    break;

    default :

    $tab_var = lire();

    affiche_variables($tab_var);

    break;

    }

    // LISTE DES FONCTIONS

    function lire() {

    chdir("../lib/setup");

    $file = fopen("info.inc.php", "r");

    $count = 0;

    $tab_var = array();

    while (true) {

    if (feof($file)) break;

    $car = fgetc($file);

    while(($car != "\"") && (true)) {

    if (feof($file)) break;

    $car = fgetc($file);

    }

    //ici on est au debut de la variable

    $car = fgetc($file);

    $var="";

    while (($car != "\"") && (true)) {

    if (feof($file)) break;

    $var = $var.$car;

    $car = fgetc($file);

    }

    $tab_var[$count] = $var;

    $count++;

    }

    fclose($file);

    chdir("../../administrer");

    return $tab_var;

    }

    function ecrire(&$frm) {

    chdir("../lib/setup");

    $file = fopen("info.inc.php", "w");

    $string = "<?

    \n\$serveur_mysql = \"". $frm['serveur_mysql']."\";

    \n\$utilisateur_mysql = \"". $frm['utilisateur_mysql']."\";

    \n\$mot_de_passe_mysql = \"". $frm['mot_de_passe_mysql']."\";

    \n\$nom_de_la_base = \"". $frm['nom_de_la_base']."\";

    \n\$wwwroot = \"". $frm['wwwwroot']."\";

    \n\$site = \"". $frm['site']."\";

    \n\$support = \"".$frm['support']."\";

    \n\$standby = \"".$frm['standby']."\";

    \n?>";

    fwrite($file, $string);

    fclose($file);

    chdir("../../administrer");

    }

    function affiche_variables(&$tab_var) {

    ?>

    <table border=0 width="802" class="tablespace">

    <tr>

    <td class="entete" colspan="2">Variables du site</th>

    </tr>

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

    <tr><td width="439" class="normal">Serveur h&ocirc;te (mysql) :</td>

    <td width="353"><input style="width:100%" type="text" name="serveur_mysql" value="<? echo($tab_var[0]); ?>">

    </td></tr>

    <tr><td class="normal">Identifiant (mysql) : </td><td><input style="width:100%" type="text" name="utilisateur_mysql" value="<? echo($tab_var[1]); ?>">

    </td></tr>

    <tr><td class="normal">Mot de passe (mysql) : </td><td><input style="width:100%" type="password" name="mot_de_passe_mysql" value="<? echo($tab_var[2]); ?>">

    </td></tr>

    <tr><td class="normal">Nom de la base mysql : </td><td><input style="width:100%" type="text" name="nom_de_la_base" value="<? echo($tab_var[3]); ?>">

    </td></tr>

    <tr><td class="normal">URL de la boutique sans barre oblique &agrave; la fin : </td><td><input style="width:100%" type="text" name="wwwwroot" value="<? echo($tab_var[4]); ?>" >

    </td></tr>

    <tr><td class="normal">Nom du site web :</td><td><input style="width:100%" type="text" name="site" value="<? echo($tab_var[5]); ?>">

    </td></tr>

    <tr><td class="normal">Email administrateur :</td><td><input style="width:100%" type="text" name="support" value="<? echo($tab_var[6]); ?>">

    </td></tr>

    <tr><td class="entete" colspan="2"><b>Site en cours de maintenance : </b>

    </td></tr>

    <tr><td class="normal">Seul le back office reste consultatble. Vous pouvez ainsi importer vos produits, trier vos cat&eacute;gories etc ... sans que cela soit g&ecirc;nant pour vos clients. Ceux ci verront simplement une page leur annoncant que le sites est en maitenance et les invitant &agrave; revenir plus tard.

    : </td><td class="normal"><input type="radio" name="standby" value="1" <?php if (isset($tab_var[14])) { if ($tab_var[14] == "1") echo "checked";}?>> Oui<input type="radio" name="standby" value="0" <?php if (isset($tab_var[14])) { if ($tab_var[14] == "0") echo "checked"; }?>>Non</td></tr>

    <td align="center" colspan="2">

    <input type="submit" name="action" class="bouton" value="Enregistrer les modifications">

    <input type="hidden" name="mode" value="ajout">

    </form>

    </td></tr>

    </table>

    <?

    }

    ?>

    voilà

    Bonjour et merci William_13.

    J'ai fait exactement ce que vous avez inscrit y compris la page de maintenance mais je ne vois pas apparaitre de modification au niveau du Back office, comment accéder à cette mise en maintenance ? ;)

    Jacques.

  6. seal20


    bonjour Jean-Hervé

    il contient :

    bonjour !

    a visité le site Test V4 - Magasin en ligne et pense que vous trouverez cet article intéressant :

    URL:

    Commentaires supplémentaires :

    ------------------------------------

    autrement dit, il ne contient pas le nom du destinataire, ni de l'expediteur, ni l'url de la page, ni du commentaire.

    Par contre il est bien expédié. Je n'ai fait aucune modif sur la page direaunami.php ...

    voici le code de la page :

    ----------------------------------------------------------------------------------------------------------------

    <?php

    include("configuration.inc.php");

    if (sizeof($_POST)> 0) {

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

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

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

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

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

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

    }

    $DOC_TITLE = "[PEEL.FR]";

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

    switch (vb($_REQUEST['mode'])) {

    case "send" :

    ?>

    <TABLE BORDER="0" width="100 %" CELLSPACING="5" CELLPADDING="5">

    <tr>

    <td>

    <font >

    <?

    if (($yname=="") || ($fname=="") || ($femail=="")|| ($yemail=="")) {

    echo "<h2>".TELL_FRIEND."</h2>";

    echo MSG_ERR_FRIEND;

    } else {

    echo "<h2>".TELL_FRIEND."</h2>";

    echo MSG_FRIEND_SEND;

    $items = "6";

    for ($numitems=1; $numitems < $items; $numitems++) {

    if (($fname[$numitems]!="") && ($femail[$numitems]!="")) {

    mail("$femail[$numitems]",html_entity_decode(SUBJECT_EMAIL_FRIEND),html_entity_decode(OBJECT_EMAIL_F

    RIEND),"FROM:$yemail");

    }

    }

    ?>

    <p>

    <a href = "<? echo "$referer"; ?>" ><?echo BACK_REFERER;?></a></p>

    </font>

    <?

    } ?>

    </td>

    </tr>

    </table>

    <?

    break;

    default :

    ?>

    <form method="post" action="<?=$_SERVER['PHP_SELF'];?>">

    <input name="mode" value="send" type="hidden">

    <!-- D&eacute;but Dire &agrave; un ami -->

    <?

    $referer = $_SERVER['HTTP_REFERER'];

    echo "<h2>". TELL_FRIEND."</h2>";

    echo nl2br(html_entity_decode(MSG_TELL_FRIEND)) ?>

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

    <tr>

    <td><?echo FROM ?><font color="#CC0000">(*)</font> : </td>

    <td><?echo EMAIL ?> <font color="#CC0000">(*)</font> : </td>

    </tr>

    <tr>

    <td><input class="formulaire1" type="text" name="yname" size="25"></td>

    <td><input class="formulaire1" type="text" name="yemail" size="29"></td>

    </tr>

    <tr>

    <td><?echo THEIR_NAMES ?><font color="#CC0000">(*)</font></td>

    <td><?echo THEIR_EMAILS ?> <font color="#CC0000">(*)</font></td>

    </tr>

    <tr>

    <td><input class="formulaire1" type="text" name="fname[1]" size="25"></td>

    <td><input class="formulaire1" type="text" name="femail[1]" size="29"></td>

    </tr>

    <tr>

    <td><input class="formulaire1" type="text" name="fname[2]" size="25"></td>

    <td><input class="formulaire1" type="text" name="femail[2]" size="29"></td>

    </tr>

    <tr>

    <td><input class="formulaire1" type="text" name="fname[3]" size="25"></td>

    <td><input class="formulaire1" type="text" name="femail[3]" size="29"></td>

    </tr>

    <tr>

    <td><input class="formulaire1" type="text" name="fname[4]" size="25"></td>

    <td><input class="formulaire1" type="text" name="femail[4]" size="29"></td>

    </tr>

    <tr>

    <td><input class="formulaire1" type="text" name="fname[5]" size="25"></td>

    <td><input class="formulaire1" type="text" name="femail[5]" size="29"></td>

    </tr>

    <tr>

    <td colspan="2"><?echo COMMENTS ?> : </td>

    </tr>

    <tr>

    <td colspan="2" >

    <textarea class="formulaire1" rows="6" name="comments" style="width:500px"></textarea></td>

    </tr>

    <tr>

    <td colspan="2" align="center">

    <input type="hidden" NAME="referer" VALUE="<? echo $referer; ?>">

    <input class="bouton" type="submit" NAME="action" VALUE="<?echo SEND ?>">

    </td>

    </tr>

    <tr>

    <td colspan="2" align="left">

    <font color=red>(*) <?echo MANDATORY ?></font>

    </td>

    </tr>

    </table>

    </FORM>

    <?

    break;

    }

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

    ?>

    -----------------------------------------------------------------------------------

    une idée de ce qu'il faut corriger ?

  7. william_13


    Bonjour à tous, je n'ai pas trouvé l'astuce pour mettre PSv4 en maintenance mais d'abord, est ce possible avec la version free ?

    Merci de la réponse Jacques ;)

    bonsoir Jacouille24

    voici les modifs que j ai fait pour que le systeme puisse être opérationnel sur shopping

    il y a un debut de code sur haut.php

    if (!defined('IN_STANDBY'))

    {

    echo "<div align=\"center\" style=\"font-family:tahoma,verdana;font-size:13px;font-weight:bold;\"><br /><br />Le site $site est actuellement en cours de maintenance pour quelques minutes.<br /><br />Merci de votre compr&eacute;hension.</div>";

    exit();

    }

    et celui de la page configuration_inc

    que j ai modifié

    if ($standby == 0) {

    define('IN_STANDBY', TRUE);

    }

    et dans setup -> info.inc

    $standby = "0";

    ensuite concevoir une page ex : maintenance.php avec le code suivant

    debut code

    <?

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

    <html>

    <head>

    <title><?=$DOC_TITLE ?></title>

    <meta http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">

    <link REL="stylesheet" type="text/css" href="<?=$wwwroot?>/lib/css/admin.css" />

    <script type="text/javascript" language="javascript">

    /**

    * marks all rows and selects its first checkbox inside the given element

    * the given element is usaly a table or a div containing the table or tables

    *

    * @param container DOM element

    */

    var marked_row = new Array;

    function markAllRows( container_id ) {

    var rows = document.getElementById(container_id).getElementsByTagName('tr');

    var unique_id;

    var checkbox;

    for ( var i = 0; i < rows.length; i++ ) {

    checkbox = rows.getElementsByTagName( 'input' )[0];

    if ( checkbox && checkbox.type == 'checkbox' ) {

    unique_id = checkbox.name + checkbox.value;

    if ( checkbox.disabled == false ) {

    checkbox.checked = true;

    if ( typeof(marked_row[unique_id]) == 'undefined' || !marked_row[unique_id] ) {

    rows.className += ' marked';

    marked_row[unique_id] = true;

    }

    }

    }

    }

    return true;

    }

    /**

    * marks all rows and selects its first checkbox inside the given element

    * the given element is usaly a table or a div containing the table or tables

    *

    * @param container DOM element

    */

    function unMarkAllRows( container_id ) {

    var rows = document.getElementById(container_id).getElementsByTagName('tr');

    var unique_id;

    var checkbox;

    for ( var i = 0; i < rows.length; i++ ) {

    checkbox = rows.getElementsByTagName( 'input' )[0];

    if ( checkbox && checkbox.type == 'checkbox' ) {

    unique_id = checkbox.name + checkbox.value;

    checkbox.checked = false;

    rows.className = rows.className.replace(' marked', '');

    marked_row[unique_id] = false;

    }

    }

    return true;

    }

    </script>

    <style>

    tr.classe1 {

    background-color: #F4F4F4;

    color : #000000;

    font-family : "Trebuchet Ms", Arial, Helvetica;

    font-weight : normal;

    font-size : 13px;

    text-decoration: none;

    }

    tr.classe2 {

    background-color: #E5E5E5;

    color : #000000;

    font-family : "Trebuchet Ms", Arial, Helvetica;

    font-weight : normal;

    font-size : 13px;

    text-decoration: none;

    }

    tr.classe3 {

    background-color: #CCFFCC;

    color : #000000;

    font-family : "Trebuchet Ms", Arial, Helvetica;

    font-weight : normal;

    font-size : 13px;

    text-decoration: none;

    }

    </style>

    </head>

    <body>

    <?php

    $DOC_TITLE = "Maintenance du site";

    switch (vb($_REQUEST['mode'])) {

    case "ajout" :

    ecrire($_POST);

    echo "<div class=\"normal\">Vos modifications ont &eacute;t&eacute; prise en compte.</div>";

    $tab_var = lire();

    affiche_variables($tab_var);

    break;

    default :

    $tab_var = lire();

    affiche_variables($tab_var);

    break;

    }

    // LISTE DES FONCTIONS

    function lire() {

    chdir("../lib/setup");

    $file = fopen("info.inc.php", "r");

    $count = 0;

    $tab_var = array();

    while (true) {

    if (feof($file)) break;

    $car = fgetc($file);

    while(($car != "\"") && (true)) {

    if (feof($file)) break;

    $car = fgetc($file);

    }

    //ici on est au debut de la variable

    $car = fgetc($file);

    $var="";

    while (($car != "\"") && (true)) {

    if (feof($file)) break;

    $var = $var.$car;

    $car = fgetc($file);

    }

    $tab_var[$count] = $var;

    $count++;

    }

    fclose($file);

    chdir("../../administrer");

    return $tab_var;

    }

    function ecrire(&$frm) {

    chdir("../lib/setup");

    $file = fopen("info.inc.php", "w");

    $string = "<?

    \n\$serveur_mysql = \"". $frm['serveur_mysql']."\";

    \n\$utilisateur_mysql = \"". $frm['utilisateur_mysql']."\";

    \n\$mot_de_passe_mysql = \"". $frm['mot_de_passe_mysql']."\";

    \n\$nom_de_la_base = \"". $frm['nom_de_la_base']."\";

    \n\$wwwroot = \"". $frm['wwwwroot']."\";

    \n\$site = \"". $frm['site']."\";

    \n\$support = \"".$frm['support']."\";

    \n\$standby = \"".$frm['standby']."\";

    \n?>";

    fwrite($file, $string);

    fclose($file);

    chdir("../../administrer");

    }

    function affiche_variables(&$tab_var) {

    ?>

    <table border=0 width="802" class="tablespace">

    <tr>

    <td class="entete" colspan="2">Variables du site</th>

    </tr>

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

    <tr><td width="439" class="normal">Serveur h&ocirc;te (mysql) :</td>

    <td width="353"><input style="width:100%" type="text" name="serveur_mysql" value="<? echo($tab_var[0]); ?>">

    </td></tr>

    <tr><td class="normal">Identifiant (mysql) : </td><td><input style="width:100%" type="text" name="utilisateur_mysql" value="<? echo($tab_var[1]); ?>">

    </td></tr>

    <tr><td class="normal">Mot de passe (mysql) : </td><td><input style="width:100%" type="password" name="mot_de_passe_mysql" value="<? echo($tab_var[2]); ?>">

    </td></tr>

    <tr><td class="normal">Nom de la base mysql : </td><td><input style="width:100%" type="text" name="nom_de_la_base" value="<? echo($tab_var[3]); ?>">

    </td></tr>

    <tr><td class="normal">URL de la boutique sans barre oblique &agrave; la fin : </td><td><input style="width:100%" type="text" name="wwwwroot" value="<? echo($tab_var[4]); ?>" >

    </td></tr>

    <tr><td class="normal">Nom du site web :</td><td><input style="width:100%" type="text" name="site" value="<? echo($tab_var[5]); ?>">

    </td></tr>

    <tr><td class="normal">Email administrateur :</td><td><input style="width:100%" type="text" name="support" value="<? echo($tab_var[6]); ?>">

    </td></tr>

    <tr><td class="entete" colspan="2"><b>Site en cours de maintenance : </b>

    </td></tr>

    <tr><td class="normal">Seul le back office reste consultatble. Vous pouvez ainsi importer vos produits, trier vos cat&eacute;gories etc ... sans que cela soit g&ecirc;nant pour vos clients. Ceux ci verront simplement une page leur annoncant que le sites est en maitenance et les invitant &agrave; revenir plus tard.

    : </td><td class="normal"><input type="radio" name="standby" value="1" <?php if (isset($tab_var[14])) { if ($tab_var[14] == "1") echo "checked";}?>> Oui<input type="radio" name="standby" value="0" <?php if (isset($tab_var[14])) { if ($tab_var[14] == "0") echo "checked"; }?>>Non</td></tr>

    <td align="center" colspan="2">

    <input type="submit" name="action" class="bouton" value="Enregistrer les modifications">

    <input type="hidden" name="mode" value="ajout">

    </form>

    </td></tr>

    </table>

    <?

    }

    ?>

    voilà

  8. Pascalv


    Toujours rien à faire...

    Ca tourne en boucle et je ne peux terminer le processus d'installation.

    Quelqu'un pourrait-il vérifier le source du fichier verifdroits.php (dans installation) de la version que j'ai reçu ?

    (Je peux l'envoyer)

    Car cela ne peut venir que de là, il est certain que les droits sont OK en écriture (777) sur les fichiers et répertoires indiqués

    Problème résolu, j'ai pu terminer l'installation.

    Grace à Guillaume qui m'a envoyé son propre fichier "verifdroits.php

    Merci !

    Pascal

Twitter Advisto ecommerce

Facebook PEEL Shopping