Remplacer un prix par la mention "sur devis"

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

Remplacer un prix par la mention "sur devis"

Messagepar eric02 » 13 Mars 2012, 01:21

Fini et calé. Testé sur OC 1.5.1.3 à ce jour

Cette contrib a pour objet de remplacer le prix d'un article par la mention "Uniquement sur devis" dans le cas où le produit nécessite une "fabrication/production spécifique" où lorsque, c'est mon cas, l'on propose des services chiffrables et à la demande.
La mention "Uniquement sur devis" peut être remplacé par "Sur commande" si vous proposez des articles ou produits de fabrication unique et/ou particuliere... et surement d'autres cas de figure.

Comme toutes modifications, avant de la mettre en oeuvre, prenez les précautions d'usage (à savoir pour ma part, de tester les modifications sur une installation OC propre, jamais directement sur mon site en production. Cela évite souvent des ... désagréments).

Je remercie ici Imaxine, qui a pris (largement) le temps, de me guider et de m'aider.
Je fais ici un retour, qui me parait on ne peut plus "logique et normal", vu que de mon coté je profite et bénéficie très largement du travail des développeurs.

Merci à toutes et à tous.


Lors de la création de l'article, mettre le prix à "0.00" €.

Tous les produits du site étant à "0.00" € seront affectés par cette modification.


Les fichiers sont à modifier de la façon suivante :

Fichier langue : catalog/language/french/product/product.php

chercher :
Code: Tout sélectionner
$_['text_or']            = '- OU -';
au dessous, coller :
Code: Tout sélectionner
$_['text_info_quotation']   = 'Cliquer sur le bouton ci-dessus pour un contact de notre part, en précisant l’objet de votre demande, ainsi qu’un numéro de téléphone.';
Chercher :
Code: Tout sélectionner
$_['text_error']         = 'Produit introuvable ! ';
Deux lignes en dessous coller :
Code: Tout sélectionner
// Button
$_['button_quotation']        = 'Demander un devis';
Apporter la même modification dans les autres langues si nécessaire.

Fichier : catalog/controller/product/product.php

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

Au-dessous, coller :
Code: Tout sélectionner
$this->data['text_quotation'] = $this->language->get('text_quotation');
$this->data['text_info_quotation'] = $this->language->get ('text_info_quotation');
chercher :
Code: Tout sélectionner
$this->data['button_cart'] = $this->language->get('button_cart');

au-dessous, coller :
Code: Tout sélectionner
$this->data['button_quotation'] = $this->language->get('button_quotation');
chercher :
Code: Tout sélectionner
$this->load->model('catalog/review');
coller, 2 lignes au-dessous :
Code: Tout sélectionner
$this->data['quotation'] = $this->url->link('information/contact');

Fichier : catalog/view/theme/default/template/product/product.tpl

chercher :
Code: Tout sélectionner
<span><?php echo $text_stock; ?></span> <?php echo $stock; ?></div>
Coller au-dessous :
Code: Tout sélectionner
<?php if ($price <=0 ) { ?>
          <div class="price"><?php echo $text_price; ?><?php echo $text_quotation; ?></div>
          <?php } else { ?>
          <div class="price"><?php echo $text_price; ?>
          <?php } ?>
          <?php if ($price > 0 ) { ?>
chercher :
Code: Tout sélectionner
<?php if ($options) { ?>
Coller au-dessus :
Code: Tout sélectionner
<?php if ($price > 0 ) { ?>
chercher :
Code: Tout sélectionner
<div><?php echo $text_qty; ?>
          <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
          <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
          &nbsp;<a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a></div>
        <div><span>&nbsp;&nbsp;&nbsp;<?php echo $text_or; ?>&nbsp;&nbsp;&nbsp;</span></div>
        <div><a onclick="addToWishList('<?php echo $product_id; ?>');"><?php echo $button_wishlist; ?></a><br />
          <a onclick="addToCompare('<?php echo $product_id; ?>');"><?php echo $button_compare; ?></a></div>
Remplacer par :
Code: Tout sélectionner
<?php if ($price > 0 ) { ?>
            <div><?php echo $text_qty; ?>
              <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
              <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
                <br /><br /><a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a></div>
             <?php } else { ?>
             <div><a id="button-cart" class="button" href="<?php echo $contact; ?>"><span><?php echo $button_quotation; ?></span></a>
   <span style="padding-bottom: 5px;"><?php echo $text_info_quotation; ?></span>
          <?php } ?>
chercher :
Code: Tout sélectionner
<div class="minimum"><?php echo $text_minimum; ?></div>
            <?php } ?></div>
Coller au-dessous :
Code: Tout sélectionner
<?php if ($price > 0 ) { ?>
chercher :
Code: Tout sélectionner
<div class="review">
            <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>" />&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $reviews; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $text_write; ?></a></div>
            <div class="share"><!-- AddThis Button BEGIN -->
            <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div>
            <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>
              <!-- AddThis Button END -->
            </div>
          </div>
         <?php } ?>
remplacer par :
Code: Tout sélectionner
<div class="review">
            <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>" />&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $reviews; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $text_write; ?></a></div>
            <div class="share"><!-- AddThis Button BEGIN -->
            <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div>
            <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>
              <!-- AddThis Button END -->
            </div>
          </div>
         <?php } ?>
        <?php } else { ?>
         <div class="review">
            <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>" />&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $reviews; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click');"><?php echo $text_write; ?></a></div>
            <br /><div class="share"><!-- AddThis Button BEGIN -->
            <div class="addthis_default_style"><a class="addthis_button_compact"><?php echo $text_share; ?></a> <a class="addthis_button_email"></a><a class="addthis_button_print"></a> <a class="addthis_button_facebook"></a> <a class="addthis_button_twitter"></a></div>
            <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js"></script>
              <!-- AddThis Button END -->
            </div>
          </div> 
          <?php } ?>

Voila c'est fini.
Dernière édition par eric02 le 13 Mars 2012, 19:10, édité 1 fois au total.
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/
eric02
 
Messages: 181
Inscrit le: 20 Fév 2012, 13:39

Re: Remplacer un prix par la mention "sur devis"

Messagepar Imaxine » 13 Mars 2012, 01:48

eric02 a écrit:[b]Je remercie ici Imaxine, qui a pris (largement) le temps, de me guider et de m'aider.
Je fais ici un retour, qui me parait on ne peut plus "logique et normal", vu que de mon coté je profite et bénéficie très largement du travail des développeurs.
Tu n'as pas à me remercier car ce fût un plaisir pour moi aussi, et....c'est un peu mon taf, aussi, ici (bein v"la que j'fais des rimes).

En tous cas, merci de ce retour fort intéressant pour la communauté !!
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Remplacer un prix par la mention "sur devis"

Messagepar Imaxine » 13 Mars 2012, 01:51

N'hésites pas à en faire un module en XML pour vQmod et le mettre sur le portail des extensions que tout le monde puisse en profiter.
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Remplacer un prix par la mention "sur devis"

Messagepar eric02 » 13 Mars 2012, 02:41

Ok dés que ... dès que... :)

je n'ai pu resister longtemps voici la suite des modifications à apporter sur les fichiers "catégory" de façon à avoir tout au long de son site une certaine ... cohérence.

Modification sur le fichier catalog/view/theme/default/template/product/category.tpl
rechercher
Code: Tout sélectionner
  <div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>

remplacer par :
Code: Tout sélectionner
<?php if ($product['price'] <=0 ) { ?>
          <div class="cart"><a href="<?php echo $quotation; ?>" class="button"><span><?php echo $button_quotation; ?></span></a></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
      <?php } else { ?>
      <div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
     <?php } ?>

fichier catalog/controller/product/ category.php
rechercher
Code: Tout sélectionner
$this->data['text_price'] = $this->language->get('text_price');

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

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

ajouter en dessous
Code: Tout sélectionner
$this->data['button_quotation'] = $this->language->get('button_quotation');
         
$this->data['quotation'] = $this->url->link('information/contact');


Fichier : catalog/language/french/category.php
à la fin du fichier et avant
Code: Tout sélectionner
?>

coller
Code: Tout sélectionner
// Button
$_['button_quotation']        = 'Demande de devis';


C'est fini pour les catégories

Si vous utilisez les modules "Nouveautés" et/ou "En vedette", il faut ici aussi penser à faire les mêmes modifications.
les modules "Promotions" "Meilleures Ventes", ne sont pas (à priori) concernées, et pour cause ... Pas de promo sur un article "Sur devis", quant au module "Meilleures ventes", lui fonctionne à partir des quantités vendues directement sur le site.
Dernière édition par eric02 le 13 Mars 2012, 10:39, édité 1 fois au total.
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/
eric02
 
Messages: 181
Inscrit le: 20 Fév 2012, 13:39

Re: Remplacer un prix par la mention "sur devis"

Messagepar eric02 » 13 Mars 2012, 02:59

J'ai une "404" sur mon bouton "demander devis" sur "categories",
j'ai mis
Code: Tout sélectionner
$this->data['quotatio'] = $this->url->link('information/contact');

serait ce une question de chemin ???
je regarde ça tout à l'heure ...

Nuit !!!
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/
eric02
 
Messages: 181
Inscrit le: 20 Fév 2012, 13:39

Re: Remplacer un prix par la mention "sur devis"

Messagepar Imaxine » 13 Mars 2012, 03:02

Tu as mis "quotatio" au lieu de "quotation"

L’enthousiasme surement...!!
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Remplacer un prix par la mention "sur devis"

Messagepar eric02 » 13 Mars 2012, 10:36

Ooop's ... effectivement j'avais mis "quotatio" partout dans les modif sur les fichiers category...
Mais cela ne venait pas de là

dans mon fichier template ... "product.tpl"
des caractères en trop, je corrige cela dans la solution.

Voila c'est "Ok" !
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/
eric02
 
Messages: 181
Inscrit le: 20 Fév 2012, 13:39

Re: Remplacer un prix par la mention "sur devis"

Messagepar eric02 » 13 Mars 2012, 14:21

Les modifications à apporter au module "Nouveautés" (latest), il en sera de même si vous utilisez le module "En vedette".

Fichier : "catalog/controller/module/latest.php"
chercher :
Code: Tout sélectionner
$this->data['button_cart'] = $this->language->get('button_cart');

ajouter dessous :
Code: Tout sélectionner
$this->data['button_quotation'] = $this->language->get('button_quotation');
$this->data['text_quotation'] = $this->language->get('text_quotation');
$this->data['quotation'] = $this->url->link('information/contact');

Fichier : "catalog/language/french/module/latest.php"
à la fin du fichier, avant
Code: Tout sélectionner
: ?>

coller :
Code: Tout sélectionner
$_['text_quotation']      = 'Sur devis';

// Button
$_['button_quotation']        = 'Demande de devis';

Fichier : "catalog/view/theme/default/template/module/latest.php"
rechercher :
Code: Tout sélectionner
<div class="price">

coller dessous :
Code: Tout sélectionner
<?php if ($product['price'] <=0 ) { ?>
<?php echo $text_quotation; ?>
<?php } else { ?>

rechercher :
Code: Tout sélectionner
<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
<?php } ?>

ajouter dessous :
Code: Tout sélectionner
<?php } ?>

rechercher :
Code: Tout sélectionner
<div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>

remplacer par :
Code: Tout sélectionner
<?php if ($product['price'] <=0 ) { ?>
          <div class="cart"><a href="<?php echo $quotation; ?>" class="button"><span><?php echo $button_quotation; ?></span></a></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
      <?php } else { ?>
      <div class="cart"><a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><span><?php echo $button_cart; ?></span></a></div>
      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
     <?php } ?>

dans la modification des fichiers "category", un petit oubli de ma part, puisque les montants "0.00 €" s'affiche toujours.

le fichier "catalog/language/french/product/category.php"
rechercher :
Code: Tout sélectionner
$_['text_limit']      = 'Nombre par page :';

ajouter dessous :
Code: Tout sélectionner
$_['text_quotation']      = 'Sur devis';

le fichier "catalog/controller/product/category.php
rechercher :
Code: Tout sélectionner
$this->data['text_limit'] = $this->language->get('text_limit');

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

et enfin dans le fichier "catalog/view/theme/default/template/category.tpl"
rechercher :
Code: Tout sélectionner
<div class="price">

coller dessous :
Code: Tout sélectionner
<?php if ($product['price'] <=0 ) { ?>
      <?php echo $text_quotation; ?>
      <?php } else { ?>

rechercher :
Code: Tout sélectionner
<?php if ($product['tax']) { ?>

placer au dessus :
Code: Tout sélectionner
<?php } ?>

là je pense avoir fait le tour complet...
Y'apluKa XMLiser tout cela ... Same player shoot again ... later
Dernière édition par eric02 le 13 Mars 2012, 19:10, édité 1 fois au total.
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/
eric02
 
Messages: 181
Inscrit le: 20 Fév 2012, 13:39

Re: Remplacer un prix par la mention "sur devis"

Messagepar barcodeprice » 23 Mars 2012, 15:18

bonjour

Est ce que quelqu'un a tester cela sur une version 1.4.9.3 si la réponse est non pensez vous qu'il est possible sans risque de l’implémenter ?

merci d'avance de vos réponses
version opencart 1.4.9.3 FRANÇAISE
Hébergeur OVH
pas de template installe
barcodeprice
 
Messages: 12
Inscrit le: 24 Mai 2011, 15:29


Re: Remplacer un prix par la mention "sur devis"

Messagepar kmehdi » 03 Juin 2012, 23:02

Bonjour, j'ai suivi les indications mentionnés sur ce poste mais malheureusement la page des produits ne s'affiche pas, je ne sais pas pourquoi. Merci pour votre aide précieuse.

site web: www.plena.ma
kmehdi
 
Messages: 1
Inscrit le: 03 Juin 2012, 22:59

Re: Remplacer un prix par la mention "sur devis"

Messagepar Imaxine » 04 Juin 2012, 00:31

Bonjour,

Peux-tu compléter ta signature que nous puissions te répondre ?
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Remplacer un prix par la mention "sur devis"

Messagepar plugeplay » 27 Oct 2012, 22:42

Salut à tous,
je fais remonter un peu ce thread car j'ai essayé d'adapter ce code, non pas pour remplacer le prix mais pour ajouter un bouton demander un devis sur les ficher produit et les catégories... Et j'ai une erreur :?

Le bouton apparait bien dans la fiche produit, mais pas dans la liste de produit (niveau catégories) et il ne trouve pas le formulaire de contact.

Quelqu'un aurait-il une idée?

EDIT: Désolé si je pourri le thread, j'en ouvrirai un nouveau.
j'ai solutionné une partie du problème en modifiant dans le code de

$contact par $quotation dans la partie ci dessous.

catalog/view/theme/Mon_theme/template/product/product.tpl
Code: Tout sélectionner
<div class="cart">
        <div><?php echo $text_qty; ?>
          <input type="text" name="quantity" size="2" value="<?php echo $minimum; ?>" />
          <input type="hidden" name="product_id" size="2" value="<?php echo $product_id; ?>" />
          &nbsp;<a id="button-cart" class="button"><span><?php echo $button_cart; ?></span></a></div>
        <div><span>&nbsp;&nbsp;&nbsp;<?php echo $text_or; ?>&nbsp;&nbsp;&nbsp;</span></div>
        <div><a id="button-cart" class="button" href="<?php echo $quotation; ?>"><span><?php echo $button_quotation; ?></span></a></div>
Dernière édition par plugeplay le 27 Oct 2012, 23:19, édité 3 fois au total.
os x (Apple/mac)
serveur local MAMP
Serveur mutualisé OVH
version 1.5.2
HTML module
VQmod
plugeplay
 
Messages: 47
Inscrit le: 16 Oct 2012, 14:30

Re: Remplacer un prix par la mention "sur devis"

Messagepar Imaxine » 27 Oct 2012, 22:53

Tu peux, peut être utiliser ce module ?
Imaxine
 
Messages: 3023
Inscrit le: 27 Juil 2009, 19:28

Re: Remplacer un prix par la mention "sur devis"

Messagepar plugeplay » 27 Oct 2012, 23:12

Je creuse encore un peu pour l'avoir dans la liste de produit... mais je ne serais pas contre un coup de main :P
Dernière édition par plugeplay le 27 Oct 2012, 23:17, édité 1 fois au total.
os x (Apple/mac)
serveur local MAMP
Serveur mutualisé OVH
version 1.5.2
HTML module
VQmod
plugeplay
 
Messages: 47
Inscrit le: 16 Oct 2012, 14:30

Suivant

Retour vers Développement

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron
Copyright © 2009-2013 OpenCart France - Tous droits réservés