Nous ne répondons seulement qu'aux sujets dont l'auteur a complété sa signature [Lire]



Vous avez des soucis avec votre Opencart v1.5.x, nous pouvons résoudre vos problèmes,
contactez le Bureau France !

par tel: 0 891 690 175 ou par
email

Ajout Date de fin d'une promotion dans la fiche Produit

Programmation, discussions et suggestions pour l'amélioration de OpenCart

Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar Jielde » 25 Fév 2012, 21:33

Bonjour,

Je cherche a ajouter la Date de fin d'une promotion dans la fiche produit de l'article.

J'ai trouvé dans la base de donnée la ligne date_end dans la catégorie product_special mais je n'arrive pas à la récupéré.
Je pense que tous se passe dans catalog/model/catalog/product.php.

pouvez-vous m'aider ?

Merci.
Hébergeur : Easyphp en local ou OVH
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
Jielde
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 13
Inscription: 31 Oct 2011, 19:00

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar LeorLindel » 26 Fév 2012, 00:44

Tu comptes mettre la date d'expiration de la promotion ou le temps encore disponible pour celle-ci ?

Car dans le second cas (comme dans le premier, je pense), il existe des modules qui le font très bien, voir ici.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar Jielde » 26 Fév 2012, 01:29

Pas mal, j'ai trouvé mon bonheur pour le deuxième cas (dont je n'avais pas pensé ;) )

Par contre je souhaiterais afficher la date d'expiration (date de fin de la promo) à coté du prix et là j'ai pas trouvé...

merci LeorLindel
Hébergeur : Easyphp en local ou OVH
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
Jielde
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 13
Inscription: 31 Oct 2011, 19:00

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar LeorLindel » 26 Fév 2012, 01:33

On va regarder cela, alors !!
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar Jielde » 26 Fév 2012, 13:35

Merci,

J'essaye toujours de mon coté, si je trouve je le post ici.
Hébergeur : Easyphp en local ou OVH
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
Jielde
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 13
Inscription: 31 Oct 2011, 19:00

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar LeorLindel » 26 Fév 2012, 17:21

Ce sujet pourra peut être t'aider hormis que les modifications effectuées pour un semblant de résultat sont destinées aux versions 1.4.9.

Mais il y a peu de différence (Dans ce cas, pour ces modifications) entre la v1.4.9 et la v1.5.+
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar eric02 » 27 Fév 2012, 17:32

Bonjour je suis loin d'etre un cador en php, je suis aussi interessé par cette modification et comme il ne s'agit que d'afficher, je pense que le fichier ou tu dois apporter la modification souhaité n'est pas celui que tu indiques, mais plutot :

catalog/view/theme/defaukt/template/product/special.tpl

dans ce fichier (qui va chercher les infos dans la table "product_special") il y a les lignes 46-50
Code: Tout sélectionner
 <?php if (!$product['special']) { ?>
        <?php echo $product['price']; ?>
        <?php } else { ?>
        <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
        <?php } ?>


qui font le test de savoir si le produit est en promo et si c'est le cas il y a affichage du prix normal barré et du prix promo.

La logique me semble de dupliquer ces lignes, de les modifier en choisissant alors l'affichage de la date de fin de la promo.

Ceci dit sous le couvert et l'absolution du Doc LeorLindel, qu'il lui plaise de confirmer ou d'infirmer ma reflexion ???

je fais des essais dans ce sens et je posterai pour narrer le resultat.

Cordialement ;)
Opencart 1.5.5.1
www.savonsdesgalets.fr/
- Sur serveur distant
- Boutique Templates : Maison
Mod : quelques modifications maison, VQmod - quelques fichiers xml
Autres : Category home page, recent viewed, login sidebar, search side bar,...
Tutoriel :
- Installer OC Multi Store http://forum.opencart-france.fr/post9116#p9116
http://www.editionsduharicot.fr/
- Livret Vqmod http://forum.opencart-france.fr/tutoriels/vqmod-in-french-dans-le-texte-t1896
eric02
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 269
Inscription: 20 Fév 2012, 13:39

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar eric02 » 27 Fév 2012, 17:49

Autant pour moi

correction, c'est plutot dans le fichier :

catalog/view/theme/defaukt/template/product/product.tpl, à partir de la ligne 32

je teste
Opencart 1.5.5.1
www.savonsdesgalets.fr/
- Sur serveur distant
- Boutique Templates : Maison
Mod : quelques modifications maison, VQmod - quelques fichiers xml
Autres : Category home page, recent viewed, login sidebar, search side bar,...
Tutoriel :
- Installer OC Multi Store http://forum.opencart-france.fr/post9116#p9116
http://www.editionsduharicot.fr/
- Livret Vqmod http://forum.opencart-france.fr/tutoriels/vqmod-in-french-dans-le-texte-t1896
eric02
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 269
Inscription: 20 Fév 2012, 13:39

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar eric02 » 27 Fév 2012, 19:31

Bon bon ...

Je reviens une fois encore sur ce que j'ai dit plus haut
Il doit falloir intervenir sur le fichier product.php pour :

- recupérer la valeur du champ "date_end" dans la ligne 14
- definir la variable "date_end"en ajoutant dans le tableau à partir de la ligne 16 :

Code: Tout sélectionner
'date_end'         => $query->row['date_end'],


la table "product_special" etant une table liée, cela va au dela de mes tres tres modestes competences, je tenterais bien quelque chose comme ceci en remplacant la ligne 14 du fichier catalog/model/catalog/product.php :

Code: Tout sélectionner
      $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT date_end FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS date_end, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");



Est ce bon ? totalement à coté de la plaque ???
eric
Opencart 1.5.5.1
www.savonsdesgalets.fr/
- Sur serveur distant
- Boutique Templates : Maison
Mod : quelques modifications maison, VQmod - quelques fichiers xml
Autres : Category home page, recent viewed, login sidebar, search side bar,...
Tutoriel :
- Installer OC Multi Store http://forum.opencart-france.fr/post9116#p9116
http://www.editionsduharicot.fr/
- Livret Vqmod http://forum.opencart-france.fr/tutoriels/vqmod-in-french-dans-le-texte-t1896
eric02
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 269
Inscription: 20 Fév 2012, 13:39

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar LeorLindel » 27 Fév 2012, 22:52

As-tu le sujet que j'ai mis en lien ?
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar eric02 » 27 Fév 2012, 23:59

toutes mes plates excuses .. je n'avais pas vu ... j'y file

Merci LeorLindel
Opencart 1.5.5.1
www.savonsdesgalets.fr/
- Sur serveur distant
- Boutique Templates : Maison
Mod : quelques modifications maison, VQmod - quelques fichiers xml
Autres : Category home page, recent viewed, login sidebar, search side bar,...
Tutoriel :
- Installer OC Multi Store http://forum.opencart-france.fr/post9116#p9116
http://www.editionsduharicot.fr/
- Livret Vqmod http://forum.opencart-france.fr/tutoriels/vqmod-in-french-dans-le-texte-t1896
eric02
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 269
Inscription: 20 Fév 2012, 13:39

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar eric02 » 23 Mar 2012, 20:22

Bonjour,

j'ai trouvé une façon différente pour obtenir ce resultat

voila le lien de la page
http://stackoverflow.com/questions/7759607/trying-to-add-jquery-countdown-timer-for-special-price-in-opencart

à l'exception du dernier code à inserer à la place (dans catalog/view/theme/default/template/product/product.tpl) de
Code: Tout sélectionner
<?php if (!$special) { ?>
    <?php echo $price; ?>
    <?php } else { ?>
    <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
      <?php if ($special_date_end): ?>
      <!-- TIMER CODE HERE -->
      <div class="timer"></div>
      <?php endif; ?>
    <?php } ?>


Qui afficherait un compte à rebours

je place
Code: Tout sélectionner
<?php if (!$special) { ?>
   <?php echo $price; ?>
   <?php } else { ?>
   <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
   <span class="text-end"><?php echo $text_special_end; ?></span> <span class="date-end"><?php echo $special_date_end; ?></span>
   <?php } ?>


Là ne me reste plus qu'à mettre en forme comme je le souhaite cet affichage :
- Le format de la date "à la française"
- construire la class qui va afficher ces infos avec un ptit badge web 2.0 "Offre Spéciale", le tout dans le coin haut et droit de la fiche produit.
Opencart 1.5.5.1
www.savonsdesgalets.fr/
- Sur serveur distant
- Boutique Templates : Maison
Mod : quelques modifications maison, VQmod - quelques fichiers xml
Autres : Category home page, recent viewed, login sidebar, search side bar,...
Tutoriel :
- Installer OC Multi Store http://forum.opencart-france.fr/post9116#p9116
http://www.editionsduharicot.fr/
- Livret Vqmod http://forum.opencart-france.fr/tutoriels/vqmod-in-french-dans-le-texte-t1896
eric02
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 269
Inscription: 20 Fév 2012, 13:39

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar LeorLindel » 23 Mar 2012, 21:05

Très intéressant, nous attendons avec impatience ta modification ainsi que le résultat escompté.
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar eric02 » 24 Mar 2012, 04:00

et voila le travail ! Bien content
http://www.editionsduharicot.fr/A_la_Une/Zen-1
Cela va me permettre d'enlever la première ligne verte du descriptif, que je plaçais "manuellement".

pour realiser cela, je me suis inspiré de ce que j'ai trouvé et qui est cité un peu plus haut.

Les modifs à faire sont les suivantes :

- Se créer un "badge.png" de 123px / 120px

puis

dans catalog/controller/product/product.php

rechercher :
Code: Tout sélectionner
$this->data['text_price'] = $this->language->get('text_price');

ajouter dessous
Code: Tout sélectionner
$this->data['text_special_end'] = $this->language->get('text_special_end');


rechercher :
Code: Tout sélectionner
if ((float)$product_info['special']) {
            $this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
         } else {
            $this->data['special'] = false;
         }


remplacer par:
Code: Tout sélectionner
if ((float)$product_info['special']) {
            $this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
         // +++ NEW CODE
         $special_info = $this->model_catalog_product->getSpecialPriceDates($product_id);
         if ($special_info) {
            $this->data['special_date_end'] = date($this->language->get('date_format_short'), strtotime($special_info['date_end']));
         } else {
            $this->date['special_date_end'] = false;
         }
         // +++ END NEW CODE
         } else {
            $this->data['special'] = false;
         }


dans catalog/language/french/product.product.php
rechercher :
Code: Tout sélectionner
$_['text_price']         = 'Prix : ';

ajouter dessous
Code: Tout sélectionner
$_['text_special_end']      = 'Jusqu&#8217;au : ';


dans catalog/model/catalog/product.php
rechercher :
Code: Tout sélectionner
public function getLatestProducts($limit) {

placer avant :
Code: Tout sélectionner
// Return an array containing special (price, date_start, date_end).
    // or false if no special price exists.
    public function getSpecialPriceDates($product_id) {
        if ($this->customer->isLogged()) {
            $customer_group_id = $this->customer->getCustomerGroupId();
        } else {
            $customer_group_id = $this->config->get('config_customer_group_id');
        }
        $query = $this->db->query("SELECT price, date_start, date_end FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");

        if ($query->num_rows) {
            return array(
                'special'    => $query->row['price'],
                'date_start' => $query->row['date_start'],
                'date_end'   => $query->row['date_end'],
            );
        } else {
            return false;
        }
    }


dans catalog/view/theme/default/product/product.tpl
rechercher
Code: Tout sélectionner
<div class="right">

ajouter après
Code: Tout sélectionner
<div class="promo">
    <?php if ($price >=0) { ?>
   <?php if (!$special !=' ') { ?>
   <div class="badge"><img src="/image/badge-web.png"></div>
         <div class="date-end"><?php echo $text_special_end; ?><?php echo $special_date_end; ?></strong></div>
   <?php } ?>
   <?php } ?>
   </div>


dans catalog/view/theme/default/stylsheet/stylesheet.css

rechercher
Code: Tout sélectionner
.product-info .description {

ajouter au dessus

Code: Tout sélectionner
.product-info .promo{
float:right;
display: inline-block;
margin-right: 5px;
}
.product-info .badge {
background-image: url('../image/badge-web.png') ;
background-repeat: no-repeat;
background-position:center;
height: 120px;
}
.product-info .date-end {
font-size: 13px;
font-weight: bold;
color: #f00;
}


elle n'est pas belle la vie ? :D
Opencart 1.5.5.1
www.savonsdesgalets.fr/
- Sur serveur distant
- Boutique Templates : Maison
Mod : quelques modifications maison, VQmod - quelques fichiers xml
Autres : Category home page, recent viewed, login sidebar, search side bar,...
Tutoriel :
- Installer OC Multi Store http://forum.opencart-france.fr/post9116#p9116
http://www.editionsduharicot.fr/
- Livret Vqmod http://forum.opencart-france.fr/tutoriels/vqmod-in-french-dans-le-texte-t1896
eric02
Utilisateur enregistré
Utilisateur enregistré
 
Messages: 269
Inscription: 20 Fév 2012, 13:39

Re: Ajout Date de fin d'une promotion dans la fiche Produit

Messagepar LeorLindel » 24 Mar 2012, 04:11

eric02 a écrit:elle n'est pas belle la vie ? :D
Tout à fait, sauf que tu aurais pu la rendre plus belle et plus facile avec un fichier vQmod (jamais satisfait ce LeorLindel) !! :D
Image
1 - A lire avant de poster un sujet
2 - Politique sur la signature.

Quand le sujet est résolu, pensez à ajouter la petite coche verte Image dans le titre initial en éditant votre premier message et non dans votre dernière réponse.
Merci


Toutes les extensions commerciales (templates ou modules payants) ne peuvent pas faire l'objet d'ouverture de sujet, prière de bien vouloir s'adresser au concepteur en cas de problème ou demande de renseignements.

Seul, on avance plus vite, à plusieurs on avance plus loin.
Avatar de l’utilisateur
LeorLindel
Administrateur
Administrateur
 
Messages: 4227
Inscription: 19 Fév 2010, 13:44
Localisation: Lutéce

Suivante

Retourner vers Développement

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron