Simon développeur PEEL

Administrateur PEEL
  • Compteur de contenus

    2 913
  • Inscrit(e) le

  • Dernière visite


Messages posté(e)s par Simon développeur PEEL


  1. Bonjour,

    la dernière de vos logs d'erreur signifie qu'un envoi d'email a échoué, car aucun serveur de mail n'est configuré. Pour pouvoir envoyer des emails depuis votre serveur local, vous devez renseigner un serveur SMTP dans le fichier php.ini. N'oubliez pas de redémarrer votre serveur pour que cette modification soit prise en compte.

    Votre problème vient de l'incompatibilité entre IE9 et FCKEditor. FCKEditor n'étant plus supporté, il n'y a pas de mise à jour disponible qui corrige ce problème. Il faut que vous utilisiez un autre navigateur que IE9 pour pouvoir vous servir de cette fonctionnalité.


  2. Bonjour,

    La requête se situe dans la fonction insere_utilisateur(), ligne 49 du fichier lib/fonctions/user.php. la requête d’insertion est la suivante :


    $qid = query("INSERT INTO peel_utilisateurs (
    date_insert
    , date_update
    , email
    , mot_passe
    , priv
    , civilite
    , prenom
    , pseudo
    , nom_famille
    , telephone
    , fax
    , portable
    , adresse
    , code_postal
    , ville
    , pays
    , newsletter
    , commercial
    , remise_percent
    , points
    , format
    , societe
    , intracom_for_billing
    , siret
    , siren
    , ape
    , code_banque
    , code_guichet
    , numero_compte
    , cle_rib
    , domiciliation
    , iban
    , bic
    , url
    , description
    , avoir
    , naissance
    , id_groupe
    , origin
    , origin_other
    , id_salerepresentative
    , lang
    , on_vacances
    , on_vacances_date
    , web
    , promo
    , id_cat_1
    , id_cat_2
    , id_cat_3
    , seg_who
    , seg_want
    , seg_think
    , seg_followed
    , seg_buy
    , project_product_proposed
    , project_date_forecasted
    , commercial_contact_id
    ) VALUES (
    '" . nohtml_real_escape_string($date_insert) . "'
    , '" . nohtml_real_escape_string($date_update) . "'
    , '" . nohtml_real_escape_string(trim($frm['email'])) . "'
    , '" . nohtml_real_escape_string($password_hash) . "'
    , '" . nohtml_real_escape_string($priv) . "'
    , '" . nohtml_real_escape_string(vb($frm['civilite'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['prenom'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['pseudo'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['nom_famille'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['telephone'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['fax'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['portable'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['adresse'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['code_postal'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['ville'])) . "'
    , '" . intval(vn($frm['pays'])) . "'
    , '" . intval(vn($frm['newsletter'])) . "'
    , '" . intval(vn($frm['commercial'])) . "'
    , '" . nohtml_real_escape_string(vb($remise_percent)) . "'
    , '" . intval(vb($points)) . "'
    , 'html'
    , '" . nohtml_real_escape_string(vb($frm['societe'])) . "'
    , '" . nohtml_real_escape_string(String::strtoupper(vb($frm['intracom_for_billing']))) . "'
    , '" . nohtml_real_escape_string(vb($frm['siret'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['siren'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['ape'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['code_banque'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['code_guichet'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['numero_compte'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['cle_rib'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['domiciliation'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['iban'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['bic'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['url'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['description'])) . "'
    , '" . nohtml_real_escape_string(vn($frm['avoir'])) . "'
    , '" . nohtml_real_escape_string(vb($naissance)) . "'
    , '" . nohtml_real_escape_string(vn($frm['id_groupe'])) . "'
    , '" . nohtml_real_escape_string(vn($frm['user_origin'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['user_origin7'])) . "'
    , '" . intval(vn($frm['salerepresentative'])) . "'
    , '" . nohtml_real_escape_string(vb($_SESSION['session_langue'])) . "'
    , '" . intval(vn($frm['on_vacances'])) . "'
    , '" . nohtml_real_escape_string(vb($on_vacances_date)) . "'
    , '" . nohtml_real_escape_string(vb($frm['user_website'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['promo_code'])) . "'
    , '" . intval(vn($frm['first_cat_annonce'])) . "'
    , '" . intval(vn($frm['second_cat_annonce'])) . "'
    , '" . intval(vn($frm['third_cat_annonce'])) . "'
    , '" . nohtml_real_escape_string($frm['seg_who']) . "'
    , '" . nohtml_real_escape_string($frm['seg_want']) . "'
    , '" . nohtml_real_escape_string($frm['seg_think']) . "'
    , '" . nohtml_real_escape_string($frm['seg_followed']) . "'
    , '" . nohtml_real_escape_string($frm['seg_buy']) . "'
    , '" . nohtml_real_escape_string(vb($frm['project_product_proposed'])) . "'
    , '" . nohtml_real_escape_string(vb($frm['project_date_forecasted'])) . "'
    , '" . intval(vn($frm['commercial_contact_id'])) . "'
    )");
    [/CODE] Il faut que vous remplaciez
    [CODE]
    $qid = query("INSERT INTO peel_utilisateurs (
    par

    echo("INSERT INTO peel_utilisateurs (
    [/code]

    pour afficher la requête.


  3. Bonjour,

    Étant donnée que le tag qui contiendrait les commentaires n'est pas créé, il faut que vous l'ajoutiez vous-même.

    La recherche de ce code technique (email_commande) dans le code permet de situer l'endroit où le mail est envoyé, et les valeurs de remplacement pour les tags sont stocké dans un tableau. En l'occurence, le seul endroit où est utilisé ce template d'email se situe dans la fonction email_commande, ligne 550 du fichier lib/fonctions/order.php. Cette fonction contient le tableau PHP $custom_template_tags.

    Ce tableau est composé d'index reprenant le nom du tag, et a pour valeur la valeur qui sera mis à la place du tag dans le mail.

    Par exemple, pour le tag [MONTANT], vous pourrez voir ligne 567 ceci :

    	$custom_template_tags['MONTANT'] = fprix($order_object->montant, true);
    C'est par cette ligne que le tag [MONTANT] prend la bonne valeur lorsque le mail est envoyé. Donc, pour ajouter le tag commentaire, il faut ajouter la ligne
    	$custom_template_tags['COMMENTAIRES'] = $order_object->commentaires;

    Dans la fonction, ligne 573 par exemple.

    Ensuite, ajouter le tag [COMMENTAIRES] dans l'email correspondant au technical code email_commande. Si votre boutique est en deux langues, n'oublier par de modifier la version anglaise également.


  4. Bonjour,

    A priori, aucune configuration particulière n'est nécessaire dans le back-office de paypal, puisque les informations nécessaires sont envoyé dans le formulaire.

    Il faut voir avec le support paypal pour la bonne configuration de votre compte.

    Pour informations, les pages utilisé par le modules Paypal de PEEL sont :

    nok.php => Page de retour pour un paiement invalide

    ok.php => Page de retour pour un paiement valide

    ipn.php => Cette page est appelé automatiquement par Paypal lors de la transaction


  5. Bonjour Morpheus,

    Pour supprimer la réinitialisation de la remise uniquement pour les utilisateurs non revedeur, vous devez modifier le fichier lib/class/Caddie.php ligne 1088 :


    if(!a_priv('reve')) {
    /* Annule la remise en % du client, supprimer ces lignes si vous souhaitez que les remises client soient permanentes */
    query("UPDATE peel_utilisateurs
    SET remise_percent = '0', avoir = GREATEST(0, avoir-'" . nohtml_real_escape_string($_SESSION['session_caddie']->avoir) . "')
    WHERE id_utilisateur = '" . intval($_SESSION['session_utilisateur']['id_utilisateur']) . "'");
    }
    [/CODE]

    Si vous avez le module premium, je vous propose d'utiliser la fonctionnalité de groupe. Vous créez un groupe "Revendeur 10%", auquel vous appliquez une réductions de 10%.


  6. Bonjour,

    Morpheus donne une première piste.

    Pour tester, je vous propose de faire un echo de la requête d’insertion d'utilisateur, pour quelle s'affiche sur votre site. Ensuite, copier/coller le résultat dans le champ de l'onglet SQL et exécuter cette requête.

    Si l’insertion ce déroule sans problème, il y a une erreur dans le code. En cas d'erreur, il faudra lire le message renvoyé par Mysql pour savoir ce qui se passe.


  7. Bonjour,

    Pour votre première question, de quelle remise parlez-vous précisément (code promo, avoir,...)?

    Pour votre seconde question,

    - Le statut d'utilisateur "Affilié - attente" est donnée automatiquement aux utilisateurs qui s'inscrivent via le formulaire d'inscription dédié aux affiliation. L'administrateur valide cette demande d'affiliation est modifiant le statut "Affilié - attente" en "Affilié", ce qui active la fonctionnalité d'affiliation pour cet utilisateur.

    - Le fonctionnement est le même pour le statut revendeur. Lorsqu'un utilisateur s'inscrit via le formulaire d'inscription revendeur, il obtient dans un premier temps le statut "Revendeur - attente". L'administrateur doit modifier le statut du compte en "Revendeur"pour que cet utilisateur puisse bénéficier des tarifs préférentiels.

    - Le statut "Fournisseur" doit être attribué manuellement par l'administrateur à des utilisateurs. Les utilisateurs ayant un statut fournisseur peuvent-être associé à des produits dans les pages produits,


  8. Bonjour Morpheus,

    La page de mise à jour automatique de commande et la page de retour de l'utilisateur sur le site ne sont pas les mêmes. Sur PEEL, c'est la page modules/paypal/ipn.php qui est appelé par le serveur paypal et qui gère la mise à jour automatique. Les pages de retour d'utilisateur sont ok.php ou nok.php en fonction du résultat de la transaction.

    Ces paramètres sont à définir dans le formulaire paypal de la fonction getPaypalForm du fichier modules/paypal/fonctions.php. Les paramètres à vérifier sont cancel_return (pour nok.php), return (pour ok.php) et notify_url (ipn.php)


  9. Bonjour Olivier, et bienvenue !

    Pour PEEL SHOPPING + MODULE PREMIUM 6.2 :

    Est-il possible d'ajouter la référence du produit à la gauche de la vignette dans la rubrique "Gestion de stock" ?

    ==> ligne 294 de modules\stock_advanced\administrer\fonctions.php, ajouter la mention Référence :

       	 <tr>
    <td class="menu">R&#233;f&#233;rence</td>
    <td class="menu">Photo</td>
    <td class="menu">Produit</td>
    <td class="menu">Stock</td>
    <td class="menu">Couleur</td>
    <td class="menu">Taille</td>
    <td class="menu">Etat</td>
    </tr>[/CODE] Ensuite, ajouter l'appel de la référence dans le tableau, ligne 334 du même fichier:
    [CODE]<td align="center">' . $product_object->reference . '</td>

    comment ajouter un bouton permettant un retour a la rubrique (page précédente) depuis une fiche produit ?

    => Je vous propose d'abord de lire ce sujet


  10. Bonjour,

    Pour afficher la miniature dans la liste de produit en back office (administrer/produits.php), il faut d'abord ajouter


    $HeaderTitlesArray[] = 'Photo du produit';
    [/CODE] ligne 267 du fichier \lib\fonctions\display_admin_forms.php Ajouter ensuite
    [CODE]
    <td class="normal" align="center">';
    //R&#233;cup&#233;ration de l'image principale du produit
    $main_product_picture = $product_object->get_product_main_picture();
    //Si l'image principale est trouv&#233;e
    if(!empty($main_product_picture)) {
    $this_thumbs = thumbs($main_product_picture, 120, 89, 'fit');
    echo '
    <a href="' . get_current_url(false) . '?mode=modif&amp;id=' . $ligne['id'] . '&amp;page=' . (!empty($_GET['page']) ? $_GET['page'] : 1) . '" title="Modifier ce produit"><img src="' . $GLOBALS['repertoire_upload'] . '/thumbs/' . $this_thumbs . '" alt="' . String::str_form_value($product_object->name) . '" /></a>';
    }else { // si aucune image trouv&#233;e
    echo '
    <a href="' . get_current_url(false) . '?mode=modif&amp;id=' . $ligne['id'] . '&amp;page=' . (!empty($_GET['page']) ? $_GET['page'] : 1) . '" title="Modifier ce produit"><img src="' . $GLOBALS['wwwroot'] . '/images/photo-non-disponible.gif" alt="' . PHOTO_NOT_AVAILABLE_ALT . '" /></a> ';
    }
    echo '
    </td>

    ligne 386 \lib\fonctions\display_admin_forms.php


  11. Bonjour,

    Le problème est déjà que votre fichier ipn.php n'est pas appelé par le serveur paypal.

    pouvez-vous regarder si la ligne


    <input type="hidden" name="notify_url" value="' . String::str_form_value($GLOBALS['wwwroot'] . '/modules/paypal/ipn.php') . '" />
    [/CODE]

    est bien présente dans le fichier modules\paypal\fonctions.php ?


  12. Bonjour,

    Pour faire une recherche sur chaque mot, vous devez dans un premier temps scinder votre recherche en se servant des espaces comme critères grâce à la fonction explode.

    Ensuite, il faut faire une boucle avec le tableau créé par la fonction explode pour générer la requête SQL. :


    if (isset($frm['reference_search']) && !empty($frm['reference_search'])) {
    // Si aucun espace est pr&#233;sent dans la chaine, explode retourne l'int&#233;gralit&#233; de $frm['reference_search']
    $search_term = explode(' ', $frm['reference_search']);
    $sql_condition ='';
    foreach ($search_term as $this_term) {
    $sql_condition .= "OR p.nom_fr LIKE '%" . nohtml_real_escape_string($this_term) . "%' ";
    }
    $where .= " AND p.reference = '" . nohtml_real_escape_string($frm['reference_search']) . "' ".$sql_condition;
    }
    [/CODE]


  13. Bonjour Steph,

    L'émission d'une facture est habituellement proche de la livraison, néanmoins il n'y a pas de règle absolue sur ce sujet d'après le plan comptable.

    Si vous le souhaitez, vous pouvez faire un petit développement pour avoir des factures proforma à cet endroit en remplacement des factures si le produit n'est pas passé en payé ou en livré.


  14. Bonjour,

    Il n'y a pas de procéder simple pour ce genre d'opération. Les différences entre les deux modèles de données sont nombreuses, et l'opération de migration est complexe. Nous pouvons vous aider à changer de version, et vous faire profiter de notre expertise en la matière. Je vous invite à prendre contact avec le service commercial au 01 75 43 67 97.

Twitter Advisto ecommerce

Facebook PEEL Shopping