Ajout Date de fin d'une promotion dans la fiche Produit
18 messages
• Page 1 sur 2 • 1, 2
Ajout Date de fin d'une promotion dans la fiche Produit
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.
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é
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
- Jielde
- Messages: 19
- Inscrit le: 31 Oct 2011, 19:00
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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.
Car dans le second cas (comme dans le premier, je pense), il existe des modules qui le font très bien, voir ici.
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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 Imaxine
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 Imaxine
Hébergeur : Easyphp en local ou OVH
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
- Jielde
- Messages: 19
- Inscrit le: 31 Oct 2011, 19:00
Re: Ajout Date de fin d'une promotion dans la fiche Produit
On va regarder cela, alors !!
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Ajout Date de fin d'une promotion dans la fiche Produit
Merci,
J'essaye toujours de mon coté, si je trouve je le post ici.
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é
Opencart : v1.5.1.1 en Français
Thème : Défaut modifié
- Jielde
- Messages: 19
- Inscrit le: 31 Oct 2011, 19:00
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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.+
Mais il y a peu de différence (Dans ce cas, pour ces modifications) entre la v1.4.9 et la v1.5.+
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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
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 Imaxine, 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
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 Imaxine, 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
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- eric02
- Messages: 181
- Inscrit le: 20 Fév 2012, 13:39
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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
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
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- eric02
- Messages: 181
- Inscrit le: 20 Fév 2012, 13:39
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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 :
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 :
Est ce bon ? totalement à coté de la plaque ???
eric
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
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- eric02
- Messages: 181
- Inscrit le: 20 Fév 2012, 13:39
Re: Ajout Date de fin d'une promotion dans la fiche Produit
As-tu le sujet que j'ai mis en lien ?
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Ajout Date de fin d'une promotion dans la fiche Produit
toutes mes plates excuses .. je n'avais pas vu ... j'y file
Merci Imaxine
Merci Imaxine
Opencart 1.5.5.1
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- eric02
- Messages: 181
- Inscrit le: 20 Fév 2012, 13:39
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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
Qui afficherait un compte à rebours
je place
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.
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
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- eric02
- Messages: 181
- Inscrit le: 20 Fév 2012, 13:39
Re: Ajout Date de fin d'une promotion dans la fiche Produit
Très intéressant, nous attendons avec impatience ta modification ainsi que le résultat escompté.
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
Re: Ajout Date de fin d'une promotion dans la fiche Produit
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 :
ajouter dessous
rechercher :
remplacer par:
dans catalog/language/french/product.product.php
rechercher :
ajouter dessous
dans catalog/model/catalog/product.php
rechercher :
placer avant :
dans catalog/view/theme/default/product/product.tpl
rechercher
ajouter après
dans catalog/view/theme/default/stylsheet/stylesheet.css
rechercher
ajouter au dessus
elle n'est pas belle la vie ?
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’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 ?
Opencart 1.5.5.1
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- Production nouveau site en local : EasyPhp 5.3.8.1
- Multi-boutiques (3) en local
Mod : quelques modifications maison, VQmod -
Autres
Templates : maison
http://www.editionsduharicot.fr/
- eric02
- Messages: 181
- Inscrit le: 20 Fév 2012, 13:39
Re: Ajout Date de fin d'une promotion dans la fiche Produit
Tout à fait, sauf que tu aurais pu la rendre plus belle et plus facile avec un fichier vQmod (jamais satisfait ce Imaxine) !!eric02 a écrit:elle n'est pas belle la vie ?
- Imaxine
- Messages: 3023
- Inscrit le: 27 Juil 2009, 19:28
18 messages
• Page 1 sur 2 • 1, 2
Qui est en ligne ?
Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité