osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> le montant de l'option ne s'ajoute plus
christ71
posté 18 Nov 2015, 17:34
Message #1


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 7
Inscrit : 18-November 15
Membre no 32686



Bonjour,
j'ai repris la mise à jour d'un site d'un ami créé avec une ancienne version d'oscommerce (2003).
j'ai modifié le prix dans les attributs de mes produits.
Le nouveau prix s'affiche bien à côté de mon option (texte) dans la fiche produit .

Par contre lors de l'ajout dans le panier, le prix de l'option ne s'ajoute pas au prix de l'article.
Le texte de l'option lui s'affiche bien en dessous du libellé de l'article

J'ai cherché en vain quel paramètre j'aurais pu modifié et maintenant je suis "sec".
Auriez vous une idée de l'origine de mon problème ?

Merci d'avance pour votre aide.

Ce message a été modifié par christ71 - 18 Nov 2015, 17:35.
Go to the top of the page
 
Havock
posté 19 Nov 2015, 09:22
Message #2


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Bonjour,

As tu une url pour constater le problème ,


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
christ71
posté 19 Nov 2015, 10:32
Message #3


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 7
Inscrit : 18-November 15
Membre no 32686



Bonjour,

voici l'adresse de la boutique :
http://www.artdustylo.com/shop/index.php

toutes les collections ne sont pas configurées avec l'option gravure car j'étais en train de le faire quand je me suis aperçu du problème.

Le premier stylo de la collection Roadstar a bien l'option texte à graver.
Normalement le fait de rentrer un texte ajoute automatiquement le prix de l'option au prix de base du stylo.

merci de t'intéresser à mon problème
christian
Go to the top of the page
 
Havock
posté 19 Nov 2015, 18:09
Message #4


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Effectivement.

Sais-tu quelle contribution est utilisée pour gérer cet ajout de texte ?

As-tu fait des modifications récentes ? La logique voudrait que oui smile.gif et probablement sur le fichier shopping_cart.php du sous-répertoire "classes".

L'information passe bien au panier : on a le products_id (243) , le products_options_id (txt_1) et logiquement le products_options_value_id (textedelagravure) mais c'est le montant qui n'est pas mis à jour.

Peux tu mettre dans ton panier un stylo avec un message à graver et regarder dans la table customers_basket_attributes ce que tu as comme info correspondante ? A priori (sans connaitre la contribution) tu vas retrouver les infos correspondante.

Peux-tu poster ton fichier shopping_cart.php ?





--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
christ71
posté 20 Nov 2015, 09:51
Message #5


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 7
Inscrit : 18-November 15
Membre no 32686



bonjour,
j'étais absent hier soir donc j'ai pu reprendre mes tests que ce matin.

je tiens à préciser que je suis un amateur en informatique et que je ne maîtrise pas grand chose. Je me contente de faire des modifications de présentation ou de mise à jour des données via l'interface admin.
Bon je sais rentrer dans les fichiers du code et aller consulter la base de données chez mon hébergeur.

pour mon problème :
je n'ai pas modifié grand chose dernièrement, mais j'ai peut-être fait une fausse manip ?
le problème est apparu lorsque j'ai modifié le paramétrage des attributs par l'interface : site/shop/admin/products_attribute...

pour répondre à tes questions :
qu'appelles-tu contribution ? un fichier php ?

J'ai ajouté un stylo avec un texte à graver : test gravure. voici les images de base de données :
TABLE customer basket attribute



table customer basket :


comment fait-on pour envoyer le fichier shopping_cart.php ?

Ce message a été modifié par christ71 - 20 Nov 2015, 09:52.
Go to the top of the page
 
christ71
posté 20 Nov 2015, 09:57
Message #6


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 7
Inscrit : 18-November 15
Membre no 32686



Pour le fichier shopping_cart, je fais un test avec la fonction "insérer un code" :

Code
<?php
/*
   $Id: shopping_cart.php,v 1.73 2003/06/09 23:03:56 hpdl Exp $

   osCommerce, Open Source E-Commerce Solutions
   http://www.oscommerce.com

   Copyright (c) 2003 osCommerce

   Released under the GNU General Public License
*/

   require("includes/application_top.php");

   require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_SHOPPING_CART);

   $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_SHOPPING_CART));
  
   // START DELETE PAYPAL TEMP ORDER
   // Check to see if customer has cancelled a paypal_ipn process
   if ( $HTTP_GET_VARS['ipn']== 'cancel_ipn' && tep_not_null($HTTP_GET_VARS['order']) ) {
     // Make sure that this order is THIS customers' order
     // We don't want anybody to pass order numbers to here and delete other people's orders!!!!
     $delete_order_query = tep_db_query("SELECT customers_id FROM " . TABLE_ORDERS . " WHERE `orders_id`='" . (int)$HTTP_GET_VARS['order'] . "'");
     $delete_order = tep_db_fetch_array($delete_order_query);

     //echo "DEBUG - delete_order=".$delete_order['customers_id']."
";
     //echo "DEBUG - customer id in session=".$customer_id."
";
     if ( $delete_order['customers_id']==$customer_id ) {
     // Delete the order
     //echo "DEBUG - about to delete order!!!
";
       tep_remove_order($HTTP_GET_VARS['order'], '');
     }
   }
   // END DELETE PAYPAL TEMP ORDER
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
   <tr>
     <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
     </table></td>
<!-- body_text //-->
     <td width="100%" valign="top"><?php echo tep_draw_form('cart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')); ?><table border="0" width="100%" cellspacing="0" cellpadding="0">
       <tr>
         <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
           <tr>
             <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
             <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_cart.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
           </tr>
         </table></td>
       </tr>
       <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
       </tr>
<?php
   if ($cart->count_contents() > 0) {
?>
       <tr>
         <td>
<?php
     $info_box_contents = array();
     $info_box_contents[0][] = array('align' => 'center',
                                     'params' => 'class="productListing-heading"',
                                     'text' => TABLE_HEADING_REMOVE);

     $info_box_contents[0][] = array('params' => 'class="productListing-heading"',
                                     'text' => TABLE_HEADING_PRODUCTS);

     $info_box_contents[0][] = array('align' => 'center',
                                     'params' => 'class="productListing-heading"',
                                     'text' => TABLE_HEADING_QUANTITY);

     $info_box_contents[0][] = array('align' => 'right',
                                     'params' => 'class="productListing-heading"',
                                     'text' => TABLE_HEADING_TOTAL);

     $any_out_of_stock = 0;
     $products = $cart->get_products();
     for ($i=0, $n=sizeof($products); $i<$n; $i++) {
// Push all attributes information in an array
       if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
         while (list($option, $value) = each($products[$i]['attributes'])) {
           //clr 030714 move hidden field to if statement below
echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value);
           $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix
                                       from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                                       where pa.products_id = '" . (int)$products[$i]['id'] . "'
                                        and pa.options_id = '" . (int)$option . "'
                                        and pa.options_id = popt.products_options_id
                                        and pa.options_values_id = '" . (int)$value . "'
                                        and pa.options_values_id = poval.products_options_values_id
                                        and popt.language_id = '" . (int)$languages_id . "'
                                        and poval.language_id = '" . (int)$languages_id . "'");
           $attributes_values = tep_db_fetch_array($attributes);
        
         //clr 030714 determine if attribute is a text attribute and assign to $attr_value temporarily
           if ($value == PRODUCTS_OPTIONS_VALUE_TEXT_ID) {
             echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . TEXT_PREFIX . $option . ']',  $products[$i]['attributes_values'][$option]);
             $attr_value = $products[$i]['attributes_values'][$option];
           } else {
             echo tep_draw_hidden_field('id[' . $products[$i]['id'] . '][' . $option . ']', $value);
             $attr_value = $attributes_values['products_options_values_name'];
           }

           $products[$i][$option]['products_options_name'] = $attributes_values['products_options_name'];
           $products[$i][$option]['options_values_id'] = $value;
           //clr 030714 assign $attr_value
$products[$i][$option]['products_options_values_name'] = $attr_value;
           $products[$i][$option]['options_values_price'] = $attributes_values['options_values_price'];
           $products[$i][$option]['price_prefix'] = $attributes_values['price_prefix'];
         }
       }
     }

     for ($i=0, $n=sizeof($products); $i<$n; $i++) {
       if (($i/2) == floor($i/2)) {
         $info_box_contents[] = array('params' => 'class="productListing-even"');
       } else {
         $info_box_contents[] = array('params' => 'class="productListing-odd"');
       }

       $cur_row = sizeof($info_box_contents) - 1;

       $info_box_contents[$cur_row][] = array('align' => 'center',
                                              'params' => 'class="productListing-data" valign="top"',
                                              'text' => tep_draw_checkbox_field('cart_delete[]', $products[$i]['id']));

       $products_name = '<table border="0" cellspacing="2" cellpadding="2">' .
                        '  <tr>' .
                        '    <td class="productListing-data" align="center"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">' . tep_image(DIR_WS_IMAGES . $products[$i]['image'], $products[$i]['name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a></td>' .
                        '    <td class="productListing-data" valign="top"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '"><b>' . $products[$i]['name'] . '</b></a>';

       if (STOCK_CHECK == 'true') {
         $stock_check = tep_check_stock($products[$i]['id'], $products[$i]['quantity']);
         if (tep_not_null($stock_check)) {
           $any_out_of_stock = 1;

           $products_name .= $stock_check;
         }
       }

       if (isset($products[$i]['attributes']) && is_array($products[$i]['attributes'])) {
         reset($products[$i]['attributes']);
         while (list($option, $value) = each($products[$i]['attributes'])) {
           $products_name .= '
<small><i> - ' . $products[$i][$option]['products_options_name'] . ' ' . $products[$i][$option]['products_options_values_name'] . '</i></small>';
         }
       }

       $products_name .= '    </td>' .
                         '  </tr>' .
                         '</table>';

       $info_box_contents[$cur_row][] = array('params' => 'class="productListing-data"',
                                              'text' => $products_name);

       $info_box_contents[$cur_row][] = array('align' => 'center',
                                              'params' => 'class="productListing-data" valign="top"',
                                              'text' => tep_draw_input_field('cart_quantity[]', $products[$i]['quantity'], 'size="4"') . tep_draw_hidden_field('products_id[]', $products[$i]['id']));

       $info_box_contents[$cur_row][] = array('align' => 'right',
                                              'params' => 'class="productListing-data" valign="top"',
                                              'text' => '<b>' . $currencies->display_price($products[$i]['final_price'], tep_get_tax_rate($products[$i]['tax_class_id']), $products[$i]['quantity']) . '</b>');
     }

     new productListingBox($info_box_contents);
?>
         </td>
       </tr>
       <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
       </tr>
       <tr>
         <td align="right" class="main"><b><?php echo SUB_TITLE_SUB_TOTAL; ?> <?php echo $currencies->format($cart->show_total()); ?></b></td>
       </tr>
<?php
     if ($any_out_of_stock == 1) {
       if (STOCK_ALLOW_CHECKOUT == 'true') {
?>
       <tr>
         <td class="stockWarning" align="center">
<?php echo OUT_OF_STOCK_CAN_CHECKOUT; ?></td>
       </tr>
<?php
       } else {
?>
       <tr>
         <td class="stockWarning" align="center">
<?php echo OUT_OF_STOCK_CANT_CHECKOUT; ?></td>
       </tr>
<?php
       }
     }
?>
       <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
       </tr>
       <tr>
         <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
           <tr class="infoBoxContents">
             <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
               <tr>
                 <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                 <td class="main"><?php echo tep_image_submit('button_update_cart.gif', IMAGE_BUTTON_UPDATE_CART); ?></td>
<?php
     $back = sizeof($navigation->path)-2;
     if (isset($navigation->path[$back])) {
?>
                 <td class="main"><?php echo '<a href="' . tep_href_link($navigation->path[$back]['page'], tep_array_to_string($navigation->path[$back]['get'], array('action')), $navigation->path[$back]['mode']) . '">' . tep_image_button('button_continue_shopping.gif', IMAGE_BUTTON_CONTINUE_SHOPPING) . '</a>'; ?></td>
<?php
     }
?>
                 <td align="right" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '">' . tep_image_button('button_checkout.gif', IMAGE_BUTTON_CHECKOUT) . '</a>'; ?></td>
                 <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               </tr>
             </table></td>
           </tr>
         </table></td>
       </tr>
<?php
   } else {
?>
       <tr>
         <td align="center" class="main"><?php new infoBox(array(array('text' => TEXT_CART_EMPTY))); ?></td>
       </tr>
       <tr>
         <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
       </tr>
       <tr>
         <td><table border="0" width="100%" cellspacing="1" cellpadding="2" class="infoBox">
           <tr class="infoBoxContents">
             <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
               <tr>
                 <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
                 <td align="right" class="main"><?php echo '<a href="' . tep_href_link(FILENAME_DEFAULT) . '">' . tep_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'; ?></td>
                 <td width="10"><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
               </tr>
             </table></td>
           </tr>
         </table></td>
       </tr>
<?php
   }
?>
     </table></form></td>
<!-- body_text_eof //-->
     <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
     </table></td>
   </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->


</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
Go to the top of the page
 
christ71
posté 21 Nov 2015, 09:36
Message #7


Ceinture blanche OSC
Icône de groupe

Groupe : Membres
Messages : 7
Inscrit : 18-November 15
Membre no 32686



Bonjour,
j'ai rechargé à partir d'une sauvegarde les fichiers shopping-cart.php et shipping.php des dossiers shop/ et shop/includes/classes et shop/includes/boxes/ mais cela n'a rien changé à mon problème.

J'ai trouvé une solution pour m'en sortir en rajoutant une case à cocher, qui elle ajoute bien le montant de l'option au prix de l'article.
C'est un peu trivial et cela risque d'occasionner des erreurs de la part des clients.
Si je ne trouve pas l'origine du problème, je mettrais cela en oeuvre, bien que cela va me demander de reconfigurer toutes les options de mes articles et tous les textes des articles.

Cordialement
christian
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 13:01
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)