Ship in Cart (MS2) : pb avec le fichier shipping_estimator.php

Messagepar Mali » Ven 09 Fév 2007, 15:39

Bonjour,

j'ai essayé d'installer la contribution :
http://www.oscommerce.com/community/con ... ip+in+cart

afin de faire apparaïtre le prix du transport dans le shopping_cart sans se connnecter... mais j'ai deux problèmes avec le fichier shipping_estimator.php en bas de page, dont un récurrent :

1 -
Code: Tout sélectionner
Fatal error: Cannot instantiate non-existent class: infoboxheading in /home/WwwBSD/kellidenn.com/includes/modules/shipping_estimator.php on line 181

c'est celui là le problème récurrent... à chaque apparation de ce bout de code, je le zappe en mettant // devant

Code: Tout sélectionner
new infoBoxHeading($info_box_contents, false, false);

mais, il doit bien servir à quelquechose...

2 - et message d'error pour la ligne :
Code: Tout sélectionner
$ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>';

je supprime
Code: Tout sélectionner
'.tep_draw_separator().'

Bref, au final... j'ai un cadre de 10 px (approximatif) de haut qui s'affiche et rien d'autre...

PLEASE !!!

Merci

Mali






Code: Tout sélectionner
<?php
/*
  $Id: shipping_estimator.php,v 2.20 2004/07/01 15:16:07 eml Exp $

  v2.00 by Acheron + installed Fix for v2.0 and all other versions Acheron 7 Jul 2004
  (see Install.txt for partial version history)

  Copyright (c) 2004

  Released under the GNU General Public License

+ installed Fix for v2.0 and all other versions Acheron 7 Jul 2004
*/
?>
<!-- shipping_estimator //-->
<script language="JavaScript">
  function shipincart_submit(sid){
    if(sid){
      document.estimator.sid.value=sid;
    }
    document.estimator.submit();
    return false;
  }
</script>
              <table align="center"><tr valign="top"><td>

<?php

  require(DIR_WS_LANGUAGES . $language . '/modules/' . FILENAME_SHIPPING_ESTIMATOR);

if (($cart->count_contents() > 0)) {

  // shipping cost
  require('includes/classes/http_client.php'); // shipping in basket

  //if($cart->get_content_type() !== 'virtual') {
    if (tep_session_is_registered('customer_id')) {
      // user is logged in
      if (isset($HTTP_POST_VARS['address_id'])){
        // user changed address
        $sendto = $HTTP_POST_VARS['address_id'];
      }elseif (tep_session_is_registered('cart_address_id')){
        // user once changed address
        $sendto = $cart_address_id;
      }else{
        // first timer
        $sendto = $customer_default_address_id;
      }
      // set session now
      $cart_address_id = $sendto;
      tep_session_register('cart_address_id');
      // set shipping to null ! multipickup changes address to store address...
      $shipping='';
      // include the order class (uses the sendto !)
      require(DIR_WS_CLASSES . 'order.php');
      $order = new order;
    }else{
// user not logged in !
      if (isset($HTTP_POST_VARS['country_id'])){
        // country is selected
        $country_info = tep_get_countries($HTTP_POST_VARS['country_id'],true);
        $order->delivery = array('postcode' => $HTTP_POST_VARS['zip_code'],
                                 'country' => array('id' => $HTTP_POST_VARS['country_id'], 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' =>  $country_info['countries_iso_code_3']),
                                 'country_id' => $HTTP_POST_VARS['country_id'],
//add state zone_id
                                 'zone_id' => $HTTP_POST_VARS['state'],
                                 'format_id' => tep_get_address_format_id($HTTP_POST_VARS['country_id']));
        $cart_country_id = $HTTP_POST_VARS['country_id'];
        tep_session_register('cart_country_id');
//add state zone_id
        $cart_zone = $HTTP_POST_VARS['zone_id'];
        tep_session_register('cart_zone');
        $cart_zip_code = $HTTP_POST_VARS['zip_code'];
        tep_session_register('cart_zip_code');
      }elseif (tep_session_is_registered('cart_country_id')){
        // session is available
        $country_info = tep_get_countries($cart_country_id,true);
        $order->delivery = array('postcode' => $cart_zip_code,
                                 'country' => array('id' => $cart_country_id, 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' =>  $country_info['countries_iso_code_3']),
                                 'country_id' => $cart_country_id,
                                 'format_id' => tep_get_address_format_id($cart_country_id));
      } else {
        // first timer
        $cart_country_id = STORE_COUNTRY;
        tep_session_register('cart_country_id');
        $country_info = tep_get_countries(STORE_COUNTRY,true);
        tep_session_register('cart_zip_code');
        $order->delivery = array(//'postcode' => '',
                                 'country' => array('id' => STORE_COUNTRY, 'title' => $country_info['countries_name'], 'iso_code_2' => $country_info['countries_iso_code_2'], 'iso_code_3' =>  $country_info['countries_iso_code_3']),
                                 'country_id' => STORE_COUNTRY,
                                 'format_id' => tep_get_address_format_id($HTTP_POST_VARS['country_id']));
      }
      // set the cost to be able to calculate free shipping
      $order->info = array('total' => $cart->show_total(), // TAX ????
                           'currency' => $currency,
                           'currency_value'=> $currencies->currencies[$currency]['value']);
    }
// weight and count needed for shipping
    $total_weight = $cart->show_weight();
    $total_count = $cart->count_contents();
    require(DIR_WS_CLASSES . 'shipping.php');
    $shipping_modules = new shipping;
    $quotes = $shipping_modules->quote();
    $order->info['subtotal'] = $cart->total;

// set selections for displaying
    $selected_country = $order->delivery['country']['id'];
    $selected_address = $sendto;
  //}
// eo shipping cost

  // check free shipping based on order total
  if ( defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true')) {
    switch (MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
      case 'national':
        if ($order->delivery['country_id'] == STORE_COUNTRY) $pass = true; break;
      case 'international':
        if ($order->delivery['country_id'] != STORE_COUNTRY) $pass = true; break;
      case 'both':
        $pass = true; break;
      default:
        $pass = false; break;
    }
    $free_shipping = false;
    if ( ($pass == true) && ($order->info['total'] >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) {
      $free_shipping = true;
      include(DIR_WS_LANGUAGES . $language . '/modules/order_total/ot_shipping.php');
    }
  } else {
    $free_shipping = false;
  }
  // begin shipping cost
  if(!$free_shipping && $cart->get_content_type() !== 'virtual'){
    if (tep_not_null($HTTP_POST_VARS['sid'])){
      list($module, $method) = explode('_', $HTTP_POST_VARS['sid']);
      $cart_sid = $HTTP_POST_VARS['sid'];
      tep_session_register('cart_sid');
    }elseif (tep_session_is_registered('cart_sid')){
      list($module, $method) = explode('_', $cart_sid);
    }else{
      $module="";
      $method="";
    }
    if (tep_not_null($module)){
      $selected_quote = $shipping_modules->quote($method, $module);
      if($selected_quote[0]['error'] || !tep_not_null($selected_quote[0]['methods'][0]['cost'])){
        $selected_shipping = $shipping_modules->cheapest();
        $order->info['shipping_method'] = $selected_shipping['title'];
        $order->info['shipping_cost'] = $selected_shipping['cost'];
        $order->info['total']+= $selected_shipping['cost'];
      }else{
        $order->info['shipping_method'] = $selected_quote[0]['module'].' ('.$selected_quote[0]['methods'][0]['title'].')';
        $order->info['shipping_cost'] = $selected_quote[0]['methods'][0]['cost'];
        $order->info['total']+= $selected_quote[0]['methods'][0]['cost'];
        $selected_shipping['title'] = $order->info['shipping_method'];
        $selected_shipping['cost'] = $order->info['shipping_cost'];
        $selected_shipping['id'] = $selected_quote[0]['id'].'_'.$selected_quote[0]['methods'][0]['id'];
      }
    }else{
      $selected_shipping = $shipping_modules->cheapest();
      $order->info['shipping_method'] = $selected_shipping['title'];
      $order->info['shipping_cost'] = $selected_shipping['cost'];
      $order->info['total']+= $selected_shipping['cost'];
    }
  }
// virtual products use free shipping
  if($cart->get_content_type() == 'virtual') {
    $order->info['shipping_method'] = CART_SHIPPING_METHOD_FREE_TEXT . ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS;
    $order->info['shipping_cost'] = 0;
  }
  if($free_shipping) {
    $order->info['shipping_method'] = MODULE_ORDER_TOTAL_SHIPPING_TITLE;
    $order->info['shipping_cost'] = 0;
  }
  $shipping=$selected_shipping;
// end of shipping cost
// end free shipping based on order total

  $info_box_contents = array();
  $info_box_contents[] = array('text' => '<b>' . CART_SHIPPING_OPTIONS . '</b>'); // azer for 2.20 cosmetic change
  new infoBoxHeading($info_box_contents, false, false);

  $ShipTxt= tep_draw_form('estimator', tep_href_link(FILENAME_SHOPPING_CART, '', 'NONSSL'), 'post'); //'onSubmit="return check_form();"'
  $ShipTxt.=tep_draw_hidden_field('sid', $selected_shipping['id']);
  $ShipTxt.='<table>';
  if(sizeof($quotes)) {
    if (tep_session_is_registered('customer_id')) {
      // logged in

  if (CARTSHIP_SHOWWT == 'true') {
    $showweight = '&nbsp;(' . $total_weight . '&nbsp;' . CARTSHIP_WTUNIT . ')';
  } else {
    $showweight = '';
  }

        if(CARTSHIP_SHOWIC == 'true'){
      //ishazer remover hard code for version 2.20 : $ShipTxt.='<tr><td class="main">' . ($total_count == 1 ? ' <b>Item:</b></td><td colspan="2" class="main">' : ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>';
      $ShipTxt.='<tr><td class="main">' . ($total_count == 1 ? ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">' : ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>';
     
       }
      $addresses_query = tep_db_query("select address_book_id, entry_city as city, entry_postcode as postcode, entry_state as state, entry_zone_id as zone_id, entry_country_id as country_id from " . TABLE_ADDRESS_BOOK . " where customers_id = '" . $customer_id . "'");
      // only display addresses if more than 1
      if (tep_db_num_rows($addresses_query) > 1){
        while ($addresses = tep_db_fetch_array($addresses_query)) {
          $addresses_array[] = array('id' => $addresses['address_book_id'], 'text' => tep_address_format(tep_get_address_format_id($addresses['country_id']), $addresses, 0, ' ', ' '));
        }
        $ShipTxt.='<tr><td colspan="3" class="main" nowrap>' .
                  CART_SHIPPING_METHOD_ADDRESS .'&nbsp;'. tep_draw_pull_down_menu('address_id', $addresses_array, $selected_address, 'onchange="return shipincart_submit('');"').'</td></tr>';
      }
      $ShipTxt.='<tr valign="top"><td class="main"><b>' . CART_SHIPPING_METHOD_TO .'</b>&nbsp;</td><td colspan="2" class="main">'. tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br>') . '</td></tr>';

    } else {
// not logged in
      $ShipTxt.=CART_SHIPPING_OPTIONS_LOGIN;

        if(CARTSHIP_SHOWIC == 'true'){
 //azer for 2.20:      $ShipTxt.='<tr><td class="main">' . ($total_count == 1 ? ' <b>Item:</b></td><td colspan="2" class="main">' : ' <b>Items:</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>';
              $ShipTxt.='<tr><td class="main" nowrap>' . ($total_count == 1 ? ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main" nowrap>' : ' <b>' . CART_ITEM . '</b></td><td colspan="2" class="main">') . $total_count . $showweight . '</td></tr>';
             
       }

      if($cart->get_content_type() != 'virtual'){

        if(CARTSHIP_SHOWCDD == 'true'){
        $ShipTxt.='<tr><td colspan="3" class="main" nowrap>' .
                  ENTRY_COUNTRY .'&nbsp;'. tep_get_country_list('country_id', $selected_country,'style="width=200"').'<br />';
        }

//add state zone_id
        $state_array[] = array('id' => '', 'text' => 'Please Select');
        $state_query = tep_db_query("select zone_name, zone_id from " . TABLE_ZONES . " where zone_country_id = '$selected_country' order by zone_country_id DESC, zone_name");
        while ($state_values = tep_db_fetch_array($state_query)) {
          $state_array[] = array('id' => $state_values['zone_id'],
                                 'text' => $state_values['zone_name']);
        }

        if(CARTSHIP_SHOWSDD == 'true'){
         $ShipTxt.=ENTRY_STATE .'&nbsp;'. tep_draw_pull_down_menu('state',$state_array).'<br />';
        }

        if(CARTSHIP_SHOWZDD == 'true'){
          $ShipTxt.=ENTRY_POST_CODE .'&nbsp;'. tep_draw_input_field('zip_code', $selected_zip, 'size="5"');
        }
//        $ShipTxt.='&nbsp;<a href="_" onclick="return shipincart_submit('');">'.CART_SHIPPING_METHOD_RECALCULATE.'</a></td></tr>';

        if(CARTSHIP_SHOWUB == 'true'){
$ShipTxt.='&nbsp;<td><a href="_" onclick="return shipincart_submit('');">'. tep_image_button('button_update_cart.gif', IMAGE_BUTTON_UPDATE_CART) . ' </a></td></td></tr>';
        }
        }
    }
    if($cart->get_content_type() == 'virtual'){
      // virtual product-download
      //$ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>';
      $ShipTxt.='<tr><td class="main" colspan="3">&nbsp;</td></tr><tr><td class="main" colspan="3"><i>' . CART_SHIPPING_METHOD_FREE_TEXT . ' ' . CART_SHIPPING_METHOD_ALL_DOWNLOADS . '</i></td></tr>';
    }elseif ($free_shipping==1) {
      // order $total is free
      //$ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>';
      $ShipTxt.='<tr><td class="main" colspan="3">&nbsp;</td></tr><tr><td class="main" colspan="3"><i>' . sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . '</i></td><td>&nbsp;</td></tr>';
    }else{
      // shipping display
   if ( empty($quotes[0]['error']) || (!empty($quotes[1])&&empty($quotes[1]['error'])) ) {
        $ShipTxt.='<tr><td colspan="3" class="main">&nbsp;</td></tr><tr><td class="main"><b>' . CART_SHIPPING_CARRIER_TEXT . '</b></td><td class="main" align="left"><b>' . CART_SHIPPING_METHOD_TEXT . '</b></td><td class="main" align="right"><b>' . CART_SHIPPING_METHOD_RATES . '</b></td></tr>';
        $ShipTxt.='<tr><td colspan="3" class="main">'.tep_draw_separator().'</td></tr>';
   } else {
      $ShipTxt.='<tr><td colspan="3" class="main">&nbsp;</td></tr>';
    }
      for ($i=0, $n=sizeof($quotes); $i<$n; $i++) {
        if(sizeof($quotes[$i]['methods'])==1){
          // simple shipping method
          $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][0]['id'];
          $ShipTxt.= '<tr class="'.$extra.'">';
          $ShipTxt.='<td class="main">'.$quotes[$i]['icon'].'&nbsp;&nbsp;&nbsp;</td>';
          if($quotes[$i]['error']){
            $ShipTxt.='<td colspan="2" class="main">'.$quotes[$i]['module'].'&nbsp;';
            $ShipTxt.= '('.$quotes[$i]['error'].')</td></tr>';
          }else{
            if($selected_shipping['id'] == $thisquoteid){
             // commented for v2.10 : $ShipTxt.='<td class="main"><a title="Select this method" href="_"  onclick="return shipincart_submit(''.$thisquoteid.'');"><b>'.$quotes[$i]['module'].'&nbsp;';
$ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_"  onclick="return shipincart_submit(''.$thisquoteid.'');"><b>'.$quotes[$i]['module'].'&nbsp;';

              $ShipTxt.= '('.$quotes[$i]['methods'][0]['title'].')</b></a>&nbsp;&nbsp;&nbsp;</td><td align="right" class="main"><b>'.$currencies->format(tep_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])).'</b></td></tr>';
            }else{
             // commented for v2.10 : $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(''.$thisquoteid.'');">'.$quotes[$i]['module'].'&nbsp;';
 $ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(''.$thisquoteid.'');">'.$quotes[$i]['module'].'&nbsp;';

              $ShipTxt.= '('.$quotes[$i]['methods'][0]['title'].')</a>&nbsp;&nbsp;&nbsp;</td><td align="right" class="main">'.$currencies->format(tep_add_tax($quotes[$i]['methods'][0]['cost'], $quotes[$i]['tax'])).'</td></tr>';
            }
          }
        } else {
          // shipping method with sub methods (multipickup)
          for ($j=0, $n2=sizeof($quotes[$i]['methods']); $j<$n2; $j++) {
            $thisquoteid = $quotes[$i]['id'].'_'.$quotes[$i]['methods'][$j]['id'];
            $ShipTxt.= '<tr class="'.$extra.'">';
            $ShipTxt.='<td class="main">'.$quotes[$i]['icon'].'&nbsp;&nbsp;&nbsp;</td>';
            if($quotes[$i]['error']){
              $ShipTxt.='<td colspan="2" class="main">'.$quotes[$i]['module'].'&nbsp;';
              $ShipTxt.= '('.$quotes[$i]['error'].')</td></tr>';
            }else{
              if($selected_shipping['id'] == $thisquoteid){
               // commented for v2.10 :  $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(''.$thisquoteid.'');"><b>'.$quotes[$i]['module'].'&nbsp;';
$ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(''.$thisquoteid.'');"><b>'.$quotes[$i]['module'].'&nbsp;';

                $ShipTxt.= '('.$quotes[$i]['methods'][$j]['title'].')</b></a>&nbsp;&nbsp;&nbsp;</td><td align="right" class="main"><b>'.$currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])).'</b></td><td class="main">'.tep_image(DIR_WS_ICONS . 'selected.gif', 'Selected').'</td></tr>';
              }else{
              // commented for v2.10 :   $ShipTxt.='<td class="main"><a title="Select this method" href="_" onclick="return shipincart_submit(''.$thisquoteid.'');">'.$quotes[$i]['module'].'&nbsp;';
 $ShipTxt.='<td class="main"><a title="' . CART_SELECT_THIS_METHOD .'" href="_" onclick="return shipincart_submit(''.$thisquoteid.'');">'.$quotes[$i]['module'].'&nbsp;';

                $ShipTxt.= '('.$quotes[$i]['methods'][$j]['title'].')</a>&nbsp;&nbsp;&nbsp;</td><td align="right" class="main">'.$currencies->format(tep_add_tax($quotes[$i]['methods'][$j]['cost'], $quotes[$i]['tax'])).'</td><td class="main">&nbsp;</td></tr>';
              }
            }
          }
        }
      }
    }
  }
  $ShipTxt.= '</table></form>';

  $info_box_contents = array();
  $info_box_contents[] = array('text' => $ShipTxt);
  new infoBox($info_box_contents);

  if (CARTSHIP_SHOWOT == 'true'){
    // BOF get taxes if not logged in
    if (!tep_session_is_registered('customer_id')){
      $products = $cart->get_products();
      for ($i=0, $n=sizeof($products); $i<$n; $i++) {
        $products_tax = tep_get_tax_rate($products[$i]['tax_class_id'], $order->delivery['country_id'],$order->delivery['zone_id']);
        $products_tax_description = tep_get_tax_description($products[$i]['tax_class_id'], $order->delivery['country_id'], $order->delivery['zone_id']);
        if (DISPLAY_PRICE_WITH_TAX == 'true') {
         //Modified by Strider 42 to correct the tax calculation when a customer is not logged in
         // $tax_val = ($products[$i]['final_price']-(($products[$i]['final_price']*100)/(100+$products_tax)))*$products[$i]['quantity'];
          $tax_val = (($products[$i]['final_price']/100)*$products_tax)*$products[$i]['quantity'];
        } else {
          $tax_val = (($products[$i]['final_price']*$products_tax)/100)*$products[$i]['quantity'];
        }
        $order->info['tax'] += $tax_val;
        $order->info['tax_groups']["$products_tax_description"] += $tax_val;
        // Modified by Strider 42 to correct the order total figure when shop displays prices with tax
        if (DISPLAY_PRICE_WITH_TAX == 'true') {
           $order->info['total'];
        } else {
        $order->info['total']+=$tax_val;
               }
      }
    }
    // EOF get taxes if not logged in (seems like less code than in order class)
    require(DIR_WS_CLASSES . 'order_total.php');
    $order_total_modules = new order_total;
    //echo '</td><td align="right">';
    // order total code
    $order_total_modules->process();

    $info_box_contents = array();
  $info_box_contents[] = array('text' => '<b>' . CART_OT . '</b>'); //azer version 2.20

    new infoBoxHeading($info_box_contents, false, false);
    $otTxt='<table align="right">';
    $otTxt.=$order_total_modules->output().'</table>';

    $info_box_contents = array();
    $info_box_contents[] = array('text' => $otTxt);

    new infoBox($info_box_contents);
  }
} // Use only when cart_contents > 0

?>
             </td></tr></table>
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Lun 12 Fév 2007, 20:45

une petite piste pour moi ?
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Jeu 15 Fév 2007, 19:17

certains ont bien du installer cette contrib.... (ou une similaire permettant d'avoir le prix de l'expéditon sans avoir besoin de créer un compte ni de se loguer). Possibilité de me faire parvenir le code la page shipping_estimator.php

ou une autre contrib (je suis pa fermé !:cool:)

merci...
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Mar 27 Fév 2007, 10:52

bonjour,

siouplait ? besoin d'aide, car j'ai l'impression de passer à coté de nombreuses commandes, car les clients doivent créer leur compte pour connaitre le prix de l'expédition, et je suis persuadé, qu'il ne vont pas jusque là et quitte le site.

La contrib en tant que telle est très simple à installer. (que ce soit dans l'admin ou dans la partie catalog), mais il reste à l'adapter à Oscss... j'ai eu beau essayé, ca ne fontionne pas.

M'ci !

Mali
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Dim 08 Avr 2007, 16:11

Comment faites vous pour faire connaitre le prix du port sans pour autant que la personne crée un compte ou se connecte ? afin que celui ci apparaisse dans le shopping_cart (ou ailleurs !)

merci :D (j'y ai mis mon plus beau sourire)

Mali
Dernière édition par Mali le Dim 08 Avr 2007, 16:12, édité 1 fois.
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar Mali » Jeu 13 Sep 2007, 10:53

Je reviens à vous avec ce plugin...

quelqu'un a t il pu l'installer sur sa boutique ? ca me depannerait grandement. :rolleyes:

merci

mali
Mali
Membre très actif
 
Messages: 234
Inscription: Mer 29 Mar 2006, 20:39

Messagepar chever » Mer 22 Juil 2009, 00:57

Je suis dans la même muise que Mali au sujet de cette contrib.

Pensez vous qu'elle peut fonctionner sous oscss ? Connaissez vous une autre méthode pour afficher une estimation des frais de port dans la page Panier ?

Merci d'avance pour vos réponse
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar Louis_Cypher » Dim 26 Juil 2009, 12:01

Oui, j'ai installé cette contrib. www.cadre-et-image.fr

Et ca marche nickel.

Pour le "infoboxheading".... rajoute juste le require de la class box.php...
oscss 1.2 + qpbpp + qtpro + gestion pointue des stocks + appros + export clients + export commandes sur ebp + liaison avec apisoft + module personnalisation + calcul des prix à la surface + ultra pics + import via csv + resize auto des images via imagemagik + plein d'autres trucs + intégration dans joomla
Louis_Cypher
Site Admin
 
Messages: 82
Inscription: Ven 22 Sep 2006, 18:08

Messagepar chever » Dim 26 Juil 2009, 14:16

Louis_Cypher,

Merci pour l'info ca me rassure et redonne espoir

Toutefois sauf erreur de ma part dans classes/box.php n'existe pas dans ocss

Est ce toi qui l'a crée et qu'as tu dedans ?
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar Louis_Cypher » Dim 26 Juil 2009, 15:30

mmmhhh...ouaip, y'a des chances que j'aie créé ce fichier moi-même, finalement..ou plutôt.. je l'ai ramené de la version oscommerce ms2 de base. Bref. Quoiqu'il en soit, tu peux - en utilisant google - facilement retrouver la classe box. Je ne l'ai pas sous la main en ce moment, désolé, il faudra attendre demain si tu veux que je te l'envoie.

Ceci dit, son utilisation est toute relative : elle sert à déclarer les tableaux. Dans une logique oscss, les tableaux sont à proscrire..mais au moins, ca affiche quelque chose !
oscss 1.2 + qpbpp + qtpro + gestion pointue des stocks + appros + export clients + export commandes sur ebp + liaison avec apisoft + module personnalisation + calcul des prix à la surface + ultra pics + import via csv + resize auto des images via imagemagik + plein d'autres trucs + intégration dans joomla
Louis_Cypher
Site Admin
 
Messages: 82
Inscription: Ven 22 Sep 2006, 18:08

Messagepar Ayatus » Dim 26 Juil 2009, 18:39

Bonjour,

La classe box est présente dans l'admin, c'est une extension de la classe tableBlock.
Il existe une version sans tableau dans la branche 1.2.2_revisit_BO.
Avatar de l’utilisateur
Ayatus
Site Admin
 
Messages: 280
Inscription: Sam 19 Avr 2008, 17:23

Messagepar chever » Lun 27 Juil 2009, 10:56

Merci pour les infos

J'ai crée une class boxes.php dans include/classes à partir de la ms2 et j'ai rajouté aussi class box extends tableBlock (comme dans l'admin).

Resultat
Fatal error: Class box: Cannot inherit from undefined class tableblock in .../btq/includes/classes/boxes.php on line 237

Petite Idée ???
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar Louis_Cypher » Lun 27 Juil 2009, 11:14

Voici la classe box que j'utilise, avec laquelle je ne rencontre aucun soucis.
Cependant, la version entièrement css sur le svn mérite le coup d'oeil, à mon avis..<?php
/*
$Id: box.php,v 1.1 2006/09/26 18:24:55 j4k Exp $
+-----------------------------------------------------------------------+
| osCSS Open Source E-commerce |
+-----------------------------------------------------------------------+
| Copyright (c) 2005 The osCSS developers |
| |
| http://www.counteractdesign.com |
| |
| Portions Copyright (c) 2003 osCommerce |
+-----------------------------------------------------------------------+
| This source file is subject to version 2.0 of the GPL license, |
| available at the following url: |
| http://www.counteractdesign.com/license/2_0.txt. |
+-----------------------------------------------------------------------+

Example usage:

$heading = array();
$heading[] = array('params' => 'class="menuBoxHeading"',
'text' => BOX_HEADING_TOOLS,
'link' => tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('selected_box')) . 'selected_box=tools'));

$contents = array();
$contents[] = array('text' => SOME_TEXT);

$box = new box;
echo $box->infoBox($heading, $contents);
*/

class tableBlock {
var $table_border = '0';
var $table_width = '100%';
var $table_cellspacing = '0';
var $table_cellpadding = '2';
var $table_parameters = '';
var $table_row_parameters = '';
var $table_data_parameters = '';

function tableBlock($contents) {
$tableBox_string = '';

$form_set = false;
if (isset($contents['form'])) {
$tableBox_string .= $contents['form'] . "n";
$form_set = true;
array_shift($contents);
}

$tableBox_string .= '<table border="' . $this->table_border . '" width="' . $this->table_width . '" cellspacing="' . $this->table_cellspacing . '" cellpadding="' . $this->table_cellpadding . '"';
if (tep_not_null($this->table_parameters)) $tableBox_string .= ' ' . $this->table_parameters;
$tableBox_string .= '>' . "n";

for ($i=0, $n=sizeof($contents); $i<$n; $i++) {
$tableBox_string .= ' <tr';
if (tep_not_null($this->table_row_parameters)) $tableBox_string .= ' ' . $this->table_row_parameters;
if (isset($contents[$i]['params']) && tep_not_null($contents[$i]['params'])) $tableBox_string .= ' ' . $contents[$i]['params'];
$tableBox_string .= '>' . "n";

if (isset($contents[$i][0]) && is_array($contents[$i][0])) {
for ($x=0, $y=sizeof($contents[$i]); $x<$y; $x++) {
if (isset($contents[$i][$x]['text']) && tep_not_null($contents[$i][$x]['text'])) {
$tableBox_string .= ' <td';
if (isset($contents[$i][$x]['align']) && tep_not_null($contents[$i][$x]['align'])) $tableBox_string .= ' align="' . $contents[$i][$x]['align'] . '"';
if (isset($contents[$i][$x]['params']) && tep_not_null($contents[$i][$x]['params'])) {
$tableBox_string .= ' ' . $contents[$i][$x]['params'];
} elseif (tep_not_null($this->table_data_parameters)) {
$tableBox_string .= ' ' . $this->table_data_parameters;
}
$tableBox_string .= '>';
if (isset($contents[$i][$x]['form']) && tep_not_null($contents[$i][$x]['form'])) $tableBox_string .= $contents[$i][$x]['form'];
$tableBox_string .= $contents[$i][$x]['text'];
if (isset($contents[$i][$x]['form']) && tep_not_null($contents[$i][$x]['form'])) $tableBox_string .= '</form>';
$tableBox_string .= '</td>' . "n";
}
}
} else {
$tableBox_string .= ' <td';
if (isset($contents[$i]['align']) && tep_not_null($contents[$i]['align'])) $tableBox_string .= ' align="' . $contents[$i]['align'] . '"';
if (isset($contents[$i]['params']) && tep_not_null($contents[$i]['params'])) {
$tableBox_string .= ' ' . $contents[$i]['params'];
} elseif (tep_not_null($this->table_data_parameters)) {
$tableBox_string .= ' ' . $this->table_data_parameters;
}
$tableBox_string .= '>' . $contents[$i]['text'] . '</td>' . "n";
}

$tableBox_string .= ' </tr>' . "n";
}

$tableBox_string .= '</table>' . "n";

if ($form_set == true) $tableBox_string .= '</form>' . "n";

return $tableBox_string;
}
}

class box extends tableBlock {
function box() {
$this->heading = array();
$this->contents = array();
}

function infoBox($heading, $contents) {
$this->table_row_parameters = 'class="infoBoxHeading"';
$this->table_data_parameters = 'class="infoBoxHeading"';
$this->heading = $this->tableBlock($heading);

$this->table_row_parameters = '';
$this->table_data_parameters = 'class="infoBoxContent"';
$this->contents = $this->tableBlock($contents);

return $this->heading . $this->contents;
}

function menuBox($heading, $contents) {
$this->table_data_parameters = 'class="menuBoxHeading"';
if (isset($heading[0]['link'])) {
$this->table_data_parameters .= ' onmouseover="this.style.cursor='hand'" onclick="document.location.href='' . $heading[0]['link'] . ''"';
$heading[0]['text'] = '&nbsp;<a href="' . $heading[0]['link'] . '" class="menuBoxHeadingLink">' . $heading[0]['text'] . '</a>&nbsp;';
} else {
$heading[0]['text'] = '&nbsp;' . $heading[0]['text'] . '&nbsp;';
}
$this->heading = $this->tableBlock($heading);

$this->table_data_parameters = 'class="menuBoxContent"';
$this->contents = $this->tableBlock($contents);

return $this->heading . $this->contents;
}
}
class tableBox {
var $table_border = '0';
var $table_width = '100%';
var $table_cellspacing = '0';
var $table_cellpadding = '2';
var $table_parameters = '';
var $table_row_parameters = '';
var $table_data_parameters = '';

// class constructor
function tableBox($contents, $direct_output = false) {
$tableBox_string = '<table border="' . tep_output_string($this->table_border) . '" width="' . tep_output_string($this->table_width) . '" cellspacing="' . tep_output_string($this->table_cellspacing) . '" cellpadding="' . tep_output_string($this->table_cellpadding) . '"';
if (tep_not_null($this->table_parameters)) $tableBox_string .= ' ' . $this->table_parameters;
$tableBox_string .= '>' . "n";

for ($i=0, $n=sizeof($contents); $i<$n; $i++) {
if (isset($contents[$i]['form']) && tep_not_null($contents[$i]['form'])) $tableBox_string .= $contents[$i]['form'] . "n";
$tableBox_string .= ' <tr';
if (tep_not_null($this->table_row_parameters)) $tableBox_string .= ' ' . $this->table_row_parameters;
if (isset($contents[$i]['params']) && tep_not_null($contents[$i]['params'])) $tableBox_string .= ' ' . $contents[$i]['params'];
$tableBox_string .= '>' . "n";

if (isset($contents[$i][0]) && is_array($contents[$i][0])) {
for ($x=0, $n2=sizeof($contents[$i]); $x<$n2; $x++) {
if (isset($contents[$i][$x]['text']) && tep_not_null($contents[$i][$x]['text'])) {
$tableBox_string .= ' <td';
if (isset($contents[$i][$x]['align']) && tep_not_null($contents[$i][$x]['align'])) $tableBox_string .= ' align="' . tep_output_string($contents[$i][$x]['align']) . '"';
if (isset($contents[$i][$x]['params']) && tep_not_null($contents[$i][$x]['params'])) {
$tableBox_string .= ' ' . $contents[$i][$x]['params'];
} elseif (tep_not_null($this->table_data_parameters)) {
$tableBox_string .= ' ' . $this->table_data_parameters;
}
$tableBox_string .= '>';
if (isset($contents[$i][$x]['form']) && tep_not_null($contents[$i][$x]['form'])) $tableBox_string .= $contents[$i][$x]['form'];
$tableBox_string .= $contents[$i][$x]['text'];
if (isset($contents[$i][$x]['form']) && tep_not_null($contents[$i][$x]['form'])) $tableBox_string .= '</form>';
$tableBox_string .= '</td>' . "n";
}
}
} else {
$tableBox_string .= ' <td';
if (isset($contents[$i]['align']) && tep_not_null($contents[$i]['align'])) $tableBox_string .= ' align="' . tep_output_string($contents[$i]['align']) . '"';
if (isset($contents[$i]['params']) && tep_not_null($contents[$i]['params'])) {
$tableBox_string .= ' ' . $contents[$i]['params'];
} elseif (tep_not_null($this->table_data_parameters)) {
$tableBox_string .= ' ' . $this->table_data_parameters;
}
$tableBox_string .= '>' . $contents[$i]['text'] . '</td>' . "n";
}

$tableBox_string .= ' </tr>' . "n";
if (isset($contents[$i]['form']) && tep_not_null($contents[$i]['form'])) $tableBox_string .= '</form>' . "n";
}

$tableBox_string .= '</table>' . "n";

if ($direct_output == true) echo $tableBox_string;

return $tableBox_string;
}
}

class infoBox extends tableBox {
function infoBox($contents) {
$info_box_contents = array();
$info_box_contents[] = array('text' => $this->infoBoxContents($contents));
$this->table_cellpadding = '1';
$this->table_parameters = 'class="infoBox"';
$this->tableBox($info_box_contents, true);
}

function infoBoxContents($contents) {
$this->table_cellpadding = '3';
$this->table_parameters = 'class="infoBoxContents"';
$info_box_contents = array();
$info_box_contents[] = array(array('text' => tep_draw_separator('pixel_trans.gif', '100%', '1')));
for ($i=0, $n=sizeof($contents); $i<$n; $i++) {
$info_box_contents[] = array(array('align' => (isset($contents[$i]['align']) ? $contents[$i]['align'] : ''),
'form' => (isset($contents[$i]['form']) ? $contents[$i]['form'] : ''),
'params' => 'class="boxText"',
'text' => (isset($contents[$i]['text']) ? $contents[$i]['text'] : '')));
}
$info_box_contents[] = array(array('text' => tep_draw_separator('pixel_trans.gif', '100%', '1')));
return $this->tableBox($info_box_contents);
}
}

class infoBoxHeading extends tableBox {
function infoBoxHeading($contents, $left_corner = true, $right_corner = true, $right_arrow = false) {
$this->table_cellpadding = '0';

if ($left_corner == true) {
$left_corner = tep_image(DIR_WS_IMAGES . 'infobox/corner_left.gif');
} else {
$left_corner = tep_image(DIR_WS_IMAGES . 'infobox/corner_right_left.gif');
}
if ($right_arrow == true) {
$right_arrow = '<a href="' . $right_arrow . '">' . tep_image(DIR_WS_IMAGES . 'infobox/arrow_right.gif', ICON_ARROW_RIGHT) . '</a>';
} else {
$right_arrow = '';
}
if ($right_corner == true) {
$right_corner = $right_arrow . tep_image(DIR_WS_IMAGES . 'infobox/corner_right.gif');
} else {
$right_corner = $right_arrow . tep_draw_separator('pixel_trans.gif', '11', '14');
}

$info_box_contents = array();
$info_box_contents[] = array(array('params' => 'height="14" class="infoBoxHeading"',
'text' => $left_corner),
array('params' => 'width="100%" height="14" class="infoBoxHeading"',
'text' => $contents[0]['text']),
array('params' => 'height="14" class="infoBoxHeading" nowrap',
'text' => $right_corner));

$this->tableBox($info_box_contents, true);
}
}

class contentBox extends tableBox {
function contentBox($contents) {
$info_box_contents = array();
$info_box_contents[] = array('text' => $this->contentBoxContents($contents));
$this->table_cellpadding = '1';
$this->table_parameters = 'class="infoBox"';
$this->tableBox($info_box_contents, true);
}

function contentBoxContents($contents) {
$this->table_cellpadding = '4';
$this->table_parameters = 'class="infoBoxContents"';
return $this->tableBox($contents);
}
}

class contentBoxHeading extends tableBox {
function contentBoxHeading($contents) {
$this->table_width = '100%';
$this->table_cellpadding = '0';

$info_box_contents = array();
$info_box_contents[] = array(array('params' => 'height="14" class="infoBoxHeading"',
'text' => tep_image(DIR_WS_IMAGES . 'infobox/corner_left.gif')),
array('params' => 'height="14" class="infoBoxHeading" width="100%"',
'text' => $contents[0]['text']),
array('params' => 'height="14" class="infoBoxHeading"',
'text' => tep_image(DIR_WS_IMAGES . 'infobox/corner_right_left.gif')));

$this->tableBox($info_box_contents, true);
}
}

class errorBox extends tableBox {
function errorBox($contents) {
$this->table_data_parameters = 'class="errorBox"';
$this->tableBox($contents, true);
}
}

class productListingBox extends tableBox {
function productListingBox($contents) {
$this->table_parameters = 'class="productListing"';
$this->tableBox($contents, true);
}
}
?>
Dernière édition par Louis_Cypher le Lun 27 Juil 2009, 11:16, édité 1 fois.
oscss 1.2 + qpbpp + qtpro + gestion pointue des stocks + appros + export clients + export commandes sur ebp + liaison avec apisoft + module personnalisation + calcul des prix à la surface + ultra pics + import via csv + resize auto des images via imagemagik + plein d'autres trucs + intégration dans joomla
Louis_Cypher
Site Admin
 
Messages: 82
Inscription: Ven 22 Sep 2006, 18:08

Messagepar chever » Lun 27 Juil 2009, 12:39

Louis Cypher,

Merci ca regle le pb ci dessus.
Maintenant j'ai un cadre et ensuite plus rien.

Serait ce abuser de me faire parvenir module/shipping_estimator.php ?
Je pense que tu as aussi des modif dans ce fichier
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon

Messagepar Louis_Cypher » Lun 27 Juil 2009, 13:09

check ton mail.
oscss 1.2 + qpbpp + qtpro + gestion pointue des stocks + appros + export clients + export commandes sur ebp + liaison avec apisoft + module personnalisation + calcul des prix à la surface + ultra pics + import via csv + resize auto des images via imagemagik + plein d'autres trucs + intégration dans joomla
Louis_Cypher
Site Admin
 
Messages: 82
Inscription: Ven 22 Sep 2006, 18:08

Messagepar chever » Mar 04 Aoû 2009, 00:28

Louis Cypher,

Merci pour le fichier qui m'a permis d'avancer sur le sujet et de le rendre compatible avec différents modules de shipping.

Maintenant reste deux problèmes :
La mise a jour de l'estimation quand on sélectionne un pays==> le menu déroulant ne fonctionne pas
La mise à jour de l'OT quand l'utilisateur sélectionne un autre méthode de transport. En fait quand il clique dessus le panier se vide.
A priori, c'est un problème entre l'osCid et la selection du nouveau module

PS : Je ferai une recap après avoir résolu les 2 pb ci dessus
Dernière édition par chever le Mar 04 Aoû 2009, 00:29, édité 1 fois.
oscss 1.2/seo/point and rewards/featured et beaucoup de sueur
chever
Membre gold
 
Messages: 529
Inscription: Jeu 26 Juil 2007, 21:06
Localisation: Macon


Retourner vers Plugin

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron