Koszt wysyłki uzależniony od ilości

travi

Avatar: travi

2012-12-30 18:23

Quick.Cart 5.2

Witam.
Czy jest możliwość ustalenia ram kosztów wysyłki?
Chodzi mi o to aby koszt wysyłki był uzależniony od ilości produktów...

Nie chce aby ten sam koszt wysyłki był przy zakupie 1 sztuki i przy zakupie 100 szt.
Od tego można zbankrutować:)

Chciałbym aby było np. tak

1-2 szt = 25zł
3-10 50zł
11i więcej = 75zł

Da się to zrobić?
Pytam tylko i qyłącznie o darmowy Quick.Cart

Pozdrawiam.

» Quick.Cart v5.x

selekcjoner

Avatar: selekcjoner

2012-12-30 20:28

Najprościej byłoby zrobić coś podobnego do dodatku oneDiscount, czyli jakieś globalne ustawienia ilości sztuk po których przekroczeniu będzie dodawać określoną kwotę do kosztów wysyłki.

Trochę zmian będzie, ale jest to do zrobienia:)

simlution.org

travi

Avatar: travi

2012-12-30 20:41

hmm...
A możesz mi pomóc to zrobić?

selekcjoner

Avatar: selekcjoner

2012-12-30 22:09

1. Edytuj database/config/general.php
Pod wpisem:

$config['max_product_quantity']


lub gdzieś w okolicy (dla porzadku) dodaj:

$config['quantity_1'] = "";
$config['add_amount_1'] = "";
$config['quantity_2'] = "";
$config['add_amount_2'] = ""



2. Edytuj database/translations/pl.php
Znajdź:

 // plugins 


i zamień na:

 // plugins
$lang['Add_amount']= "Dodaj kwotę: "



3. Edytuj templates/admin/settings.tpl
Znajdź:

<!-- tab options -->


i zamień na:

 <tr>
        <
td>
          
$lang['Quantity']
          <
input type="text" name="quantity_1" value="$config[quantity_1]" size="5" maxlength="5" class="input" />
          &
nbsp;&nbsp;
          
$lang['Add_amount']
          <
input type="text" name="add_amount_1" value="$config[add_amount_1]" size="5" maxlength="5" alt="float;;if" class="input" /> $config[currency_symbol]
         </
td>
      </
tr>
      <
tr>
        <
td>
          
$lang['Quantity']
          <
input type="text" name="quantity_2" value="$config[quantity_2]" size="5" maxlength="5" class="input" />
          &
nbsp;&nbsp;
          
$lang['Add_amount']
          <
input type="text" name="add_amount_2" value="$config[add_amount_2]" size="5" maxlength="5" alt="float;;if" class="input" /> $config[currency_symbol]
         </
td>
      </
tr>
      <!-- 
tab options -->



4. Edytuj core/orders.php
Znajdź:

$aForm changeMassTxt$aForm'H', Array( 'sComment''LenHNds' ) ); 


i zamień na:


$aForm 
changeMassTxt$aForm'H', Array( 'sComment''LenHNds' ) );
if( isset( 
$GLOBALS['config']['quantity_1'] ) && is_numeric$GLOBALS['config']['quantity_1'] ) && isset( $GLOBALS['config']['add_amount_1'] ) && is_numeric$GLOBALS['config']['add_amount_1'] ) &&  $_SESSION['iOrderQuantity'.LANGUAGE] >= $GLOBALS['config']['quantity_1'] && $_SESSION['iOrderQuantity'.LANGUAGE] < $GLOBALS['config']['quantity_2'] ){
            
$aShipping['fPrice'] = $aShipping['fPrice'] + $GLOBALS['config']['add_amount_1'];
          }
          if( isset( 
$GLOBALS['config']['quantity_2'] ) && is_numeric$GLOBALS['config']['quantity_2'] ) && isset( $GLOBALS['config']['add_amount_2'] ) && is_numeric$GLOBALS['config']['add_amount_2'] ) &&  $_SESSION['iOrderQuantity'.LANGUAGE] >= $GLOBALS['config']['quantity_2'] ){
            
$aShipping['fPrice'] = $aShipping['fPrice'] + $GLOBALS['config']['add_amount_2'];
          }

5. 4. Edytuj core/orders.php
Znajdź
:
[
php]$fShippingPaymentPrice = !empty( $sPriceModify ) ? generatePrice$aData['fPrice'], $sPriceModify ) : $aData['fPrice'];


i zamień na:


$fShippingPaymentPrice 
= !empty( $sPriceModify ) ? generatePrice$aData['fPrice'], $sPriceModify ) : $aData['fPrice'];
if( isset( 
$GLOBALS['config']['quantity_1'] ) && is_numeric$GLOBALS['config']['quantity_1'] ) && isset( $GLOBALS['config']['add_amount_1'] ) && is_numeric$GLOBALS['config']['add_amount_1'] ) &&  $_SESSION['iOrderQuantity'.LANGUAGE] >= $GLOBALS['config']['quantity_1'] && $_SESSION['iOrderQuantity'.LANGUAGE] < $GLOBALS['config']['quantity_2'] ){
            
$fShippingPaymentPrice $fShippingPaymentPrice $GLOBALS['config']['add_amount_1'];
          }
          if( isset( 
$GLOBALS['config']['quantity_2'] ) && is_numeric$GLOBALS['config']['quantity_2'] ) && isset( $GLOBALS['config']['add_amount_2'] ) && is_numeric$GLOBALS['config']['add_amount_2'] ) &&  $_SESSION['iOrderQuantity'.LANGUAGE] >= $GLOBALS['config']['quantity_2'] ){
            
$fShippingPaymentPrice $fShippingPaymentPrice $GLOBALS['config']['add_amount_2'];
          }



Nie testowałem tego dobrze, więc wszystko w Twoich rękach jeśli będziesz chciał skorzystać, czekam na opinię :)
Dodatkową kwotę, którą ustalisz w konfiguracji doda Ci do sposobu dostawy czyli np. Poczty Polskiej...

simlution.org

boboo

Avatar: boboo

2012-12-30 22:12

Proste rozwiązanie, sprawdzone na jednym dostawcy:
w /database/config/general.php dodaj:


$config
['aShipArray']=array(1=>25,3=>50,11=>75);


Znaczenie: od jednego wzwyż 25 zł, od trzech wzwyż 50 zł, od 11 wzwyż 75 zł itd. możesz dowolnie rozszerzać, ważne aby po kolei.
Następnie w /core/orders.php w funkcji throwPaymentsShipping nad linijką:


$aReturn
[$iKey] = $aPaymentShipping;


dodaj:


if($iType==2)
 foreach(
$GLOBALS['config']['aShipArray'] as $iQuantity=>$fPrice)
  if(
$iQuantity<=$_SESSION['iOrderQuantity'.LANGUAGE])
   
$aPaymentShipping['fPrice']=normalizePrice($fPrice);


następnie w funkcji throwPaymentShipping zamień:


if( isset( $aPaymentsShipping[$iId] ) )
 return 
$aPaymentsShipping[$iId];


na:


if(isset($aPaymentsShipping[$iId])){
 if(
$aPaymentsShipping[$iId]['iType']==2)
  foreach(
$GLOBALS['config']['aShipArray'] as $iQuantity=>$fPrice)
   if(
$iQuantity<=$_SESSION['iOrderQuantity'.LANGUAGE])
    
$aPaymentsShipping[$iId]['fPrice']=normalizePrice($fPrice);
 return 
$aPaymentsShipping[$iId];
}


I to wszystko.

http://www.kimla.de

selekcjoner

Avatar: selekcjoner

2012-12-30 22:15

Oczywiście punt 5 powinien być:
5. Edytuj core/orders.php
Znajdź:

$fShippingPaymentPrice = !empty( $sPriceModify ) ? generatePrice$aData['fPrice'], $sPriceModify ) : $aData['fPrice'];


i zamień na:


$fShippingPaymentPrice 
= !empty( $sPriceModify ) ? generatePrice$aData['fPrice'], $sPriceModify ) : $aData['fPrice'];
if( isset( 
$GLOBALS['config']['quantity_1'] ) && is_numeric$GLOBALS['config']['quantity_1'] ) && isset( $GLOBALS['config']['add_amount_1'] ) && is_numeric$GLOBALS['config']['add_amount_1'] ) &&  $_SESSION['iOrderQuantity'.LANGUAGE] >= $GLOBALS['config']['quantity_1'] && $_SESSION['iOrderQuantity'.LANGUAGE] < $GLOBALS['config']['quantity_2'] ){
            
$fShippingPaymentPrice $fShippingPaymentPrice $GLOBALS['config']['add_amount_1'];
          }
          if( isset( 
$GLOBALS['config']['quantity_2'] ) && is_numeric$GLOBALS['config']['quantity_2'] ) && isset( $GLOBALS['config']['add_amount_2'] ) && is_numeric$GLOBALS['config']['add_amount_2'] ) &&  $_SESSION['iOrderQuantity'.LANGUAGE] >= $GLOBALS['config']['quantity_2'] ){
            
$fShippingPaymentPrice $fShippingPaymentPrice $GLOBALS['config']['add_amount_2'];
          }



Nie domknęło mi znacznika php :/

simlution.org

fler

Avatar: fler

2013-01-01 22:43

A jest możliwość uzależnienia ceny dostawy dodatkowo od sumy zamówienia np. koszt dostawy 20zł dla zamówienia >= 600zł ,a dla zamówienia >= 1000zł koszt dostawy 10zł, zaś dla zamówień >= 1500 kosz wynosiłby 0zł.

http://www.zamurowany.pl

Do góry
o nas | kontakt