Strony:

Dodaj do koszyka ale tam nie przeskakuj

boboo

Avatar: boboo

2009-12-29 09:30

Po kliknięciu na "dodaj do koszyka" produkt jest do niego dodawany i automatycznie otwiera się strona z koszykiem. Dzięki wskazówkom i dokumentacji dodałem sobie wyświetlanie ceny ($fProductsSummary) w menu koszyka.
I dlatego po każdorazowym kliknięciu na "dodaj do koszyka" staje się denerwującym automatyczne wskakiwanie na stronę koszyka.
Czy da się to jakoś wyłączyć, aby po tym "dodaniu" koszyk powiększał swą zawartość i pokazywał w (fProductsSummary) ale kupujący/klikający pozostawał dalej na stronie z produktami?
Po dwudniowym RTFM poddałem się i dlatego zadaję owe powyższe pytanie.

» Quick.Cart v3.x

boboo

boboo

Avatar: boboo

2009-12-29 13:19

Żeby była jasność:
http://opensolution.org/Quick.Cart/forum/index.php?p=readTopic&nr=724
to już przerobiłem. Niestety problem w tym, że po kliknięciu na "dodaj do koszyka" strona na chwilę jest pusta (taki reload "w nicości" ;-) potem faktycznie jestem znowu na produktach, jednak wartość koszyka w jego menu nie zmienia się. Dopiero po kliknięciu bezpośrednio na koszyk pokazuje się jego strona i dopiero wtedy wartości w menu są poprawne.
Chodzi mi o takie smart-rozwiązanie, które działałoby jak guzik "przelicz" na stronie koszyka.

boboo

xGZx

Avatar: xGZx

2010-06-19 14:16

Witam, chciałbym uzyskać dokładnie to samo co opisał wyżej boboo, czyli żeby strona z zawartością koszyka nie pojawiała się po dodaniu produktu ale żeby zawartość koszyka się zmieniała.
Proszę o pomoc. Pozdrawiam.

boboo

Avatar: boboo

2010-06-20 21:46

Dzięki, że przypomniałeś temat.
Sprawa jest łatwiejsza, niż myślałem pół roku temu ;-)
Zmian naprawdę niewiele:
Znajdź w /templates/pages_default.tpl

<!-- BEGIN PRODUCTS_BASKET -->
<div class="basket"><a href="$aData[sBasketPage]&amp;iProductAdd=$aData[iProduct]&amp;iQuantity=1" rel="nofollow">$lang[Basket_add]</a>
</div>
<!-- END PRODUCTS_BASKET -->

i zrób, aby wyglądało tak:

<!-- BEGIN PRODUCTS_BASKET -->
<div class="basket">
<form method="post" action="" >
<input type="hidden" name="produkt" value="$aData[iProduct]" />
<input type="submit" class="dodaj" name="dodaj" value="$lang[Basket_add]" />
</form>
</div>
<!-- END PRODUCTS_BASKET -->

W default.css znajdź:
#products li .basket{...

i .basket zmień na: .dodaj
I poformatuj trochę, aby jakoś to wyglądało.

Teraz w /actions_client/p.php znajdź:

if( $config['basket_page'] == $iContent ){

i NAD nią wrzuć:
if (isset ($_POST['dodaj'])) {
$oOrder->addToBasket( $_POST['produkt'], 1 );
$_SESSION['iOrderQuantity'.LANGUAGE] = $_SESSION['iOrderQuantity'.LANGUAGE] + 1;
}

I to cała filozofia :-)

http://skupienie.kimla.de/?software-quickcart,106

boboo

Avatar: boboo

2010-06-20 21:51

Acha, to jest rozwiązanie na dodawanie z poziomu listy produktów.
Jak chcesz z poziomu pojedynczego widoku produktu, to odpowiednio "podreperuj" /templates/products_default.tpl
i dostosuj w default.css i p.php

http://skupienie.kimla.de/?software-quickcart,106

wy_borowy

Avatar: wy_borowy

2010-06-23 22:07

co znaczy odpowiednio podreperuj ?:P

wy_borowy

boboo

Avatar: boboo

2010-06-24 06:15

Co prawda product_default.tpl nie jest zepsuta ani uszkodzona, więc o reperowaniu nie może być mowy. Tego zwrotu użyłem mając na myśli "dostosuj/zmień".

http://skupienie.kimla.de/?software-quickcart,106

MirasZelazny

Avatar: MirasZelazny

2010-06-26 12:53

boboo - jak zwykle full profeska, ale mam tylko jedno pytanie:
jak zrobić żeby po naciśnięciu klawisza "dodaj do kosztyka" z listy towarów oczywiście, przeglądarka nie "skakała" do góry okna tylko pozostawała w miejscu w którym była?

Pzdr Miras

boboo

Avatar: boboo

2010-06-26 16:36

MirasieZelazny,
Ty to wiesz jak wykorzystać mój czas wolny :-D
:-)
w /templates/pages_default.tpl
u samej góry, zaraz pod:
<!-- BEGIN CONTAINER -->
wstaw:
<script type="text/javascript">
window.onload = function(){
if(window.name != "")
document.documentElement.scrollTop = window.name;
window.name = 0;
}
</script>

następnie w bloku (dalej ten sam template):
<!-- BEGIN PRODUCTS_BASKET -->
<div class="basket">
<form method="post" action="" >
<input type="hidden" name="produkt" value="$aData[iProduct]" />
<input type="submit" class="dodaj" name="dodaj" value="$lang[Basket_add]" />
</form>
</div>
<!-- END PRODUCTS_BASKET -->
zmień:
<input type="submit" class="dodaj" name="dodaj" value="$lang[Basket_add]" />
na:
<input type="submit" class="dodaj" name="dodaj" value="$lang[Basket_add]" onclick="window.name = document.documentElement.scrollTop;"/>

Niestety działa to tylko (aż) w IE(8- sprawdzone, inne IE- nie wiem), Firefox 3.5.9 (innych nie sprawdzałem), Opera 10.53 (innych nie sprawdzałem).

Na Chrome 4 (innych nie sprawdzałem) NIE działa!!!

Będę wdzięczny, jeśli ktoś da tu pomysł jak dorobić to do Chrome.

MirasZelazny

Avatar: MirasZelazny

2010-06-27 00:50

Rewelka - jakoś się przy najbliższej okazji rozliczymy :-)
Niestety będę musiał chyba go wyciąć, bo zauważyłem że w etykiecie koszyka aktualizowana jest wyłącznie ilość produktów w koszyku, ale nie jest aktualizowana jego wartość w PLNach.
Dopiero jak kliknę w klawisz koszyk to następuje aktualizacja jego wartości.
sprawdzałem na IE8 i Firefox 3.6.3
ale na razie WIELKIE DZIĘKI

Pzdr Miras

boboo

Avatar: boboo

2010-06-27 06:58

Uuups,
zapomniałem o tym.
No to zmień ten dodatek w /actions-client/p.php
if (isset ($_POST['dodaj'])) {
$oOrder->addToBasket( $_POST['produkt'], 1 );
$_SESSION['iOrderQuantity'.LANGUAGE] = $_SESSION['iOrderQuantity'.LANGUAGE] + 1;
}

na:
if (isset ($_POST['dodaj'])) {
$oOrder->addToBasket( $_POST['produkt'], 1 );
$oProduct =& Products::getInstance( );
$_SESSION['fOrderSummary'.LANGUAGE] += $oProduct->aProducts[$_POST['produkt']]['fPrice'];
$_SESSION['iOrderQuantity'.LANGUAGE] = $_SESSION['iOrderQuantity'.LANGUAGE] + 1;
}

MirasZelazny

Avatar: MirasZelazny

2010-06-27 20:12

Mucha nie siada - dzięki!

Pzdr Miras

boboo

Avatar: boboo

2010-06-28 10:58

A koszyk z listą produktów by się przydał?
http://www.kimla.de/tester/qcartbasket/
;-)

MirasZelazny

Avatar: MirasZelazny

2010-06-28 19:44

Dzięki Bogdan ale na razie nie - format sklepu który mam nie przewiduje go, na razie... :-)
natomiast będę chyba będę robił kolejny sklep dla klienta to tam będę miał go na uwadze.

Pzdr Miras

xGZx

Avatar: xGZx

2010-07-01 18:12

O nieźle wątek się rozkręcił, zapytałem i zapomniałem o tym... ja sobie trochę inaczej poradziłem z tym mianowicie wykorzystałem generateBasket( ) i header( 'Location: '....
ale dzieki za odpowiedz.
Pozdrawiam.

boboo

Avatar: boboo

2010-07-19 07:30

Był problem!!!
Po zastosowaniu pozycjonowania okna po klknięciu na "dodaj do koszyka" (window.onload = function(){ )
w opisany przeze mnie sposób (w pages_default) wystąpił problem w użytkowaniu lightboxa. Nie otwierał się, tylko po kliknięciu na miniaturkę otwierało się nowe okno/zakładka przeglądarki z dużym obrazkiem.
Na szczęście udało mi się wyprostować problem:
Tę funkcję window.onload () trzeba umieścić tylko w container.tpl i to NAD innymi odnośnikami do skryptów, które się tam znajdują!!!
Czyli gdzieś w 14-15 linijce.
I tylko tam.

http://skupienie.kimla.de/

hugobi

Avatar: hugobi

2010-09-09 20:44

Witam. Jestem nowy na tym forum i mam problem.
Przerobiłem kod wg wskazówek boboo i jest ok. Z poziomu pages_default.tpl wszystko działa jak należy. Próbowałem zmienić kod podobnie w products_defaud.tpl w <!-- BEGIN BASKET --> i lipa.
Po wybraniu "do koszyka" co prawda nie przechodzi do strony zawartości koszyka co jest ok. ale nie dodaje produktu do koszyka. Może wiecie jak to zrobić aby było ok.
Pozdrawiam.

moss

Avatar: moss

2011-08-06 15:24

Boboo, a myślisz że byłaby taka możliwość w jakiś prosty sposób, wstawić na stałe zawartość szablonu orders_basket.tpl, wstawić na stałe pod listą produktów z pages_default.tpl i żeby po kliknięciu w dodaj do koszyka, ten wstawiony basket się aktualizował na bieżąco?

moss

Avatar: moss

2011-08-06 15:27

Bo z tej opcji opisanej powyżej przez Ciebie, działa mi tylko dodawanie do koszyka bez przeniesienia, za to nie są aktualizowane ceny i ilości na bieżąco.

boboo

Avatar: boboo

2011-08-09 09:56

moss, a jaką wersję QC posiadasz?
ja na QC 3.x a teraz 4.x (Free) mam tak:
http://strzelectwo.kimla.de
(pobaw się, pododawaj do koszyka, pousuwaj itp.)

it-service.kimla.de

Strony:
Do góry
o nas | kontakt