Kupiłem wtyczkę Product page content blocks i testuje. Zamówienie z dzisiaj na mój adres mailowy.

Czy byłaby możliwość edycji kodu, lub podpowiedzi jak uruchomić shortcode wygenerowany przy pomocy pluginu Ap ShortCode Manage (https://www.leotheme.com/blog/updates/714-guide-to-add-shortcodes-in-ap-pagebuilder-module.html).

W dokumentacji znalazłem info że domyślnie obsługa shortcodów uruchomiona jest dla kliku pól takich jak: Product Description, Product Short Description, Category Description, CMS Content.

Wydaje mi się że wystarczy dodać obsługę pól dostępnych we wtyczce Prestashop Product page content blocks w pliku _ProductController.php znajdującym się w folderze modules/appagebuilder/override/controllers/front


W skrócie po wstawieniu shortcode do pola dodanego przez wtyczkę, nie pobiera mi tego co potrzebuje tylko wyświetla tekst shortcode.



Dzień dobry,
Moduł uruchamiany jest przez hooki - nie jest on dołączany do productControllera. 
Dlatego moim zdaniem zmiany wymaga funkcja uruchamiająca hooki. tj Hook::exec
na jego końcu jest kod return $output

musimy poprzedzić go kodem inicjującym shortcode dla treści wyświetlanej przez hooki, 
tj kod powinien wyglądać tak:
if ((bool)Module::isEnabled('appagebuilder')) {
$appagebuilder = Module::getInstanceByName('appagebuilder');
$output = appagebuilder->buildShortCode($output);
}
return $output;

 

 Mam problem z modułem google merchant center. Podczas generowania feedu moduł pobiera również produkty, które są nieaktywne w sklepie. Co może być przyczyną? Drugi problem dotyczy kategorii google. i wybraniu opcji "synchronizuj" nadal nie widnieją wybrane kategorie. Ile czasu może trwać ta aktualizacja? Będę wdzięczny za pomoc.


Dzień dobry
"synchronizacja" polega na pobraniu najnowszego pliku z "kategoriami google" ze stron google. Plik zostaje zapisany w katalogu z modułem i wtedy możemy przystąpić do parowania kategorii. "Synchronizacja" w żaden sposób nie łączy automatycznie kategorii w sklepie z kategoriami w google. Drzewo kategorii każdego sklepu jest inne, kategorie mają swoje własne nazwy i całej procedury nie można w żaden sposób zautomatyzować.

Kiedy po kliknięciu w "synchronizuj" pobierze się plik z kategoriami google to pojawi się informacja że np. plik pl-pl.txt istnieje
jak na video: https://drive.google.com/file/d/1hATWFdr-myT6480dk-Q3U8Tk4-OBinMF/view?usp=drivesdk 

kiedy drzewo kategorii z google zostało pobrano (i przy danym języku wyświetla się informacja że plik pl-pl.txt istnieje) to klikamy w button "parowania kategorii".
po kliknięciu w ten button otworzy się okno popup gdzie możemy powiązać kategorie ze sklepu z kategoriami z drzewa google: https://drive.google.com/file/d/1YudYANnGVlZRhJj6RpE36VwCBWmP066q/view?usp=drivesdk 


co do eksportu produktów które są wyłączone.
czy w toku konfiguracji formularza eksportu została wybrana opcja, która wyeksportuje "tylko aktywne produkty" ?

chodzi o tę opcję: 


 (domyślnie włączony jest eksport wszystkich produktów) 

 Mam pytanie o wtyczkę Prestashop Seo Redirects 301, 302, 303. Czy ona idealnie nadała by się robienia przekierowań jeśli produkt jest już nie aktywny lub usunięty? Oraz mam pytanie czy to jest natywny mechanizm w silniku presty ze po podaniu samego id w url przekierwouje na produkt z danym id ale juz z pełnym url?


Dzień dobry,

Czy ona idealnie nadała by się robienia przekierowań jeśli produkt jest już nie aktywny lub usunięty?

Tak, w module jest opcja która pozwala na wykonanie przekierowania dla takich produktów, np. w przypadku gdy produkt nie jest aktywny:
- mamy możliwość przekierowania strony takiego produktu np. na stronę głównej kategorii tego produktu lub na stronę główną, 
jeżeli produktu już nie ma w sklepie (został usunięty) to w takim przypadku możemy stronę przekierować na "główną" stronę sklepu
oprócz tego jest tam pare innych funkcji które towarzyszą identyfikacji wyłączonych/usuniętych produktów (np możliwośc zdefiniowana typu przekierowania, wykluczeń itp).


Oraz mam pytanie czy to jest natywny mechanizm w silniku presty ze po podaniu samego id w url przekierwouje na produkt z danym id ale juz z pełnym url?

Za tę funkcję odpowiedzialny jest tzw. canonical redirection, który jest standardowo dostępnym mechanizmem w prestashop.
Jest to funkcja w prestashop, która znajduje się w frontController.php (classes/controllers/front/FrontController.php) i jest ona uruchamiana w sytuacji gdy adres url w przegląarce nie odpowiada temu który jest zdefiniowany w polu "friendly url" danego produktu/kategorii/strony cms itp: 



    protected function canonicalRedirection($canonical_url = '')
    {
        if (!$canonical_url || !Configuration::get('PS_CANONICAL_REDIRECT') || strtoupper($_SERVER['REQUEST_METHOD']) != 'GET') {
            return;
        }

        $canonical_url = preg_replace('/#.*$/', '', $canonical_url);

        $match_url = rawurldecode(Tools::getCurrentUrlProtocolPrefix() . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
        if (!preg_match('/^' . Tools::pRegexp(rawurldecode($canonical_url), '/') . '([&?].*)?$/', $match_url)) {
            $params = [];
            $url_details = parse_url($canonical_url);

            if (!empty($url_details['query'])) {
                parse_str($url_details['query'], $query);
                foreach ($query as $key => $value) {
                    $params[Tools::safeOutput($key)] = Tools::safeOutput($value);
                }
            }
            $excluded_key = ['isolang', 'id_lang', 'controller', 'fc', 'id_product', 'id_category', 'id_manufacturer', 'id_supplier', 'id_cms'];
            $excluded_key = array_merge($excluded_key, $this->redirectionExtraExcludedKeys);
            foreach ($_GET as $key => $value) {
                if (!in_array($key, $excluded_key) && Validate::isUrl($key) && Validate::isUrl($value)) {
                    $params[Tools::safeOutput($key)] = Tools::safeOutput($value);
                }
            }

            $str_params = http_build_query($params, '', '&');
            if (!empty($str_params)) {
                $final_url = preg_replace('/^([^?]*)?.*$/', '$1', $canonical_url) . '?' . $str_params;
            } else {
                $final_url = preg_replace('/^([^?]*)?.*$/', '$1', $canonical_url);
            }

            // Don't send any cookie
            Context::getContext()->cookie->disallowWriting();
            if (defined('_PS_MODE_DEV_') && _PS_MODE_DEV_ && $_SERVER['REQUEST_URI'] != __PS_BASE_URI__) {
                die('[Debug] This page has moved<br />Please use the following URL instead: <a href="' . $final_url . '">' . $final_url . '</a>');
            }

            $redirect_type = Configuration::get('PS_CANONICAL_REDIRECT') == 2 ? '301' : '302';
            header('HTTP/1.0 ' . $redirect_type . ' Moved');
            header('Cache-Control: no-cache');
            Tools::redirectLink($final_url);
        }
    }


funkcję kanonicznego przekierowania możemy wyłączyć w zapleczu sklepu.
w ustawieniach "seo & url" (preferencje > ruch / preferences > traffic) jest opcja: https://i.imgur.com/NENQ2Fk.png - możemy ją tam włączyć / wyłączyć.

 Zakładki produktu pro - moduł nie działa poprawnie. Nie mogę dodać zakładek. Po żekomym utworzeniu nic się nie pokazuje. Kompletnie zero.




Dzień dobry,
W trakcie tworzenia nowej zakładki - domyślnie - nie jest włączone żadne powiązanie zakładki z produktem, nawet tym, na którego stronie edycji znajdują się Państwo.
To co trzeba by było zrobić to powiązać utworzoną zakładkę z produktem.

jak to zrobić?
można to zrobić na dwa sposoby.

Pierwszy - podczas tworzenia zakładki
podczas tworzenia zakładki mamy możliwość aktywacji powiązań zakładki z produktem na podstawie kilku kryteriów.
po prostu tworząc zakładkę - aktywujemy oczekiwane kryteria (np. pokaż zakładkę na stronach produktów danej kategorii, lub pokaż zakładkę na stronach konkretnych produktów): screen: https://i.imgur.com/tS245zh.png 

Drugi - dotyczy zakładek wcześniej utworzonych
to ma zastosowanie dla opisanego przez Pana problemu. Jeżeli zakładka została utworzona ale nie została powiazana z żadnym produktem to:
- wracamy na stronę główną modułu na stronie edycji produktu
- jest tam sekcja "wszystkie utworzone zakładki"
- klikamy tam w button "załaduj wszystkie zakładki": https://i.imgur.com/beGB0K7.png 
- moduł załaduje kompletną listę zakładek utworzonych w sklepie
- następnie przeciągamy wybraną zakładkę do pola "zakładki tego produktu" jak na video: https://drive.google.com/file/d/1p-s-5kF0Yr7yXqkqVBWuhrX8qXBcne7S/view?usp=drivesdk 

od tego momentu ta zakładka będzie powiązana z edytowanym produktem, i możemy wejść w ustawienia tej zakładki i edytować bardziej szczegółowe parametry.


gdyby problem był inny od tego opisanego powyżej - poproszę o wiadomość zwrotną, będziemy działać dalej

pozdrawiam,
miłosz

Dzień dobry, Kupiłem moduł do pokazywania kombinacji na stronie produktu. Jest super, ale nie potrafię go wstawić tam gdzie bym chciał. Chciałbym żeby znajdował się pod przyciskami do portali społecznościowych czyli tak jak na zdjęciu numer 14 z Waszej strony produktu. Możecie mi powiedzieć jak to ustawić? Z góry dzięki. Presta 1.7.6.1. Pozdrawiam


Witam,
14 zdjęcie, o ile oglądaliśmy te same, to miejsce pod buttonem "add to cart" na stronie produktu.
Cała procedura przeniesienia modułu we wskazane miejsce odbywa się w zapleczu przy wykorzystaniu standardowo dostępnych funkcji.
Kroki, które należy wykonać to:
- idziemy do wygląd > pozycje
- odszukujemy tam pozycji displayFooterProduct oraz displayProductExtraContent
- przy module na obu listach klikamy w "unhook": https://i.imgur.com/auWygA1.png  (czynność powtarzamy dla obu wcześniej wspomnianych pozycji)
- następnie klikamy w button "transplant a module": https://i.imgur.com/FK2wlBj.png 
- zostaniemy przekierowani do strony gdzie możemy zarządzać pozycjami modułu w bardziej zaawansowany sposób - w tym "przepinać" go do innych pozycji
- z pierwszego pola "Moduł" wybieramy "tabela kombianacji"
- z drugiego pola "Transplant to" wybieramy displayProductAdditionalInfo (opcjonalnie displayProductActions - to zależy od szablonu)

po zapisaniu zmian moduł zacznie pojawiać się w okolicy buttona "add to cart",

można jeszcze manipulować jego pozycją np. przenosząc moduł na samą górę listy modułów do której został podpięty (displayProductAdditionalInfo / displayProductActions) 




mam problem z plikami csv wygenerowanymi przez moduł , z wyeksportowanymi produktami

Otóż w zakładka short description oraz Description
|"Short description (Summary)"|Description|
arkusz kalkulacyjny w excelu oraz w open office źle interpretuje
znacznik html typu <p> i wyświetla w pliku csv opisy ze znacznikami od
nowej linii (tak jak na załączonych zrzutach).

Co należy zrobić, aby plik csv po otwarciu wyświetlał się poprawnie?
Z góry dziękuję za wszelkie wskazówki.





Dzień dobry,
Obawiam się, że to nie jest problem z modułem "export products pro" tylko sposób w jaki działa Excel i inne programy nieprzystosowane do działania z tak specyficznym plikiem. Ale bez obaw - istnieją rozwiązania.
Najpierw krótko opiszę na czym polega niekompatybilność i dlaczego odradzałbym korzystanie z excela.
  • działania z plikami kodowanymi w formacie UTF-8
    Format obsługiwany przez prestashop w zapleczu - wyeksportowane pliki csv muszą być zapisane przy wykorzystaniu tego kodowania. W przeciwnym wypadku zaimportowane dane nie będą miały znaków specjalnych (ąęźćłż itp). Gdyby otworzyć plik w excelu i zapisać go po zmianach, to nie zostanie on zapisany w formacie UTF-8 i po zaimportowaniu go do sklepu - nie będą działać polskie znakie.
  • działanie z plikami z dużymi polami opisowymi
    W PrestaShop produkty mają krótki i długi opis. Bardzo często opisy są bardzo długie, zwłaszcza- jeżeli eksportowany jest opis z kodem html. Niektóre z wersji excela podczas zapisu takiego pliku mogą:
    - uciąć za długi ciąg znaków (i całkowicie go usunąć)
    - podzielić opis na kilka innych mniejszych porcji niszcząc strukturę pliku
    po imporcie takiego pliku : produkty nie będą identyfikowane poprawnie (zniszczenie struktury pliku)
  • działanie z plikami mającymi pola typu multiline
    opis produktów w prestashop bardzo często jest "rozstrzelony" zbudowany z kilku linii (treść nie jest pisana tzw, "ciurkiem" tylko są w niej znaki nowej linii). Excel nie radzi sobie dobrze z takimi polami co prowadzi do rozstrzelenia pliku.
    podobnie jak wyżej : produkty nie będą identyfikowane poprawnie (zniszczenie struktury pliku)

Jak zatem rozwiązać problem edycji pliku?
Musimy korzystać z programu, który:
- wspiera format UTF-8 (zarówno odczyt jak i zapis)
- działa poprawnie z polami z opisem, które mają wiele znaków
- działa poprawnie z polami opisowymi zbudowanymi z wielu linii (support "multiline")

jakie to programy?
- z popularniejszych darmowych rozwiązań sugeruję korzystać z pakietu libre office calc https://www.libreoffice.org/
- csv buddy (darmowy freeware): http://code.jeanlalonde.ca/csvbuddy/ 

przykład zastosowania:

https://drive.google.com/file/d/1qQSTaZR68Ti_o6lXAumrTmz2Ash0eRY8/view?usp=drivesdk  

Tu pobierzesz darmowy moduł ceneo dla prestashop 1.7.


Ceneo posiada swój własny moduł prestashop, ale jest on przeznaczony wyłacznie dla sklepów w wersji 1.5 oraz 1.6. Niestety - oficjalny moduł nie działa z nowymi wersjami prestashop 1.7.x

Postanowiliśmy zmodyfikować go w taki sposób, aby działał z najnowszymi wersjami. Moduł publikujemy całkowicie za darmo i jest on do pobrania tu: