Skocz do zawartości


Zdjęcie

Przeniesienie modułu - Problem


Najlepsza odpowiedź design4VIP , 10 styczeń 2017 - 18:56

Raczej tak:

public function hookCrosssellinghook($params) 

to to jedno, a drugie to to, ze nie ma mozliwosci zeby to zadzialao, bo co niby wyswietli w tymm hook ten zaimplementowaany szabon modulu? nie ma zadnych zmiennych.... czyli juz skazanie na wywalenie dziesiatkow bledow przez DEV_MODE ;)
 
inna sprawa, przegladnalem z ciekawosci ten konkretny modul i ten ma juz przypisany hook koszyka... hookshoppingCart, po cholere kombinowac? ma juz wybierane trsci do wysweitlenia, skierowane konretne zmienne do szablonu.... 
 
i nawet we wspomnianym pliku (w skorce default) jest umieszczony i dziala (do sprawdzenia na mojej stronie DEMO TUTAJ jako 'we recommended' np. po dodaniu do koszyka czarnej 'Blouse') :
 

<div id="HOOK_SHOPPING_CART">{$HOOK_SHOPPING_CART}</div>

pytanie tylko do @PrestaBegginer:
1. w konfiguracji modulu masz ustawiona ilsoc do wysweitlania?
2. w dodawanych produktach do koszyka na pewno masz produkty z grupy "klienci zakupili rowniez..." ?

Przejdź do postu


  • Zaloguj się, aby dodać odpowiedź
18 odpowiedzi w tym temacie

#1 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 10 styczeń 2017 - 14:31

Witam,

 

Mam problem z przeniesieniem darmowego modułu "crossselling". Defaultowo wyświetla się od pod każdym produktem, chciałbym zrobić tak, aby wyświetlał się również w zakładce koszyka ("zamowienie"), pod podsumowaniem zakupów.

 

W tym celu stworzyłem nowego hooka i umieszczam go w odpowiednim miejscu w pliku shopping-cart.tpl :

<div id="crosssellinghook">{hook h='crosssellinghook'}</div>

Następnie w pliku crossselling.php do funkcji install() dodałem 

$this->registerHook('shoppingCart') ||

ostatecznie wygląda ona w ten sposób:

 

 public function install()
    {
        if (!parent::install() ||
            !$this->registerHook('productFooter') ||
            !$this->registerHook('header') ||
!$this->registerHook('crosssellinghook') ||
            !$this->registerHook('shoppingCart') ||
            !$this->registerHook('actionOrderStatusPostUpdate') ||
            !Configuration::updateValue('CROSSSELLING_DISPLAY_PRICE', 0) ||
            !Configuration::updateValue('CROSSSELLING_NBR', 10)
        ) {
            return false;
        }
        $this->_clearCache('crossselling.tpl');


        return true;
    }

Kolejnym krokiem było dodanie na samym dole tego samego pliku funkcji:

 

public function crosssellinghook($params) 
{ 
 return $this->display(__FILE__, 'crossselling.tpl') ;
}

Hook się pojawił, wraz z zaczepionym modułem, aczkolwiek nie wyświetla się we wskazanym miejscu. Co może być tego powodem? 

 

Próbowałem również zwracać np 

return "hahaha"; 

co również nie dawało żadnego efektu, czy coś pominąłem? Ktoś coś? :)

 

Presta 1.6.1.4

 

 

 



#2 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 10 styczeń 2017 - 17:39

robilem cos podobnego dla produtow powiazanych (OPIS I DEMO TUTAJ), ale troche czasu minelo zebym pamietal wszystkie szczegoly. w kazdym razie na pewno w samym module koszyka trzeba zdefiniowac zmienne produktow do wyswietlenia (poprzez override), bo w tym "rejonie" modul koszyka musial odczytac z produktow zakupionych te z nimi powiazane.... tez dla samego koszyka trzeba bylo utworzyc w module blockcart osobny szablon slidera produktow powiazanych oraz polaczyc go z json koszyka, zeby w momencie usuniecia z koszyka danego produkto jego powiazane tez zostaly usuniete. niby nie jest to skomplikowane ale troche kombinacji wymagalo


design4VIP z innej strony...


#3 ircykk

ircykk

    Administrator

  • Administrators
  • 4997 postów
  • PrestaShop:1.5, 1.6

Napisano 10 styczeń 2017 - 18:19

Raczej tak:

public function hookCrosssellinghook($params) 


#4 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 10 styczeń 2017 - 18:56   Najlepsza odpowiedź

Raczej tak:

public function hookCrosssellinghook($params) 

to to jedno, a drugie to to, ze nie ma mozliwosci zeby to zadzialao, bo co niby wyswietli w tymm hook ten zaimplementowaany szabon modulu? nie ma zadnych zmiennych.... czyli juz skazanie na wywalenie dziesiatkow bledow przez DEV_MODE ;)
 
inna sprawa, przegladnalem z ciekawosci ten konkretny modul i ten ma juz przypisany hook koszyka... hookshoppingCart, po cholere kombinowac? ma juz wybierane trsci do wysweitlenia, skierowane konretne zmienne do szablonu.... 
 
i nawet we wspomnianym pliku (w skorce default) jest umieszczony i dziala (do sprawdzenia na mojej stronie DEMO TUTAJ jako 'we recommended' np. po dodaniu do koszyka czarnej 'Blouse') :
 

<div id="HOOK_SHOPPING_CART">{$HOOK_SHOPPING_CART}</div>

pytanie tylko do @PrestaBegginer:
1. w konfiguracji modulu masz ustawiona ilsoc do wysweitlania?
2. w dodawanych produktach do koszyka na pewno masz produkty z grupy "klienci zakupili rowniez..." ?


design4VIP z innej strony...


#5 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 11 styczeń 2017 - 08:49

Dzięki za odpowiedzi. :)

 

Zmieniłem nazwę funkcji tak jak pisał @ircykk , niestety nic się nie wyświetla(nawet ciąg znaków).

 

@design4VIP

HOOK_SHOPPING_CART umieszczony jest tam od samego początku, i też się nie wyświetla, może jest to wina tego, że nie korzystam z defaultowej skórki? Końcówka mojego pliku:

<div id="HOOK_SHOPPING_CART">{$HOOK_SHOPPING_CART}</div>
<p class="cart_navigation clearfix">
{if !$opc}
<a  href="{if $back}{$link->getPageLink('order', true, NULL, 'step=1&amp;back={$back}')|escape:'html':'UTF-8'}{else}{$link->getPageLink('order', true, NULL, 'step=1')|escape:'html':'UTF-8'}{/if}" class="pull-right btn btn-default standard-checkout" title="{l s='Proceed to checkout'}">
{l s='Proceed to checkout'}
</a>
{/if}
<a href="{if (isset($smarty.server.HTTP_REFERER) && ($smarty.server.HTTP_REFERER == $link->getPageLink('order', true) || $smarty.server.HTTP_REFERER == $link->getPageLink('order-opc', true) || strstr($smarty.server.HTTP_REFERER, 'step='))) || !isset($smarty.server.HTTP_REFERER)}{$link->getPageLink('index')}{else}{$smarty.server.HTTP_REFERER|escape:'html':'UTF-8'|secureReferrer}{/if}" class="pull-left btn btn-default" title="{l s='Continue shopping'}">
{l s='Continue shopping'}
</a>
</p>
<div class="clear"></div>
<div class="cart_navigation_extra">
<div id="HOOK_SHOPPING_CART_EXTRA">{if isset($HOOK_SHOPPING_CART_EXTRA)}{$HOOK_SHOPPING_CART_EXTRA}{/if}</div>
</div>

{strip}
{addJsDef deliveryAddress=$cart->id_address_delivery|intval}
{addJsDefL name=txtProduct}{l s='product' js=1}{/addJsDefL}
{addJsDefL name=txtProducts}{l s='products' js=1}{/addJsDefL}
{/strip}
{/if}

<div id="crosssellinghook">{hook h='crosssellinghook'}</div>

1. W konfiguracji modułu mam ustawioną liczbę 10 elementów do wyświetlania.

2. Tak, jest.

 

Link do sklepu(może wizualizacja pomoże ;)):

SKLEP

Powiązany produkt znajduje się np. w produkcie "Solar 2017". 

 

Pozdrawiam :)



#6 sower

sower

    Guru

  • Moderatorzy
  • 4208 postów
  • Location3miasto
  • PrestaShop:1.2, 1.3, 1.4, 1.5, 1.6

Napisano 11 styczeń 2017 - 15:50

tak czytam i czytam i nie bardzo rozumiem

standardowy moduł crossselling  domyślnie wyświetla produkty na hooku hookshoppingCart , który jest zaimplementowany w większości templetek.

 

Więc skoro są powiązane w zamówieniach produkty do dodanego do koszyka produktu to one się wyświetlą - of kors jeżeli moduł jest zainstalowany i działa poprawnie


468x60.jpg

468x60_pl.gif

 

QUICK PRESTA SUPPORT:  gg 45116037
SKLEPY  MODUŁY INTEGRACJE  POMOC TECHNICZNA


#7 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 11 styczeń 2017 - 17:01

a jeszcze zacznijmy od tego, skad wiesz, ze akurat ten produkt ma "crossseling" ? jakie np. produkty powinny byc w nim zawarte? bo juz na karcie produktu powinna byc grupa (slider) tych produktow. zobacz na moim DEMO na samym dole juz masz, u ciebie pustka... 


design4VIP z innej strony...


#8 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 12 styczeń 2017 - 08:53

Faktycznie... pomyliłem ten moduł z modułem "powiązane produkty"... mhm... :oops:  W takim razie moje pytanie na teraz to, czy mam możliwość manualnego dodania produktów do " Klienci, którzy zakupili ten produkt kupili również", jeśli tak to jak ;)

 

 

 

Dzięki Panowie! ;)

 

edit:

 

Z cyklu ciekawostki:

Hook który wcześniej zrobiłem też zaczął się wyświetlać :)



#9 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 13 styczeń 2017 - 16:14

Faktycznie... pomyliłem ten moduł z modułem "powiązane produkty"... mhm... :oops:  W takim razie moje pytanie na teraz to, czy mam możliwość manualnego dodania produktów do " Klienci, którzy zakupili ten produkt kupili również", jeśli tak to jak ;)

 

z powiazanymmi nie jest tak hop. tak jak pisalem w pierwszym poscie (bo tak sie domyslalem, ze o to chodzi. czesto te bloki sa mylone) to tutaj juz trzeba by troche kombinacji w modulach i kontrolerach, a crosseling to juz sam naglowek bloku (modulu) mowi jak wysweitlic te przedmioty.... ktos musi zrobic zakupy z wiecej niz jednym przedmiotem w koszyku. modul odczytuje te produkty z tabeli FROM '._DB_PREFIX_.'order_detail', czyli ze szczegolow zamowienia. 


design4VIP z innej strony...


#10 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 16 styczeń 2017 - 08:53

z powiazanymmi nie jest tak hop. tak jak pisalem w pierwszym poscie (bo tak sie domyslalem, ze o to chodzi. czesto te bloki sa mylone) to tutaj juz trzeba by troche kombinacji w modulach i kontrolerach, a crosseling to juz sam naglowek bloku (modulu) mowi jak wysweitlic te przedmioty.... ktos musi zrobic zakupy z wiecej niz jednym przedmiotem w koszyku. modul odczytuje te produkty z tabeli FROM '._DB_PREFIX_.'order_detail', czyli ze szczegolow zamowienia. 

 

Coś nie mogę znaleźć tej tabeli, albo jej nie mam :P

 

Korzystam z takiego zapytania i pokrewnych(różne nazwy tabeli):

SELECT * FROM `._DB_PREFIX_.order_product` GROUP BY `order_id`

Table 'pearlbrand_4.._DB_PREFIX_.order_product' doesn't exist



#11 sower

sower

    Guru

  • Moderatorzy
  • 4208 postów
  • Location3miasto
  • PrestaShop:1.2, 1.3, 1.4, 1.5, 1.6

Napisano 16 styczeń 2017 - 11:55

a skąd ty wziąłeś taką tabelę order_product ?

 

przeczytaj dobrze post który zacytowałeś


468x60.jpg

468x60_pl.gif

 

QUICK PRESTA SUPPORT:  gg 45116037
SKLEPY  MODUŁY INTEGRACJE  POMOC TECHNICZNA


#12 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 17 styczeń 2017 - 08:19

Generalnie sprawdzałem też order_details, ale nie znajduje takiej tabeli, a co do order_product to z internetu :)

 SELECT * FROM `._DB_PREFIX_.order_details` GROUP BY `order_id`


#13 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 17 styczeń 2017 - 15:32

a gdzie umieszasz ten SELECT? w samym phpmyadmin? 

 

pamietaj, ze _DB_PREFIX_ to twoj przedrostek nazw tabel w bazie (w standardzie to jest 'ps')


design4VIP z innej strony...


#14 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 18 styczeń 2017 - 08:58

Odnalezione. Dało by radę wskazać modułowi w DB, które produkty ma połączyć ze sobą przez crosselling?  Mam na myśli żeby  w kolumnie odpowiedzialnej za pobieranie do crosselingu zaznaczyć zero-jedynkowo, czy produkt ma być pobierany, czy nie. Następnie ustawić takie samo ID_produktów, które mają być pobierane żeby połączyć je w 1 crosselling? Trochę już fantazjuje :P



#15 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 18 styczeń 2017 - 16:23

fantazja to jedno, ale to co napisalem powyzej to dopiero jest fantazyjne.... ze cyli co z czym ma sie polaczyc? co za zero-jedynkowo? czyli, ze o co chodzi? mozecos prosciej bez fantazji? no i drugie pytanie, bo znowu sie zgubilem. o jakie polaczenia dkladnie chodzi? o crosseling (klienci kupili rowniez) czy akcesoria (produkty powiazane) ? 


design4VIP z innej strony...


#16 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 24 styczeń 2017 - 09:16

Generalnie chodziło mi o to żeby "pomóc" crossellingowi "crossować" produkty między sobą. Zaznaczając(jeśli można) w bazie danych który produkt z którym ma być "scrossowany". 



#17 endriu107

endriu107

    Zaawansowany

  • Members
  • PipPipPip
  • 978 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 24 styczeń 2017 - 12:14

Chcesz zrobić tak że jak przypiszesz produkt A do B to żeby produkt B miał automatycznie przypisany produkt A?

#18 PrestaBegginer

PrestaBegginer

    Początkujący

  • Members
  • Pip
  • 8 postów

Napisano 24 styczeń 2017 - 13:10

Crosselling przypisuje produkty do siebie tylko w momencie kiedy klient zakupi więcej niż 1 produkt. (Odbywa się to poniekąd automatycznie)

Ja chciałbym robić to manualnie, czyli wybrać sobie dowolny produkt A i  dowolny produkt B i je scrossować. 

 

@endriu107

Tak jak piszesz działa crosselling, ale chodzi o to żeby móc ustawiać co z czym ręcznie.



#19 design4VIP

design4VIP

    Zaawansowany

  • Members
  • PipPipPip
  • 344 postów
  • PrestaShop:1.4, 1.5, 1.6

Napisano 24 styczeń 2017 - 17:14

no to nie crosseling tylko produkty powiazane (accesories). 


design4VIP z innej strony...





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych

Hosting zapewnia: Hekko.pl