Le 24-09-2009

products_availability_delivery_guaranty par LeorLindel

Cette contribution vous permet de mettre sur la fiche info des produits, des renseignements complmentaires, comme :

La disponibilit du produit
Le dlai de livraison du produit
La dure de garantie du produit

Cette contribution tant multilingue, elle permet de mettre des reoseignements diffrents suivant la langue, ex :

FR

Disponibilit : immdiate
Livraison : Sous 48 heures
Garantie : 1 an par le constructeur

EN

Availability: Under 1 week
Delivery: Under 96 hours
Guaranty: 1 year by manufacturer

Ou mettre certains renseignements pour une langue et pas pour d'autres.

***************************************************************************************************

Fichiers  ajouter :

catalog/admin/products_availability.php
catalog/admin/products_delivery.php
catalog/admin/products_guaranty.php
catalog/admin/includes/languages/english/products_availability.php
catalog/admin/includes/languages/english/products_delivery.php
catalog/admin/includes/languages/english/products_guaranty.php
catalog/admin/includes/languages/french/products_availability.php
catalog/admin/includes/languages/french/products_delivery.php
catalog/admin/includes/languages/french/products_guaranty.php

Fichiers  modifier :

catalog/product_info.php
catalog/admin/categories.php
catalog/admin/includes/database_tables.php
catalog/admin/includes/filenames.php
catalog/admin/includes/boxes/catalog.php
catalog/admin/includes/functions/general.php
catalog/admin/includes/languages/english.php
catalog/admin/includes/languages/french.php
catalog/includes/functions/general.php
catalog/admin/includes/languages/english/product_info.php
catalog/admin/includes/languages/french/product_info.php


***************************************************************************************************

Installation

Avant de commencer l'installation, SAUVEGARDER, SAUVEGARDER, SAUVEGARDER, SAUVEGARDER, 

1 - Charger le fichier product_availability_delivery_guaranty.sql dans votre base de donnes via phpMyAdmin

2 - Dans le fichier catalog/product_info.php

Chercher :

  } else {
    $product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
    $product_info = tep_db_fetch_array($product_info_query);

Et remplacer par :

  } else {
	$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id,  p.products_availability_id,  p.products_delivery_id,  p.products_guaranty_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");
	$product_info = tep_db_fetch_array($product_info_query);

Chercher :

    if (tep_not_null($product_info['products_model'])) {
      $products_name = $product_info['products_name'] . '<br><span class="smallText">[' . $product_info['products_model'] . ']</span>';
    } else {
      $products_name = $product_info['products_name'];
    }

Et ajouter aprs :

    $products_availability = $product_info['products_availability_id'];

    $products_availability_info_query = tep_db_query("select products_availability_name from " . TABLE_PRODUCTS_AVAILABILITY . " where products_availability_id = '" . (int)$products_availability . "' and language_id = '" . (int)$languages_id . "'");

    $products_availability_info = tep_db_fetch_array($products_availability_info_query);
    $products_availability_name = $products_availability_info['products_availability_name'];
	
    $products_delivery = $product_info['products_delivery_id'];

    $products_delivery_info_query = tep_db_query("select products_delivery_name from " . TABLE_PRODUCTS_DELIVERY . " where products_delivery_id = '" . (int)$products_delivery . "' and language_id = '" . (int)$languages_id . "'");

    $products_delivery_info = tep_db_fetch_array($products_delivery_info_query);
    $products_delivery_name = $products_delivery_info['products_delivery_name'];
	
    $products_guaranty = $product_info['products_guaranty_id'];

    $products_guaranty_info_query = tep_db_query("select products_guaranty_name from " . TABLE_PRODUCTS_GUARANTY . " where products_guaranty_id = '" . (int)$products_guaranty . "' and language_id = '" . (int)$languages_id . "'");

    $products_guaranty_info = tep_db_fetch_array($products_guaranty_info_query);
    $products_guaranty_name = $products_guaranty_info['products_guaranty_name'];

Chercher :

?>
            <tr>
              <td class="main"><?php echo $products_options_name['products_options_name'] . ':'; ?></td>
              <td class="main"><?php echo tep_draw_pull_down_menu('id[' . $products_options_name['products_options_id'] . ']', $products_options_array, $selected_attribute); ?></td>
            </tr>
<?php
      }
?>
          </table>
<?php
    }
?>
        </td>
      </tr>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php

Et ajouter aprs :

   if (tep_not_null($products_availability_info['products_availability_name'])) {
?>
          <tr>
            <td colspan="2" align="center" valign="top" class="main"><div align="left"><b><?php echo TEXT_AVAILABILITY; ?></b>&nbsp;<?php echo $products_availability_name; ?></div></td>
            </tr>
<?php
   }
   if (tep_not_null($products_delivery_info['products_delivery_name'])) {
?>
          <tr>
            <td colspan="2" align="center" valign="top" class="main"><div align="left"><b><?php echo TEXT_DELIVERY; ?></b>&nbsp;<?php echo $products_delivery_name; ?></div></td>
            </tr>
<?php
   }
   if (tep_not_null($products_guaranty_info['products_guaranty_name'])) {
?>
          <tr>
            <td colspan="2" align="center" valign="top" class="main"><div align="left"><b><?php echo TEXT_GUARANTY; ?></b>&nbsp;<?php echo $products_guaranty_name; ?></div></td>
            </tr>
<?php
   }
?>
      <tr>
        <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
      </tr>
<?php

3 - Dans le fichier catalog/admin/categories.php

Chercher :

                                  'manufacturers_id' => (int)tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']));

Et remplacer par :

                                  'manufacturers_id' => (int)tep_db_prepare_input($HTTP_POST_VARS['manufacturers_id']),
                                  'products_availability_id' => tep_db_prepare_input($HTTP_POST_VARS['products_availability_id']),
                                  'products_delivery_id' => tep_db_prepare_input($HTTP_POST_VARS['products_delivery_id']),
                                  'products_guaranty_id' => tep_db_prepare_input($HTTP_POST_VARS['products_guaranty_id']));

Chercher :
								  
			$product_query = tep_db_query("select products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
            $product = tep_db_fetch_array($product_query);

            tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "',  now(), " . (empty($product['products_date_available']) ? "null" : "'" . tep_db_input($product['products_date_available']) . "'") . ", '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "')");
            $dup_products_id = tep_db_insert_id();

Et remplacer par :

            $product_query = tep_db_query("select products_quantity, products_model, products_image, products_price, products_date_available, products_weight, products_tax_class_id, manufacturers_id, products_availability_id, products_delivery_id, products_guaranty_id from " . TABLE_PRODUCTS . " where products_id = '" . (int)$products_id . "'");
            $product = tep_db_fetch_array($product_query);

            tep_db_query("insert into " . TABLE_PRODUCTS . " (products_quantity, products_model,products_image, products_price, products_date_added, products_date_available, products_weight, products_status, products_tax_class_id, manufacturers_id, products_availability_id, products_delivery_id, products_guaranty_id) values ('" . tep_db_input($product['products_quantity']) . "', '" . tep_db_input($product['products_model']) . "', '" . tep_db_input($product['products_image']) . "', '" . tep_db_input($product['products_price']) . "',  now(), '" . tep_db_input($product['products_date_available']) . "', '" . tep_db_input($product['products_weight']) . "', '0', '" . (int)$product['products_tax_class_id'] . "', '" . (int)$product['manufacturers_id'] . "', '" . (int)$product['products_availability_id'] . "', '" . (int)$product['products_delivery_id'] . "', '" . (int)$product['products_guaranty_id'] . "')");
            $dup_products_id = tep_db_insert_id();

Chercher :

                       'manufacturers_id' => '');

Et remplacer par :

                       'manufacturers_id' => '',
                       'products_availability_id' => '',
                       'products_delivery_id' => '',
                       'products_guaranty_id' => '');

Chercher :

      $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");

Et remplacer par :

      $product_query = tep_db_query("select pd.products_name, pd.products_description, pd.products_url, p.products_id, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, date_format(p.products_date_available, '%Y-%m-%d') as products_date_available, p.products_status, p.products_tax_class_id, p.manufacturers_id, p.products_availability_id, p.products_delivery_id, p.products_guaranty_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "' and p.products_id = pd.products_id and pd.language_id = '" . (int)$languages_id . "'");

Chercher :

      $pInfo->objectInfo($HTTP_POST_VARS);
      $products_name = $HTTP_POST_VARS['products_name'];
      $products_description = $HTTP_POST_VARS['products_description'];
      $products_url = $HTTP_POST_VARS['products_url'];
    }

Et ajouter aprs :

	
	$products_availability_array = array(array('id' => '', 'text' => TEXT_NONE));
    $products_availability_query = tep_db_query("select products_availability_id, products_availability_name from " . TABLE_PRODUCTS_AVAILABILITY . " order by products_availability_name");
    while ($products_availability = tep_db_fetch_array($products_availability_query)) {
      $products_availability_array[] = array('id' => $products_availability['products_availability_id'],
                                     'text' => $products_availability['products_availability_name']);
    }
	
	$products_delivery_array = array(array('id' => '', 'text' => TEXT_NONE));
    $products_delivery_query = tep_db_query("select products_delivery_id, products_delivery_name from " . TABLE_PRODUCTS_DELIVERY . " order by products_delivery_name");
    while ($products_delivery = tep_db_fetch_array($products_delivery_query)) {
      $products_delivery_array[] = array('id' => $products_delivery['products_delivery_id'],
                                     'text' => $products_delivery['products_delivery_name']);
    }
	
	$products_guaranty_array = array(array('id' => '', 'text' => TEXT_NONE));
    $products_guaranty_query = tep_db_query("select products_guaranty_id, products_guaranty_name from " . TABLE_PRODUCTS_GUARANTY . " order by products_guaranty_name");
    while ($products_guaranty = tep_db_fetch_array($products_guaranty_query)) {
      $products_guaranty_array[] = array('id' => $products_guaranty['products_guaranty_id'],
                                     'text' => $products_guaranty['products_guaranty_name']);
    }

Chercher :

          <tr>
            <td class="main"><?php echo TEXT_PRODUCTS_DATE_AVAILABLE; ?><br><small>(YYYY-MM-DD)</small></td>
            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;'; ?><script type="text/javascript">dateAvailable.writeControl(); dateAvailable.dateFormat="yyyy-MM-dd";</script></td>
          </tr>
          <tr>
            <td colspan="2"><?php echo tep_draw_separator('pixel_trans.gif', '1', '10'); ?></td>
          </tr>
          <tr>

Et ajouter aprs :

            <td class="main"><?php echo TEXT_PRODUCTS_AVAILABILITY; ?></td>
            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_pull_down_menu('products_availability_id', $products_availability_array, $pInfo->products_availability_id); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo TEXT_PRODUCTS_DELIVERY; ?></td>
            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_pull_down_menu('products_delivery_id', $products_delivery_array, $pInfo->products_delivery_id); ?></td>
          </tr>
          <tr>
            <td class="main"><?php echo TEXT_PRODUCTS_GUARANTY; ?></td>
            <td class="main"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . '&nbsp;' . tep_draw_pull_down_menu('products_guaranty_id', $products_guaranty_array, $pInfo->products_guaranty_id); ?></td>
          </tr>
          <tr>

Chercher :

      $product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
      $product = tep_db_fetch_array($product_query);

Et remplacer par :

      $product_query = tep_db_query("select p.products_id, pd.language_id, pd.products_name, pd.products_description, pd.products_url, p.products_quantity, p.products_model, p.products_image, p.products_price, p.products_weight, p.products_date_added, p.products_last_modified, p.products_date_available, p.products_status, p.manufacturers_id, p.products_availability_id, p.products_delivery_id, p.products_guaranty_id  from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_id = pd.products_id and p.products_id = '" . (int)$HTTP_GET_VARS['pID'] . "'");
      $product = tep_db_fetch_array($product_query);

4 - Dans le fichier catalog/admin/includes/database_tables.php

Avant la balise de fin ?> ajouter :	  
	  
  define('TABLE_PRODUCTS_AVAILABILITY', 'products_availability');
  define('TABLE_PRODUCTS_DELIVERY', 'products_delivery');
  define('TABLE_PRODUCTS_GUARANTY', 'products_guaranty');

5 - Dans le fichier catalog/admin/includes/filenames.php

Avant la balise de fin ?> ajouter :
	  
  define('FILENAME_PRODUCTS_AVAILABILITY', 'products_availability.php');
  define('FILENAME_PRODUCTS_DELIVERY', 'products_delivery.php');
  define('FILENAME_PRODUCTS_GUARANTY', 'products_guaranty.php');

6 - Dans le fichier catalog/admin/includes/boxes/catalog.php

Chercher :

                                   '<a href="' . tep_href_link(FILENAME_PRODUCTS_ATTRIBUTES, '', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_CATALOG_CATEGORIES_PRODUCTS_ATTRIBUTES . '</a><br>' .

Et ajouter aprs :

								   '<a href="' . tep_href_link(FILENAME_PRODUCTS_AVAILABILITY, '', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_CATALOG_AVAILABILITY . '</a><br>' .
								   '<a href="' . tep_href_link(FILENAME_PRODUCTS_DELIVERY, '', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_CATALOG_DELIVERY . '</a><br>' .
								   '<a href="' . tep_href_link(FILENAME_PRODUCTS_GUARANTY, '', 'NONSSL') . '" class="menuBoxContentLink">' . BOX_CATALOG_GUARANTY . '</a><br>' .

7 - Dans le fichier catalog/admin/includes/functions/general.php

Avant la balise de fin ?> ajouter :
  
// Return the shipping ETA in the needed language
// TABLES: products_availability
  function tep_get_products_availability_name($products_availability_id, $language_id) {
    $products_availability_query = tep_db_query("select products_availability_name from " . TABLE_PRODUCTS_AVAILABILITY . " where products_availability_id = '" . (int)$products_availability_id . "' and language_id = '" . (int)$language_id . "'");
    $products_availability = tep_db_fetch_array($products_availability_query);

    return $products_availability['products_availability_name'];
  }
  
// Return the shipping ETA in the needed language
// TABLES: products_delivery
  function tep_get_products_delivery_name($products_delivery_id, $language_id) {
    $products_delivery_query = tep_db_query("select products_delivery_name from " . TABLE_PRODUCTS_DELIVERY . " where products_delivery_id = '" . (int)$products_delivery_id . "' and language_id = '" . (int)$language_id . "'");
    $products_delivery = tep_db_fetch_array($products_delivery_query);

    return $products_delivery['products_delivery_name'];
  }
  
// Return the shipping ETA in the needed language
// TABLES: products_guaranty
  function tep_get_products_guaranty_name($products_guaranty_id, $language_id) {
    $products_guaranty_query = tep_db_query("select products_guaranty_name from " . TABLE_PRODUCTS_GUARANTY . " where products_guaranty_id = '" . (int)$products_guaranty_id . "' and language_id = '" . (int)$language_id . "'");
    $products_guaranty = tep_db_fetch_array($products_guaranty_query);

    return $products_guaranty['products_guaranty_name'];
  }

8 - Dans le fichier catalog/admin/includes/languages/english.php

Chercher :

define('BOX_CATALOG_CATEGORIES_PRODUCTS_ATTRIBUTES', 'Products Attributes');

Et ajouter aprs : 

define('BOX_CATALOG_AVAILABILITY', 'Availability');
define('BOX_CATALOG_DELIVERY', 'Delivery');
define('BOX_CATALOG_GUARANTY', 'Guaranty');

9 - Dans le fichier catalog/admin/includes/languages/french.php

Chercher :

define('BOX_CATALOG_CATEGORIES_PRODUCTS_ATTRIBUTES', 'Attributs produits');

Et ajouter aprs : 

define('BOX_CATALOG_AVAILABILITY', 'Disponibilit');
define('BOX_CATALOG_DELIVERY', 'Livraison');
define('BOX_CATALOG_GUARANTY', 'Garantie');

10 - Dans le fichier catalog/includes/functions/general.php

Avant la balise de fin ?> ajouter :
  
///
// products_availability
  function tep_get_products_availability($products_availability_array = '') {
    if (!is_array($products_availability_array)) $products_availability_array = array();

    $products_availability_query = tep_db_query("select products_availability_id, products_availability_name from " . TABLE_PRODUCTS_AVAILABILITY . " order by products_availability_name");
    while ($products_availability = tep_db_fetch_array($products_availability_query)) {
      $products_availability_array[] = array('id' => $products_availability['products_availability_id'], 'text' => $products_availability['products_availability_name']);
    }

    return $products_availability_array;
  }
  
///
// products_delivery
  function tep_get_products_delivery($products_delivery_array = '') {
    if (!is_array($products_delivery_array)) $products_delivery_array = array();

    $products_delivery_query = tep_db_query("select products_delivery_id, products_delivery_name from " . TABLE_PRODUCTS_DELIVERY . " order by products_delivery_name");
    while ($products_delivery = tep_db_fetch_array($products_delivery_query)) {
      $products_delivery_array[] = array('id' => $products_delivery['products_delivery_id'], 'text' => $products_delivery['products_delivery_name']);
    }

    return $products_delivery_array;
  }
  
///
// products_guaranty
  function tep_get_products_guaranty($products_guaranty_array = '') {
    if (!is_array($products_guaranty_array)) $products_guaranty_array = array();

    $products_guaranty_query = tep_db_query("select products_guaranty_id, products_guaranty_name from " . TABLE_PRODUCTS_GUARANTY . " order by products_guaranty_name");
    while ($products_guaranty = tep_db_fetch_array($products_guaranty_query)) {
      $products_guaranty_array[] = array('id' => $products_guaranty['products_guaranty_id'], 'text' => $products_guaranty['products_guaranty_name']);
    }

    return $products_guaranty_array;
  }

11 - Dans le fichier catalog/admin/includes/languages/english/product_info.php

Ajouter :

define('TEXT_AVAILABILITY', 'Availability:');
define('TEXT_DELIVERY', 'Delivery:');
define('TEXT_GUARANTY', 'Guaranty:');

12 - Dans le fichier catalog/admin/includes/languages/french/product_info.php

Ajouter :

define('TEXT_AVAILABILITY', 'Disponibilit :');
define('TEXT_DELIVERY', 'Livraison :');
define('TEXT_GUARANTY', 'Garantie :');

***************************************************************************************************

Screenshots visibles sur : http://www.oscommerce-screenshots.com/products-availability-delivery-guaranty-p-457.html