Ostatnio wziąłem sie za postawienie sklepu (w 5 minut) z EscParters. Z tym, że tym razem nie zajęło mi to 4 minuty, ale trochę więcej. Gdyż zachciało mi się go upiększyć. Upiększyłem jeden… potem drugi… no i za drugim razem na kilka rzeczy nowych wpadłem 🙂 – oto co mi wyszło – księgarnia internetowa.

A zabrałem się za to tylko i wyłącznie z tego powodu że w ESCpartners, jeden z poleconych przeze mnie partnerów zaczął coś zarabiać 🙂

A teraz krok po kroku co zrobiłem by ten sklep jakoś wyglądał… (przyda się odrobina znajomości php)



1. Rzecz jasna na początku należy wgrać „czysty sklep” wedle instrukcji.


2. Teraz trzeba znaleźć edytor, który by obsługiwał kodowanie UTF-8 (gdyż w takim kodowaniu są te pliki), mój stary zajączek wysiadł przy tym zadaniu, znalazłem Notepad++


3. Kolejno wybrać trzeba, lub zrobić szablon. Może być rzecz jasna jakiś darmowy, w sumie rzecz biorąc każdy się nadaje 🙂 Ja zajrzałem na stronkę freecsstemplates.org – jak piszą darmowe szablony, w większości nawet do komercyjnego użytku, czyli coś dla mnie (trzeba tylko zachować linka do nich).

is a free, fully standards-compliant CSS template designed by Free CSS Templates. This free template is released under a Creative Commons Attributions 2.5 license, so you’re pretty much free to do whatever you want with it (even use it commercially) provided you keep the links in the footer intact. Have fun with it 🙂

Wybrałem sobie taką – simpletex


4. Szablon wybrany – sklep wgrany. W zainstalowanym rozpakowanym sklepie, zachowuje gdzieś na boku plik index.php (tak by móc podpatrzeć co w nim było). A zawartość pokrojonego szablonu (tak jak leci) kopiuje do tego samego katalogu, gdzie mam wgrany sklep, zamieniając plik index.html (bo taki jest najczęściej z szablonem dostarczony), na plik index.php.


5. Otwieram w edytorze oba pliki index.php (stary ze sklepu i nowy z szablonu). Teraz teoretycznie można skopiować poszczególne dane (wstawki php) ze sklepu do szablonu w odpowiednie miejsca (przed zawartością szablonu, w miejsce menu i tam gdzie okno – 'content’) i powinno na 90% działać.

tak całkiem dla laików:
1. wiersze: 1-5 kopiujemy na początek przed szablonem
2. wiersz 14 odpowiedzialny za jakiś skrypt java do formularza, kopiuje do head szablonu (ten drugi skrypt java – pde – zostawaim, jest on potrzebny do menu, a menu i tak będę zmieniał – jeśli nie masz zamiaru nic robić z menu skopiuj go też)
2. wiersze: 22-26 kopiujemy w miejsce menu w szablonie
3. wiersze: 32-146 kopiujemy w miejsce gdzie mają być pokazywane proukty
4. no i na koniec wiersz 151 kopiujemy na koniec całego pliku

Mogą się czasem zdarzyć problemy z wyświetlaniem jeśli w pliku odpowiedzialnym za style CSS jest zdefiniowany któryś ze znaczników użytych w sklepie. Dobrze jest więc przejrzeć możliwe podstrony, czy oby na pewno wszystko jest jak trzeba i w razie potrzeby pobawić sie definicją styli CSS.



6.
Rozwiązanie z punktu 5 powinno działać, i teoretycznie można to tak zostawić i iść spać. Ja jednak odrobinę bardziej się potrudziłem. Zacznijmy od początkowej wstawki, mamy tam polecenie includowania pliku (require_once 'config.php’;) config.php, ok wszystko fajnie, ale w tym pliku mam także uruchomienie sesji wrr… wraz z uruchomieniem sesji, możemy spodziewać sie że wkrótce w google pojawią się linki do naszej strony z takim cudnym parametrem: &PHPSESSID=2a24597e6ea7535ad027930ee2c5b53c – czego zdaje się nie chcemy.

Poszukałem odrobinkę, na jednej ze stron ktoś polecił by przed definicją sesji wstawić coś takiego:
ini_set('session.use_trans_sid', false);
Tak więc wstawiamy to albo do pliku config.php przed zainicjowaniem sesji, albo do pliku index.php przed zaincludowaniem tego pliku.


7. Teraz wypadałoby ustawić odpowiedni znacznik meta i parametry keyword i description. Domyślny sklep nie oferuje nic w tym zakresie. Wstawiamy więc odpowiednie linijki do kodu html, mamy tym sposobem jednakowe znaczniki dla każdej podstrony sklepu. Można powiedzieć lepsze to niż nic.

Poszedłem jednak odrobinę dalej i ustawiłem osobny znacznik title dla każdej strony z pojedynczą książką (do innych raczej ciężko o dane). W tym celu ze skryptu (zawartości okna) usunąłem linijkę (by się nie powtarzać):

$item_info = $client->call('getItemById', array(PASS, (int) $_GET['id']));

A zamiast znacznika title wstawiłem coś takiego:

<?php
$title='';
if ($_GET['mode'] == 'pos') {
/* szczegolowe informacje o konkretnej pozycji */

$item_info = $client->call('getItemById', array(PASS, (int) $_GET['id']));
$title=$item_info['title'].' - ';
}

?>
<title><?php echo $title; ?>Księgarnia internetowa</title>

8. Teraz została zabawa z menu. O ile nie ograniczyliśmy naszej księgarni do jakiegoś niszowego produktu, możemy mieć mały problem z bardzo długim menu. Jeśli natomiast ograniczyliśmy się do jakiejś kategorii, możemy mieć problem z wyświetlaniem linków w menu. W każdym razie wszystko możemy modyfikować w dostarczonym pliku include/menu.php.

W moim przypadku, menu mam trochę przydługawe, postawiłem je więc skrócić. Znalazłem więc skrypt tworzący rozwijane menui go zainstalowałem odpowiednio modyfikując plik menu.php i index.php (tak jak piszą na stronie skryptu).

menu.zip – zmodyfikowany plik menu.php pod ten skrypt.



9. Teraz zabrałem sie za kosmetyczne sprawy strony startowej. Robię to modyfikując plik index.php te części odpowiedzialne za wyświetlanie bestsellerów, polecanych i nowości. Tutaj sprawa wiąże się z dopasowaniem ich do szablonu rzecz jasna można pozostawić tak jak nam dano, ale czy nie ładniej i zgrabniej to wygląda, jak sie to zrobi w ten sposób (porównaj z szablonem). Tu Ci wiele nie pomogę, musisz sprawdzić jak to zrobiono w oryginalnym szablonie i odpowiednio zaimplementować w pliku index.php wyciągając sposób wyświetlania z pliku include/item_short.php (zamiast include 'include/item_short.php’; – wstaw odpowiednie fragmenty z tego pliku, lub zrób swój plik z trochę innym wyświetlaniem dostosowany do szablonu np. item_short1.php)

Upiększanie innych podstron z danymi wyszukiwania, wyświetlaniem kategorii i pozycji robimy modyfikując odpowiednio pliki z katalogu include (minimalna znajomość php się przyda!)



10. Twórcy tego systemu dali nam do zabawy dokumentacje, na podstawie której możemy wyciągnąć dodatkowe dane… Przyznam szczerzę, że usilnie próbując coś na podstawie tej dokumentacji zrobić straciłem chyba ze 2 godziny, nie mając pojęcia co jest grane 🙂 Nie chciało mi sie nikomu głowy zawracać bo sobota wieczór była.

W końcu się zorientowałem, że w dokumentacji są małe błędy i jak jest tam napisane 'nazwa’, 'cena’ trzeba użyć odpowiednio 'price’ i 'name’ (na szczęście było już późno i odbyło się bez ofiar). W każdym razie jakimś cudem metodą prób i błędów zrobiłem listę płatności i transportu. (tabelka.zip)

Tak na przyszłość, gdybyś chciał skorzystać z przygotowanej w ESCartners dokumentacji, weź na nią poprawkę i skorzystaj z funkcji print_r, gdyby coś nie chciało działać.



11. Jeszcze jeden mały dodatek Ci zaproponuję do zrobienia. Wyświetlając pojedynczą pozycję książkową, dodałem do niej coś takiego jak książki o podobnej tematyce. Pomoże to zarówno klientom jak i pozycji w wyszukiwarkach. Domyślnie tego sklep nie oferuje, ale ja skorzystałem z funkcji wyszukiwania. I do pliku item_long.php na sam koniec doczepiłem mały skrypcik, wyszukujący podobne pozycje na podstawie tytułu książki.

doklejka.zip – wstaw zawartość tego pliku na koniec do pliku item_long.php



13. Resztę spraw pozostawiam tobie, dobrze będzie jeśli zrobisz cokolwiek unikalnego w Twoim sklepie 🙂 Warto również zainstalować jakies styatyski, np. Google Analitics.



14. Na koniec podziękuj Tomkowi, za ten ładny opis jeśli z niego skorzystałeś. Możesz to zrobić na kilka sposobów, wybierz jeden:

  • Wstaw linka w Twoim nowym sklepie do jednej z jego stron.
  • Zarejestruj się w linkme z polecenia Tomka i wstaw skrypt linkme na nowo postawiony sklep.
  • Zarejestruj sięlinkornie z jego polecenia i wstaw skrypt na tak nowo stworzoną stronę.

Jak już ostatnio pisałem, taki sklep to jedna z lepszych metod na stworzenie strony z dużą ilością podstron, pod taki system, a kto wie może i coś zarobi – jeśli się nim odpowiednio zakręci:) Jak już dowiódł jeden z partnerów będący pode mną zarejestrowany w ESCpartners 🙂