Page 1 sur 2

Remplacer un prix par la mention "sur devis"

MessagePublié: 13 Mars 2012, 01:21
par eric02
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.

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

MessagePublié: 13 Mars 2012, 01:48
par Imaxine
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é !!

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

MessagePublié: 13 Mars 2012, 01:51
par Imaxine
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.

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

MessagePublié: 13 Mars 2012, 02:41
par eric02
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.

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

MessagePublié: 13 Mars 2012, 02:59
par eric02
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 !!!

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

MessagePublié: 13 Mars 2012, 03:02
par Imaxine
Tu as mis "quotatio" au lieu de "quotation"

L’enthousiasme surement...!!

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

MessagePublié: 13 Mars 2012, 10:36
par eric02
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" !

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

MessagePublié: 13 Mars 2012, 14:21
par eric02
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

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

MessagePublié: 23 Mars 2012, 15:18
par barcodeprice
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

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

MessagePublié: 23 Mars 2012, 15:31
par Imaxine
Tu peux utiliser ce module.

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

MessagePublié: 03 Juin 2012, 23:02
par kmehdi
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

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

MessagePublié: 04 Juin 2012, 00:31
par Imaxine
Bonjour,

Peux-tu compléter ta signature que nous puissions te répondre ?

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

MessagePublié: 27 Oct 2012, 22:42
par plugeplay
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>

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

MessagePublié: 27 Oct 2012, 22:53
par Imaxine
Tu peux, peut être utiliser ce module ?

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

MessagePublié: 27 Oct 2012, 23:12
par plugeplay
Je creuse encore un peu pour l'avoir dans la liste de produit... mais je ne serais pas contre un coup de main :P