Skrypt Ceneo

przem7

Avatar: przem7

2010-11-30 12:40

Witam

Ostatnio porownywarka Ceneo wprowadzila system prowizyjny.
Bylbym wdzieczny za naprowadzenie w jakim pliku Quick.Carta wkleic skrypt oraz na jakie parametry zamienic te obecne w skrypcie Ceneo ponizej, aby system zaczal dzialac.
Kod wyglada nastepujaco. Ostatni parametr jest tutaj nieistotny i typowy dla danego sklepu.

<script type="text/javascript"><!--
ceneo_client_email = 'pełny adres e-mail klienta';
ceneo_order_id = '123SK-23'
ceneo_amount = 160.99;
ceneo_shop_product_ids = '#234#w475xk#5402#';
//-->
</script>
<script type="text/javascript" src="https://ssl.ceneo.pl/transactions/track/v2/script.js?accountGuid=nr GUID"></script>

» Quick.Cart v3.x

przem7

Makaron

Avatar: Makaron

2010-12-01 17:19

Ale skrypt domyślnie ten gdzie trzeba wkleić? Na pewno pisze w dokumentacji, czy na stronie podsumowania zamówienia czy może na innej?

Mak-Web.pl - Modyfikacje skryptów Q.Cart i Q.Cms

przem7

Avatar: przem7

2010-12-02 14:35

@Makaron: polecenie Ceneo jest takie, ze skrypt nalezy umiescic na stronie podsumowania zamowienia, tak aby skrypt dostarczal wyzej wymienionych informacji (adres e-mail klienta, Id zamowienia, kwota zamowienia oraz id produktu).

Bylbym wdzieczny za wszelka pomoc: w ktorym pliku dodac skrypt oraz jakie zmienne wstawic w kod Ceneo.

przem7

Makaron

Avatar: Makaron

2010-12-02 16:15

No więc edytujesz sobie plik templates/orders_print.tpl i przed zakończeniem bloku ORDER_PRINT_HEAD wstawiasz taki kod:

<script type="text/javascript"><!--
ceneo_client_email '$aOrder[sEmail]';
ceneo_order_id '$aOrder[iOrder]'
ceneo_amount $aData[sOrderSummary];
ceneo_shop_product_ids '#234#w475xk#5402#';
//-->
</script>
<script type="text/javascript" src="https://ssl.ceneo.pl/transactions/track/v2/script.js?accountGuid=nr GUID"></script>


Musisz uzupełnić sobie tylko wartość ceneo_shop_product_ids swoim kluczem.

Mak-Web.pl - Modyfikacje skryptów Q.Cart i Q.Cms

przem7

Avatar: przem7

2010-12-02 16:47

Makaron: stokrotne dzieki.

Wydaje mi sie jednak ze w przypadku parametru ceneo_shop_product_ids trzeb jeszcze cos zmienic. Opis tego parametru przedstawia sie nastepujaco:
ceneo_shop_product_ids
parametr zawiera sklepowe identyfikatory produktów jakie zostały zamówione przez Klienta podczas transakcji. Każdy produkt musi być wyszczególniony separatorem &#8222;#&#8221;. Identyfikatory poszczególnych produktów występują tyle razy, ile zamówionych zostało sztuk. Parametr podawany jest w apostrofach jako ciąg znaków. Na końcu wartości parametru separator nie jest wymagany.

Ja to rozumiem nastepujaco: wszystkie Id produktow krote zostaly zamowione w danym zamowieniu (jesli liczba sztuk byla wieksza niz 1 to id bedzie sie powtarzac co sparatorze #).
Chyba, ze cos zle zrozumialem.

przem7

przem7

Avatar: przem7

2010-12-02 16:58

Sprawdzilem i tak jak sadzilem, wszystko poprawnie dziala oprocz ostatniej pozycji - ceneo_shop_product_ids.

Co zatem wpisac, aby skrypt generowal ID wszystkich produktow zamowionych w danym zamowieniu, oddzielonych znakami "#"? Chyba, ze - tak jak napisalem wczesniej - cos zle rozumiem w opisie tego parametru.

przem7

przem7

Avatar: przem7

2010-12-02 17:42

W ostatnia zmienna wpisalem nastepujacy paramert:

ceneo_shop_product_ids = '$lang['Id']';

System uznal kod za dobry, ale podejrzewal, ze nie tak to powinno wygladac. Makaron czy moglbym Cie jeszcze raz poprosic o pomoc?

przem7

przem7

Avatar: przem7

2010-12-06 11:11

Makaron: czy udalo Ci sie moze wpasc na pomysl jak rozwiazac problem tego ostatniego parametru (ceneo_shop_product_ids)?
A moze rozwiazanie ktore przedstawilem powyzej jest calkowicie poprawne?

Bylbym wdzieczny za pomoc

przem7

Makaron

Avatar: Makaron

2010-12-06 16:02

Nie jest poprawne, ponieważ trzeba tam wpisać ID wszystkich zamówionych produktów oddzielonych znakiem "#", tak jak zresztą wspomniałeś już.
Ok więc zrób jeszcze tak. Edytuj ten kod, który wrzucałeś do pliku templates/orders_print.tpl i zmień linię:

ceneo_shop_product_ids '#234#w475xk#5402#';


na:

ceneo_shop_product_ids '$aData[sProductsIds]';



Teraz edytuj plik core/orders.php funkcja listProducts() pod kodem:

    if( !isset( $sBlock ) )
      
$sBlock 'BASKET_';


dodaj:

$sProductsIds null;


Pod kodem:

$aData['sSummary'] = displayPricenormalizePrice$aData['fSummary'] ) );


Dodaj:

$sProductsIds .= $aData['iProduct'].'#';


Oraz pod kodem:

$aData['fProductsSummary'] = normalizePrice$this->fProductsSummary );


dodaj:

$aData['sProductsIds'] = $sProductsIds;



Powinno śmigać.

Mak-Web.pl - Modyfikacje skryptów Q.Cart i Q.Cms

przem7

Avatar: przem7

2010-12-06 23:20

Wielkie dzieki. Smiga w 99% :). Jedyna drobnostka ktorej jeszcze brakuje to brak znaku "#" przed id pierwszego produktu. Tak to teraz wyglada:

id1#id2 itd.

a powinno byc:
#id1#id2# itd

Czy moglbys udzielic jeszcze ostatniej rady, jak to poprawic?

przem7

przem7

Avatar: przem7

2010-12-06 23:31

ok, mysle, ze juz nie potrzeba pomocy.
Rozwiazanie bylo bardzo proste:

Linie kodu:
$sProductsIds .= $aData['iProduct'].'#';

Zamienilem na:
$sProductsIds .= '#'.$aData['iProduct'];

I gra pieknie, rowniez dlatego, ze znak '#' nie jest wymagany na koncu.

Ale popraw mnie jesli moja zmiana jest niepoprawna :).

przem7

Makaron

Avatar: Makaron

2010-12-07 09:24

Jest ok, nie przyjrzałem się.

Mak-Web.pl - Modyfikacje skryptów Q.Cart i Q.Cms

przem7

Avatar: przem7

2010-12-07 13:31

Makaron: niby wszystko ok, ale okazuje sie, ze skrypt nie jest jeszcze idealnie dostosowany do wymagan porownywarki, tj.

1) W aktualnej konfiguracji cena w pozycji ceneo_amount jest sumą kosztów produktu i przesyłki. W pozycji tej generować się powinna cena tylko produktu/produktów bez dodatkowych kosztów. To chyba nie bedzie skomplikowane, ale prosze o informacje jaki parametr wstawic w ceneo_amount, zamiast $aData[sOrderSummary];
2) Tutaj sprawa jest troche bardziej zlozona. Dla tych samych produktów kupionych kilkukrotnie tyle samo id powinno się generować. Np. #65#65#65#111, przy 4 zakupionych produktach, obecnie generuje sie nastepujacy ciag znakow #65#111.

Czy moglbym cie jeszcze raz prosic o pomoc? Ufam, ze ten watek w niedalekiej przyszlosci na pewno bedzie pomocny i co najwazniejsze - w 100% poprawny - dla wielu uzytkownikow Quick.Carta

przem7

przem7

Avatar: przem7

2010-12-07 14:17

Jesli chodzi o punkt pierwszy to sprawa byla prosta. Nalezalo zamienic
$aData[sOrderSummary] na $aData[sProductsSummary] w orders_print.tpl

Co do punktu drugiego, tak jak pisalem, poprosilbym jeszcze o pomoc.

przem7

przem7

Avatar: przem7

2010-12-08 16:41

Makaron: czy udalo Ci sie moze wymyslic rozwiazanie tego problemu z tym ostatnim parametrem skryptu (ceneo_shop_product_ids)?

Przypomne, ze chodzi o to, aby powstawal ciag numerow ID rozdzielonych znakiem '#' i aby skrypt uwzglednial rowniez przypadek gdy klient zakupil kilka sztuk tego samego produktu.
Np. #45#45#124 przy zakupie trzech przedmiotow, w tym dwoch tych samych.

Bylbym stokrotnie wdzieczny, bo to w sumie ostatnia przeszkoda w instalacji tego skryptu...

przem7

Makaron

Avatar: Makaron

2010-12-09 13:32

Zmień kod:

$sProductsIds .= '#'.$aData['iProduct'];


na:

    for( $i 0$i $aData['iQuantity']; $i++ )
    
$sProductsIds .= '#'.$aData['iProduct'];

Mak-Web.pl - Modyfikacje skryptów Q.Cart i Q.Cms

przem7

Avatar: przem7

2010-12-13 15:28

Skrypt zostal zaakceptowany i dziala jak w zegarku. Stokrotne dzieki jeszcze raz.

przem7

Do góry
o nas | kontakt