edycja szablonu maili Prestashop

edycja szablonu maili Prestashop

Jest to jak najbardziej możliwe. I nie wymaga specjalnej wiedzy programistycznej. Wręcz ogranicza się do edycji tekstu jak w przypadku np. opisu produktów.

Wystarczy także samo zalogowanie się do zaplecza sklepu. Nie są nam potrzebne np. dostępy FTP (chyba, że w celu wykonania kopii bezpieczeństwa plików).

Poniżej krótki tutorial jak tego dokonać.

Na wstępie wymagana jest formułka z naszej strony 🙂

Przed przystąpieniem do zmieniania zawartości e-mailów lub statusów wykonaj kopię bezpieczeństwa bazy danych sklepu i plików w folderze /mails/pl (jeśli Twój język to polski) lub /mails/SYMBOL-INNEGO-JĘZYKA (w zależności od Twojego języka który zmieniasz).

Zajmie Ci to 5 minut, a unikniesz wielu nieprzyjemności.. Dla przypomnienia kopię bezpieczeństwa bazy wykonasz poprzez:

Zaawansowane » Kopia bezpieczeństwa DB » (przycisk) Przeczytałem ostrzeżenie – utwórz nową kopię zapasową

Natomiast pliki skopiujesz poprzez FTP.

Gdzie edytujemy e-maile?

Wchodzimy w sekcję:

Lokalizacja » Tłumaczenia » Modyfikuj tłumaczenia

Następnie wybieramy opcje tak jak na obrazku poniżej tj

Rodzaj tłumaczenia: Tłumaczenie wiadomości e-mail

Wybierz swój szablon: Główne (nie wybrany żaden szablon)

-> tytułem komentarza w zależności od szablonu możemy mieć odmienne zawartości emaili. Należy wówczas skopiować katalogi /mails/pl do odp. katalogów w szablonach (/templates/{nazwa-naszego-szablonu})

Wybierz swój język: Polski (lub inny jeśli chcemy przeedytować zawartość maili w innym języku)

edycja-zawartosci-emaili-prestashop-1

Po czym klikamy w to łącze:

Następnie znajdujemy odpowiadający danemu statusowi szablon maila wchodząc (np. na nowej zakładce przeglądarki WWW) w sekcję „Statusy„:

Wybieramy szablon maila który chcemy przeedytować np. order_conf i dokonujemy edycji:

zródło: http://prestashopkrakow.pl/

tworzenie linków prestashop

tworzenie linków prestashop

Linki w plikach szablonów Smarty (rozszerzenie .tpl) tworzymy używając funkcji getPageLink()

Czyli np.

1
<a href="{$link->getPageLink('contact-form', true)|escape:'html'}">{l s='Contact us'}</a>

Głównym argumentem jest tutaj fraza contact-form

Jeśli chodzi o listę fraz do poszczególnych stron – np. do strony „Promocje” znajdziemy je:

Preferencje => Seo & URL

Tworzenie stron www Kraków

Czyli link do promocji będzie miał postać:

1
<a href="{$link->getPageLink('prices-drop', true)|escape:'html'}">{l s='Specials'}</a>
zrodło:http://prestashopkrakow.pl/

akceptacja klienta prestashop

Na etapie zamówienia domyślnie znajduje się checkbox (krateczka) zgody na warunki regulaminu który musi być zaznaczony aby przejść dalej.

Czasem zachodzi potrzeba dodania dodatkowej, obowiązkowej zgody klienta aby proces zamówienia mógł być zrealizowany. Np. w kwestii akceptacji na przetwarzanie danych osobowych (tzw „Ustawa Konsumencka”). Dziś pokażemy jak dodać taką kratkę.

Tutorial jest przeznaczony dla procesu krokowego wykonywania zamówienia (nie „one page checkout„). Kratka pojawia się na 4 kroku „Wysyłka„. Jeśli masz włączony proces jednostronnicowy wykonywania zamówienia – modyfikacja będzie odmienna. Postaramy się niebawem umieścić stosowną instrukcję na naszym blogu.

Tutorial jest przeznaczony pod wersję Presta Shop 1.6 jednak na nieduże odstępstwa w kodzie w stosunku do poprzednich wersji możesz spróbować wdrożyć to na Twojej wersji.

Dodanie checkboxa w HTML
Otwieramy plik:

themes/{NAZWA-SZABLONU}/order-carrier.tpl
Pod checkboxem z zaznaczeniem regulaminu (okolice 366 linii):
<p class=”checkbox”>
<input type=”checkbox” name=”cgv” id=”cgv” value=”1″ {if $checkedTOS}checked=”checked”{/if} />
<label for=”cgv”>{l s=’I agree to the terms of service and will adhere to them unconditionally.’}</label>
<a href=”{$link_conditions|escape:’html’:’UTF-8′}” class=”iframe” rel=”nofollow”>{l s='(Read the Terms of Service)’}</a>
</p>
doklejamy nasz chceckbox:
<div style=”clear: both;”></div>
<p class=”checkbox”>
<input type=”checkbox” name=”cgv_duo” id=”cgv_duo” value=”1″ />
<label for=”cgv_duo”>{l s=’Tutaj wpisz komunikat związany z drugim checkboxem’}</label>
</p>
Komunikat, gdy nie zaznaczono checkboxa
W tym samym pliku (okolice 425 linii):
themes/{NAZWA-SZABLONU}/order-carrier.tpl
Na jego końcu, zamieniamy kod Smarty:
{addJsDefL name=msg_order_carrier}{l s=’You must agree to the terms of service before continuing.’ js=1}{/addJsDefL}
na:
{addJsDefL name=msg_order_carrier}{l s=’You must agree to the terms of service before continuing.’ js=1}{/addJsDefL}
{addJsDefL name=msg_order_carrier2}{l s=’Nie zaznaczyłeś drugiej kratki’ js=1}{/addJsDefL}
Oczywiście dodajemy komunikat wg uznania.

Mechanizm (JavaScript) pokazywania komunikatu
Otwieramy plik:
themes/{NAZWA-SZABLONU}/js/order-carrier.js
Odnajdujemy funkcję acceptCGV() i na jej początku (zaraz po klamrze otwierającej { ) wklejamy kod:
if (!$(‘#cgv_duo’).is(“:checked”)) {
if (!!$.prototype.fancybox)
$.fancybox.open([
{
type: ‘inline’,
autoScale: true,
minHeight: 30,
content: ‘<p class=”fancybox-error”>’ + msg_order_carrier2 + ‘</p>’
}],
{
padding: 0
});
else
alert(msg_order_carrier2);
return false;
}
Na identycznej zasadzie możemy dodać dowolną ilość takich checkboxów. Oczywiście odpowiednio zmieniając komunikaty oraz identyfikator checkboxa (tutaj został użyty cgv_duo – możemy użyć np. cgv_tres).

przewoźnicy prestashop

Podczas podstawowej konfiguracji sklepu opartego na Presta Shop (u nas w wersji 1.6.1.4) możemy natrafić na bardzo irytujący komunikat:

„nie ma dostępnych przewoźników”
Czasem może się dodatkowo pojawić jeszcze pod spodem:

„Nie ma dostępnych przewoźników, którzy dostarczają pod ten adres”
Pojawia się on na 4 kroku tworzenia zamówienia:

Aby sprawdzić listę dostępnych przewoźników wchodzimy w dział:

Wysyłka -> Przewoźnicy.

Możemy tam ręcznie dodać naszych przewoźników np. Odbiór osobisty albo (ogólnikowo) Kurier. I określić cenę przesyłki w zależności od strefy. Czyli standardowa procedura konfiguracji sklepu.

Mimo wielokrotnego upewnienia się, że przewoźnicy są dodani – dalej ten bład się pojawia i blokuje nam pernamentnie proces składania zamówienia… 🙁

Są różne przyczyny z powodu których może on wystąpić. Prześledźmy typowe z nich.

1. Złe przypisanie kraju do strefy
Aby to wyjaśnić przybliżmy w punktach o co chodzi ze „strefami„:

osoba, która kupuje produkt (i widzi powyższe kroki z obrazka gdzie jest błąd) musi wcześniej wypełnić kartę z adresem dostawy
czyni to niezależnie czy ma konto na sklepie czy kupuje jako gość
w formularzu podawania adresu wybiera pozycję z listy oznaczonej jako „Kraj”
w Presta Shop są podane możliwe kraje, które mogą znaleźć się na tej liście – możemy narzucić jakie kraje będą tam podane,
ta lista jest zdeklarowana w dziale: Lokalizacja -> Kraje
każdy z tych krajów jest przypisany do tzw. „Strefy„
Strefy domyślnie są podzielone na kontynenty. Natomiast idea jest taka, że możemy zdeklarować strefy jakie nam się podoba w zależności od naszych cen dostaw. Np. zamiast kontynentów taki zestaw stref: „Skandynawia„, „Niemcy i Holandia„, „Wyspy brytyjskie” itd. Mamy tu pełną dowolność.
Strefy są natomiast wypisane w konfiguracji każego przewoźnika gdzie określamy jaka cena będzie obowiązywała dla każdej z nich – czyli jak użytkownik wybierze np. kraj będący w strefie „Skandynawia” – system naliczy mu adekwatną kwotę.
Taka jest zasada przypisania kraju do strefy i taki mają one związek z przewoźnikami.

Dla osoby widzącej ten komunikat „nie ma dostępnych przewoźników” w pierwszej chwili właśnie pada na myśl to, że klient wybrał kraj ktrego nie ma w żadnej strefie lub w żadnym z przewoźników nie jest on ujęty.

Musimy się upewnić że każdy z nich posiada takie powiązanie i określenie ceny. Jeśli to zrobiliśmy i dalej to nie działa przejdźmy do punktu drugiego 😉

2. Włączenie zaawansowanego zarządzania stanami magazynowymi.
Jeżeli próby naprawy sytuacji z pkt.1 spełzły na niczym proponujemy takie rozwiązanie. Od razu podkreślę, że nam to pomogło 😉

Na początek sprawdźmy czy mamy włączoną opcję magazynu. Najprościej należy sprawdzić czy mamy pozycję „Magazyn” w menu głównym w zapleczu:

Używanie tej opcji skazuje nas na odpowiednie zarządzanie stanami magazynowymi. Możliwe, że kiedyś przybliżymy ten temat. W każdym razie wyjaśnienia pojawiają się w samym zapleczu a więcej informacji o tej funkcjonalności można znaleźć wchodząc na zakłądkę:

Katalog -> Produkty -> Edycja dowolnego produktu -> Magazyn

Tam (jeśli nie mamy żadnego magazynu w systeme) twóry Presta Shop informują nas, że musimy przynajmiej jeden zdeklarować, określić jego położenie geograficzne, podać dozwolonych przewoźników dla tego magazynu (tu jest pies porzebany!) i każdy z produktów ustalać ilościowo indywidualnie itd. itd. Nie będziemy tutaj zagłębiać się w ten temat. Po prostu dezaktywujemy opcję „Magazyn”.

W tym celu wchodzimy do działu:

Preferencje -> Produkty -> (sekcja) Stan produktów

I zaznaczamy opcję „Włącz zarządzanie magazynem” na „NIE„:

Następnie zapisujemy nasz wybór przyciskiem „Zapisz” będącym pod spodem.

Ku naszej uciesze – po odświeżeniu kroku nr. 4 klient widzi naszych przewoźników!

dodanie waluty w prestashop

Po zalogowaniu do zaplecza wchodzimy w zakładkę:

Lokalizacja » Waluty » Dodaj nową walutę (przycisk u góry)

Następnie wypełniamy pola:

Nazwa waluty: Euro
Kod ISO: EUR
Kod numeryczny ISO: 978 (lista dostępnych kodów jest dostępna na naszym poprzednim poście)
Symbol: 978
Kurs waluty: 0.233252
Włącz: TAK
Resztę pól wypełniamy wg uznania. Co do kursu – na stronie z walutami należy wcisnąć „aktualizacja kursu”.

prestashop facebook

prestashop facebook

 dodanie facebook wysuwanego po najechaniu myszką widgetu z profilem z Facebook.com – wszystkie wersje Presta Shop

 

Rozwiązanie jest dość  intuicyjne

rozwiązanie ogranicza się do:

  1. wklejenia kodu w 1 plik
  2. wgraniu 1 pliku graficznego.

Właściciele sklepów najczęściej wychodzą z założenia, że liczy się efekt stąd nasze sprytne rozwiązanie.

Dodatkowo działa ono niezależnie od wersji Presta Shop.

Osadzenie kodu HTML

Otwieramy plik:

1
/themes/{NAZWA-NASZEGO-SZABLONU}/footer.tpl

Następnie na samym końcu tego pliku znajdujemy zamknięcie znacznika BODY i HTML:

1
2
</body>
</html>

Zaraz przed tym kodem wklejamy poniższy kod. Z tym, że w miejscu:

{TUTAJ WPISZ ADRES TWOJEJ STRONY NA FACEBOOK}

wstawiamy adres naszej strony na Facebook.com (usuwamy ten wpis wraz z klamrami) np. https://www.facebook.com/prestashopkrakow/

Przy okazji zachęcamy do polubienia naszego fan page to modywuje nas do nowych wpisów 😛

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<div id="facebook_slider" >
<div id="fbox1" style="right: -300px; top: 50%; z-index: 10000;">
<div id="fobx2" style="text-align: left;width:290px;height:350px;">
<a class="open" id="fblink" href="#"></a><img style="top: 0px;left:-50px;" src="/img/facebook-icon.png" alt="">
<iframe src="//www.facebook.com/plugins/likebox.php?href={TUTAJ WPISZ ADRES TWOJEJ STRONY NA FACEBOOK}/&amp;width=290&amp;height=370&amp;show_faces=true&amp;colorscheme=light&amp;stream=false&amp;border_color=%23FFF&amp;header=false" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:290px; height:370px;" allowTransparency="true"></iframe>
</div>
</div>
<script type="text/javascript">
{literal}
jQuery(function (){
jQuery("#fbox1").hover(function(){
jQuery('#fbox1').css('z-index',101009);
jQuery(this).stop(true,false).animate({right:  0}, 500); },
function(){
jQuery('#fbox1').css('z-index',10000);
jQuery("#fbox1").stop(true,false).animate({right: -300}, 500); });
});
{/literal}
</script>
<style type="text/css">
#facebook_slider {
position: relative;
}
#fbox1 {
background-color: #fff;
border: 5px solid #3c95d9;
border-radius: 5px;
position: fixed;
}
#fbox2 {
overflow: hidden;
text-align: left;
}
#fbox1 img {
border: 0 none;
cursor: pointer;
position: absolute;
top: 0;
z-index: 10000;
}
#fbox1 iframe {
border: 0 none;
height: 100%;
overflow: hidden;
position: absolute;
width: 100%;
}
</style>

Wgranie pliku graficznego

Do folderu na serwerze:

1
/img

Wgrywamy ten plik: facebook-icon.png

Wyczyszczenie pamięci podręcznej.

Musimy mieć jeszcze pewność, że zmiany są widoczne na stronie i odświeżony jest system pamięci podręcznej w sklepie. W tym celu w zależności od wersji wchodzimy:

Presta Shop 1.6

Zaawansowane » Wydajność » Wyczyść pamięć podręczną (przycisk u góry tej podstrony)

Presta Shop 1.5

Zaawansowane » Wydajność » przycisk „Wyczyść cache Smarty i Autoload”

Wchodzimy następnie na stronę sklepu (widoczną dla klientów) i sprawdzamy czy widget jest widoczny.

Jeśli nie – asekuracyjnie możemy też zaznaczyć opcję „Wymuś kompilację” na powyższej podstronie „Wydajność” – zapisać następnie odświeżyć stronę kliencką.

W momencie, kiedy widget się pojawi – przywracamy ustawienie na stronie „Wydajność” do takiego jak przed zmianą.

jaki sklep internetowy

jaki sklep internetowy

Każdy kto myśli o sklepie internetowym zadaje sobie pytanie na czym uruchomić sklep?

Mamy do wyboru:

  • skorzystać z usług firmy która napisze dla nas sklep od podstaw.
  • wykorzystać skrypyt dedykowanych rozwiązań jak PrestaShop
  • wykorzystać wordpress z wtyczką woocomerce

Pierwsze rozwiązanie może być kosztowne w utrzymaniu, musimy stale mieć kontakt z programistami którzy napisali sklep

Sklep na WordPress to fajna inicjatywa, ale moim zdaniem jedynie dla drobnych rozwiązań typu sprzedaż plików, płyt artysty, małej ilości produktów bez rozbudowanej konfiguracji itp.
Jeśli myślicie poważnie o otwarciu sklepu, który ma być przyjazny zarówno dla klienta, jak i dla ciebie(jest przyjazny jeśli minimalizuje listę czynności aktualizacyjnych,sprzedażowych i wysyłkowych po Twojej stronie) to proponuje dedykowane rozwiązanie np.PrestaShop

Każdy, kto chce zarabiać na sklepie internetowym dąży do ciągłej rozbudowy, zarówno jak i o asortyment, jak i o użyteczność, mnogość konfiguracji, wiele sposobów płatności, jak i wysyłki, integracje z porównywarkami, allegro czy też social media. Tutaj rozwiązania dedykowane typu PrestaShop, Magento deklasują sklepy na WordPress.

Druga sprawa to import produktów, zdjęć, cen oraz opisów z hurtowni dla Presty, Magento czy innego OScommerce są.
Załóżmy, że nawet rozbudujemy bazę produktów w WP do kilkuset, nie wyobrażam sobie ręcznej aktualizacji cen. Presta umożliwia m.in. import produktów z opisami, adresami zdjęć, kanonicznym url, meta-title i meta-description z pliku csv.

Prestashop brak produktów w mailu potwierdzającym

Prestashop brak produktów w mailu potwierdzającym

Problem (błąd) polega na tam, że nowa wersja PS 1.6.0.8 w pliku PaymentModule.php składa html-a z listą produktów do wiadomości w oparciu o plik order_conf_product_list.tpl. Wcześniejsza wersja PS 1.6 składała html-a bezpośrednio w pliku PaymentModule.php.
Sęk tym że plik order_conf_product_list.tpl znajduje się tylko w katalogu z tłumaczeniami wiadomości dla języka angielskiego, natomiast dla polskiego już go tam nie ma.
Wystarczy przekopiować pliki *.tpl z katalogu mails\en do mails\pl i będzie działać prawidłowo.

W ten sposób składany jest html z listą produktów do wiadomości w najnowszej wersji PS1.6.0.8:
$product_list_html = $this->getEmailTemplateContent(‘order_conf_product_list.tpl’, Mail::TYPE_HTML, $product_var_tpl_list)

INSTALACJA PRESTASHOP