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 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 2012-12-30 20:41
hmm... A możesz mi pomóc to zrobić?
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 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 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 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