Jump to content
xt:Commerce Community Forum

Problem Mit Staffelpreisen


Tarkin

Recommended Posts

irgendwie treibt mich das in den Wahnsinn ...

wenn ich im Bereich Kategorien/Artikel Staffelpreise f?r einen

Artikel einrichte, dann erhalte ich immer den Preisbereich bis zu

dieser St?ckzahl. W?re prinzipiel kein Problem, doch:

STAFFELPREISE

1 stk a 9.90 EUR

2-4 stk a 9.90 EUR

5-9 stk a 9.40 EUR

10-100 stk a 8.90 EUR

sieht doch recht eigenartig aus, oder? Mache ich einen Denkfehler?

Richtig st?ren tut mich haupts?chlich die gleichen Preise in Zeile 1 und 2.

Eingegeben habe ich folgendes in der Maske:

Kunde Staffelpreise

Stk: a :

4 8.5340

9 8.1030

100 7.6720

Hat jemand eine Idee???

Gru?

Tarkin

Link to comment
Share on other sites

Originally posted by Hubi@Oct 31 2003, 17:32 PM

Der Zeigt doch genau das an, was Du eingegeben hast.

Du gibst hier die Preise netto ein, genau wie die Deltapreise im Attributemanager.

Hi Hubi,

das ist richtig, das ist auch nicht das Problem.

Das Problem ist, die St?ckzahl die angegeben wird wird als

bis zu dieser St?ckzahl genommen. Lt. XTC soll es aber ab

einer bestimmten St?ckzahl gelten.

Bsp:

ich gebe ein: St?ckzahl 5 Preis 10 Euro

Lt. XTC sollte das System nun einen Preis von 10 Euro ab 5

St?ck berechnen. In dieser Betrachtung erst einmal egal ob

Netto oder Brutto.

Bei mir geht der Shop aber hin und berechnet:

zwischen Max Anzahl der Staffel zuvor bis 5 einen Preis von

10 Euro...

Zudem hat man bei dieser Art der Staffelberechnung keinen

Preis f?r Preis gr??er oberste Staffel ...

Gru?

Eric

Link to comment
Share on other sites

dir berechnung erfolgt richtig, ist nur die anzeige falsch.

hier siehst du die aktuelle gefixte version f?r beta2, musst die jedoch wieder umstricken weil die f?r die templates gebaut ist.


<?php

/* -----------------------------------------------------------------------------------------

  $Id: graduated_prices.php,v 1.8 2003/10/24 15:52:22 fanta2k Exp $


  XT-Commerce - community made shopping

  http://www.xt-commerce.com


  Copyright (c) 2003 XT-Commerce

  -----------------------------------------------------------------------------------------

  based on: 

  (c) 2000-2001 The Exchange Project (earlier name of osCommerce)

  (c) 2002-2003 osCommercebased on original files from OSCommerce CVS 2.2 2002/08/28 02:14:35 [url]www.oscommerce.com[/url]

  (c) 2003 nextcommerce (graduated_prices.php,v 1.11 2003/08/17); [url]www.nextcommerce.org[/url]


  Released under the GNU General Public License

  ---------------------------------------------------------------------------------------*/

$module_smarty= new Smarty;

$module_smarty->assign('tpl_path',DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/');

$module_content=array();

 // include needed functions

 require_once(DIR_FS_INC . 'xtc_format_price_graduated.inc.php');


 $staffel_query = xtc_db_query("SELECT

                   quantity,

                   personal_offer

                   FROM

                   personal_offers_by_customers_status_" . $_SESSION['customers_status']['customers_status_id'] . "

                   WHERE

                   products_id = '" . $_GET['products_id'] . "'

                   ORDER BY quantity ASC");

 $staffel_data = array();

 $staffel=array();

 $i='';

 while ($staffel_values = xtc_db_fetch_array($staffel_query)) {

 $staffel[]=array('stk'=>$staffel_values['quantity'],

          'price'=>$staffel_values['personal_offer']);

 }


 for ($i=0,$n=sizeof($staffel); $i<$n; $i++) {

 if ($staffel[$i]['stk'] == 1) {

    $quantity= $staffel[$i]['stk'];

    if ($staffel[$i+1]['stk']!='') $quantity= $staffel[$i]['stk'].'-'.($staffel[$i+1]['stk']-1);

   } else {

     $quantity= ' > '.$staffel[$i]['stk'];

     if ($staffel[$i+1]['stk']!='') $quantity= $staffel[$i]['stk'].'-'.($staffel[$i+1]['stk']-1);

   }

 $staffel_data[$i] = array(

  'QUANTITY' => $quantity,

  'PRICE' => xtc_format_price_graduated($staffel[$i]['price'], $price_special=1, $calculate_currencies=true, $tax_class=$product_info['products_tax_class_id']));


 }

if (sizeof($staffel_data)>1) {

 $module_smarty->assign('language', $_SESSION['language']);

 $module_smarty->assign('module_content',$staffel_data);

 // set cache ID

 if (USE_CACHE=='false') {

 $module_smarty->caching = 0;

 $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/graduated_price.html');

 } else {

 $module_smarty->caching = 1;	

 $module_smarty->cache_lifetime=CACHE_LIFETIME;

 $module_smarty->cache_modified_check=CACHE_CHECK;

 $cache_id = $_SESSION['language'].$_GET['products_id'].$_SESSION['customers_status']['customers_status_name'].$_SESSION['currency'];

 $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/graduated_price.html',$cache_id);

 }

 $info_smarty->assign('MODULE_graduated_price',$module);



 };

?>

Link to comment
Share on other sites

habe mir den BugFix grade mal selber geschrieben.

ab Zeile 46 im Modul graduated_prices.php ersetzen:


 ? ? ? if ($staffel_data[$col]['QUANTITY'] == 1) {

 ? ? ? ?echo '<td class="main">' . $staffel_data[$col]['QUANTITY'] . ' stk</td>';

 ? ? ?} else {

 ? ? ? ?$min_roducts = $staffel_data[$col-1]['QUANTITY']+1;

 ? ? ? ? echo '<td class="main">' . $min_roducts . '-' . $staffel_data[$col]['QUANTITY'] . ' stk</td>';

 ? ? ?}

durch:

 ? ? ?if ($staffel_data[$col]['QUANTITY'] == 1) {

 ? ? ? ?echo '<td class="main">' . $staffel_data[$col]['QUANTITY'] . '-' . $staffel_data[$col+1]['QUANTITY'].' stk</td>';

 ? ? ?} else {

 ? ? ? ?$min_roducts = ($staffel_data[$col]['QUANTITY']+1)-1;

 ? ? ? ? if ($staffel_data[$col+1]['QUANTITY']!='')

 ? ? ? ? ? echo '<td class="main">' . $min_roducts . '-' . $staffel_data[$col+1]['QUANTITY'] . ' stk</td>';

 ? ? ? ? ?else 

 ? ? ? ? ? echo '<td class="main">' . $min_roducts . '- x stk</td>';

 ? ? ?}

Das sollte es gewesen sein ...

Gru?

Tarkin

----------------------------------------

manchmal liegt das Ziel vor einem,

wenn man sich um 180? umdreht ...

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...