Author Archive tomasz

Bytomasz

Optymalizacja OnePageCheckout w Prestashop 1.6.*.*

Dla naszego Klienta wykonaliśmy optymalizację jednostronicowego formularza finalizowania zamówienia w sklepie Prestashop (tzw. OnePageCheckout czyli „zakupy na jednej stronie”) w zakresie:
– zmiany ułożenia pól,
– dodatkowej walidacji pól,
– modyfikacji widoczności pól,
– dodania pola typu checkbox ‚Chcę otrzymać fakturę VAT’,
– rozmieszczenia adresu do faktury obok adresu do wysyłki i stylizacji responsywnej,
– innych.

Zmiany wymagały edycji kontrolera OrderOpcController (OrderOpcController.php), kodu javascript order-opc.js, szablonu order-opc.tpl i innych (łącznie 14 plików).

Optymalizacja formularza finalizowania zamówienia ma na celu powiększenie ergonomii, intuicyjności i komunikatywności w procesie finalizowania zamówienia. Poprawnie wykonana powinna zwiększyć stosunek złożonych zamówień do wypełnionych koszyków (zmniejszyć ilość porzuconych koszyków). Statystyki przypadków pokazują także, że 80% podstawowych zmian optymalizacyjnych ergonomii procesu finalizacji zamówienia może prowadzić do wzrostu średniej wielkości zamówienia o 20%.

W razie zainteresowania zapraszamy do kontaktu: tomasz@programistaphp.com.pl.

Więcej: Programista Prestashop

Bytomasz

Naprawa pluginu ShopAppsGoogleTracking integracji Prestashop z Google Analytics Commerce

Dla naszego Klienta naprawiliśmy wadliwie działający plugin ShopAppsGoogleTracking, integrujący Prestashop z Google Analytics Commerce (rejestracja transakcji oraz sprzedanego asortymentu). Z daną wersją sklepu Prestashop, po aktualizacjach, plugin przestał rejestrować transakcje.

W razie zainteresowania zapraszamy do kontaktu tomasz@programistaphp.com.pl.

Więcej: Programista Prestashop

Bytomasz

Prestashop – funkcja Product::deleteCategories() czyści za wiele …..

W trakcie realizacji mechanizmu automatycznego importu produktów do sklepu Prestashop, a szczególnie w przypadku realizacji go z mechanizmem aktualizacji istniejących rekordów (a nie usuwania wszystkich produktów i ponownego ich dodania) zachodzi potrzeba ew. skorygowania do których kategorii produkt należy. Jeśli mamy unikalny identyfikator produktu jak np. nr referencyjny/indeks/kod produktu, możemy odnaleźć produkt w bazie danych a następnie usunąć kategorie do których jest przypisany.

Usuwanie kategorii, do których produkt jest przypisany uzyskujemy wołaniem funkcji Product::deleteCategories($clean_positions = false).

Notację użyłem zwodniczą, ponieważ funkcja ta nie jest funkcją statyczną i można ją wywołać tylko mając utworzony obiekt klasy Product.

$product = new Product($id);
$product->deleteCategories(true);

Pułapka tkwi w parametrze wywołania $clean_positions. Jeśli wywołamy funkcję z parametrem true, funkcja ta dodatkowo będzie wewnątrz wołać inną funkcję cleanPositions(), która w założeniu porządkuje pozycje produktów w kategoriach.

W praktyce, oprócz tego, że jest bardzo czasochłonna, to porządkuje za wiele. Nie wiem, jak dalej będzie wyglądać ten problem, ale w przypadku Prestashop 1.6.1.5 wywołanie takie po prostu usuwało przypisania produktów do kategorii….

Ostrzegam!

Pozdrowienia,

Więcej: Programista Prestashop

Bytomasz

Dedykowany moduł sprzedaży wiązanej (custom cross-selling)

Korzyści z cross-sellingu

Częstą potrzebą w sklepach internetowych jest prezentowanie na karcie produktu produktów powiązanych. Mogą to być produkty z tej samej kategorii, produkty z tej samej serii, produkty komplementarne (jak np. żarówki do lamp, spodnie do koszul o tym samym kolorze i z tego samego materiału) i będące w innej relacji. Ułatwia to użytkownikowi nawigację, informuje go o produktach powiązanych, skraca czas złożenia zamówienia, więc w rezultacie ma to wpływ na zwiększenie sprzedaży w sklepie.

Prestashop oferuje standardowe moduły prezentujące inne produkty z tej samej kategorii, czy też produkty powiązane ręcznie za pomocą narzędzia w panelu administracyjnym. Istnieją też płatne moduły o większych możliwościach.

Swoboda dedykowanego algorytmu

Duża różnorodność typu relacji w połączeniu z bardzo licznym asortymentem stwarza potrzebę swobodnego kształtowania algorytmu doboru produktów powiązanych, co niekoniecznie może być możliwe do zrealizowania za pomocą gotowych, w dużym stopniu konfigurowalnych, jednakże w pewien sposób ograniczonych modułów gotowych.

Aby wyjść naprzeciw tym wymaganiom, stworzyliśmy autorski moduł, który może zostać swobodnie dostosowany do charakteru relacji prezentowanego produktu, z produktami powiązanymi.

W razie zainteresowania zapraszam do kontaktu tomasz@programistaphp.com.pl.

Więcej: Programista Prestashop

Bytomasz

Porównywanie dwóch dat w Javascript

Treść w opracowaniu.

Szukasz programisty javascript? Zobacz propozycję Programista Javascript

Bytomasz

Dodatkowe pola zamówienia w Prestashop

Celem tego artykułu jest przybliżenie sposobu, w jaki można zaprogramować obsługę dodatkowych pól zamówienia w sklepie Prestashop. Artykuł powstawał w trakcie realizacji zadań na wersji 1.6.1.4.

Prestashop umożliwia dodanie dodatkowych pól do poszczególnych produktów ale niestety nie udostępnia takiej możliwości w przypadku zamówienia.

Ale po co?

Read More

Bytomasz

Prestashop vs WooCommerce

Internet jest od dawna znaczącym kanałem sprzedaży. Daje on szansę małym firmom nie posiadającym przewagi konkurencyjnej np. kapitałowej rozpocząć biznes i ew. rozwinąć go także o gałęzie sprzedaży czy dystrybucji klasycznej, czego jest trochę przykładów na sukces (parę znanych sieci w Polsce).

Na początek najważniejsza jest minimalizacja kosztów więc oczywiście rozpoczynający działania biznesmeni rozważają uruchomienie sklepów internetowych z użyciem jednego z wielu darmowych skryptów, zwłaszcza w technologii PHP/MySQL (dostępność stabilnych hostingów w atrakcyjnej cenie).

Na obecną chwilę bardzo dużą popularność zyskał WordPress, będący systemem CMS rozszerzalnym o dodatkowe wtyczki. Siłą rzeczy pojawiły się wtyczki do biznesu, m.in. WooCommerce. Jest to ciekawe zjawisko, ponieważ wcześniej popularnym CMSem była Joomla, która także miała rozwiązania sklepowe jak np. VirtueMart. Niemniej koncepcja WordPressa spowodowała lawinowo rosnącą jego popularność i zainteresowanie wtyczkami e-commerce.

W międzyczasie powstało sporo rozwiązań sklepowych stand-alone jak np. Prestashop, spory czas rozwijanych i przebudowywanych.

Obecnie często padającym pytaniem jest – co wybrać – WooCommerce czy Prestashop.

Postaram się krótko odnieść do tego pytania. Nie będę jednak poświęcał wiele czasu na porównywanie funkcjonalności ale spojrzę na zagadnienie z punktu widzenia:

  • architekta biznesu
  • programisty
  • menedżera

WooCommerce czy Prestashop – okiem architekta e-biznesu

WooCommerce jest wtyczką do WordPressa. Jeśli planujemy nasz sklep/rozwiązanie e-commerce poszerzać o funkcje społecznościowe, np. forum porad na temat naszych produktów, moduł społecznościowy, profile użytkowników, mnóstwo bajeranckich gadżetów itp. to bez wątpienia lepszą drogą jest WordPress+WooCommerce. Napewno jednak zderzymy się z problemami związanymi z małą stabilnością i dopracowaniem wtyczek WordPressa czy WooCommerce jak również z ich współpracą – sprawdzajmy czy wybrane przez nas wtyczki współpracują ze sobą i w jakiej wersji. Nie wszystko złoto co się świeci.

Natomiast jeśli planujemy po prostu mieć sklep – katalog produktów, koszyk itp i nie wyjść za daleko – tutaj bez wątpienia lepszym wyborem jest Prestashop. Już na start oferuje porządną stabilną paczkę. Poblemy mogą być z wydajnością.

WooCommerce czy Prestashop – okiem programisty

Patrząc okiem programisty na oba rozwiązania, to napewno środowisko uruchomieniowe CMS WordPress oferuje łatwiej przyswajalną prostotę poszerzania naszego sklepu o nowe funkcjonalności czy jego kastomizację – mamy tutaj akcje i filtry i bardzo porządną dokumentację do WordPress. Z kolei w przypadku WooCommerce, który nie jest stricte sklepem ale wtyczką komercyjną do której znajdziemy zarówno dodatki sklepowe jak i np. współpracujący serwis ogłoszeniowy – widać na chwilę obecną że powstający kod dla wtyczek czy rozszerzeń jest niejednokrotnie bałaganiarski. Sam WordPress teoretycznie nie oferuje tworzenia dodatków z użyciem modelu MVC (chociaż powiedzmy sobie szczerze – zaawansowany programista sam sobie tak może odpowiednio zorganizować kod czy jego jakieś szablony).

Z jakąś niesamowitą prawidłowością rozszerzenia do WordPressa mają bardzo zły architektonicznie styl programowania – pomieszany kod php z javascript, html, pomimo wielu blogów i teorii na temat separacji.

Programiści frontend to lubią, bo dla nich ważne dorwać jest plik, pozmieniać style, javascript, html, coś tam php i już mamy gotowy sklep. Co niejednokrotnie kończy się problemami i kosztami zatrudnienia na poprawki doświadczonego programisty. Automatyczne aktualizacje to także murowane problemy z padającymi funkcjonalnościami sklepu.

Z kolei Prestashop ma dojrzałą architekturę. Mamy tutaj MVC (pseudo MVC, jakaś wariacja pocięta tym, że mamy do czynienia z kodem i po stronie serwera i klienta (javascript)), mamy taki ORM, mamy system szablonów Smarty, mechanizm overrides i parę innych rzeczy. Mamy też sporo logiki biznesowej którą niestety trzeba poznać aby zabrać się za kastomizacje funkcjonalności. Moduły dodatkowe potrafią nie działać, jak również w pewnych środowiskach nie ma zamiaru zadziałać moduł upgradeowania sklepu do nowej wersji.

Tyle że ucząc się Prestashop uczymy się Prestashop, w przypadku WooCommerce mamy jednak jakieś rosnące doświadczenie w WordPress. Teoretycznie więcej będzie stron internetowych niż z sklepów, ale to z kolei w sklepy jednak firmy chętniej inwestują, bo przynoszą zauważalne przychody, niż strony będące wizytówkami.

Pytanie więc – czy dżuma czy cholera? 🙂

WooCommerce czy Prestashop – okiem menedżera

Napewno można powiedzieć biznes managerom – nie ulegajcie cudownym bannerom o niezawodności i mistycznej bezawaryjności WooCommerce czy Prestashop (choć Prestashop jest póki co tutaj lepszy). Jeśli planujecie rozwijać biznes w oparciu o te sklepy, to napewno na jakimś etapie czeka was kontraktowanie programistów do poszerzania czy kastomizowania funkcjonalności – przede wszystkim dobre definiowanie wymagań. Na dzień dzisiejszy Prestashop oferuje dla biznesu ‚sklep stricte’ bardziej stabilną i dopracowaną całość – w zakresie sklepu. W przypadku WooCommerce przynajmniej z punktu widzenia programisty realizującego zlecenia naprawy – tych problemów jest więcej. Jednakże programistów WordPress jest więcej.

Przystępując też do wyboru oprogramowania a szczególnie dodatkowych modułów/wtyczek nie liczmy na to, że będą ze sobą bezawaryjnie współpracować, zwłaszcza w przypadku wtyczek WordPress/WooCommerce. Mogą wzajemnie poingerować we właściwe działanie sklepu. Dopracowanie darmowych wtyczek pozostawia wiele do życzenia („Cudze ręce lekkie ale niepożyteczne”.), więc należy też rozważyć wtyczki komercyjne – praca programisty poprawiającego darmowe oprogramowanie też kosztuje. Nie włączajmy automatycznych aktualizacji WordPress/WooCommerce czy dodatków. Aktualizacje trzeba robić na kopii developerskiej własnego sklepu. Jeśli się powiodą – robimy to samo na wersji produkcyjnej (zarabiającej).

Możliwe są też np. rozwiązania hybrydowe. Np. funkcje firmowe, cmsowe, społecznościowe zrealizujemy na CMS WordPress, a sklep na poddomenie np. sklep.* w Prestashop – „Pokorne ciele dwie matki ssie”. Sprawny programista powinien umieć pointegrować modułami funkcjonalności (np. napisać wtyczkę WordPress sięgającą do tabel Prestashopa).

Natomiast, co ważne, jeśli mamy doświadczonego programistę/firmę w którymkolwiek z rozwiązań, który posiada doświadczenie w budowie, kastomizacji, integracji modułów czy jego utrzymania – wybierzmy ten sklep w którym ma doświadczenie. Na długi dystans zasób „programista” staje się kluczowy.

Miłego biznesu.

Propozycja:
Programista WordPress
Programista WooCommerce
Programista Prestashop

Bytomasz

Instalacja Joomla 3.3 na home.pl

Pojawiła się kolejna wersja systemu CMS Joomla z numeracji 3.x czyli 3.3 (28 października 2012 wersja 3.0) z bardzo atrakcyjnym wsparciem dla stron mobilnych.

Jak więc ją zainstalować na popularnym hostingu w firmie Home.pl?

Trzeba zrobić parę prostych ruchów:

1) Oczywiście rozpakowywujemy cały plik .ZIP z instalacją i kopiujemy zawartość rozpakowanego katalogu do katalogu docelowego na Home.pl.

2) Zakładamy bazę danych w panelu Home.pl (jak wiadomo, na Home.pl nazwa użytkownika bazy danych i baza danych MySQL są takie same)

3) Przypinamy wybraną domenę internetową do naszego katalogu z plikami Joomla 3.3

I teraz ważne:
4) Zmieniamy nazwę pliku „htaccess.txt” na „.htaccess”

5) W pliku .htaccess dodajemy następujące wiersze (wymuszenie wykorzystania na Home.pl interpretera PHP w wersji >=5.3)

:Location /*.php
Use php53
:Location

Oczywiście pliczek kopiujemy do głównego katalogu naszej instalacji Joomla 3.3

6) Tworzymy nowy plik i nadajemy mu nazwę „php.ini”, wstawiamy mu następujące wiersze (wyłączamy Magic GPC Quotes, bo inaczej nie pójdzie instalacja)

magic_quotes_gpc = Off
magic_quotes_runtime = Off
Uwaga! Aby można było wprowadzić osobny php.ini z ustawieniami, należy w konfiguracji domeny przypiętej do folderu z Joomlą włączyć opcję: „Włącz przekierowanie na podkatalog z separacją serwisu”.


Oczywiście pliczek „php.ini” wrzucamy do głównego katalogu naszej instalacji Joomla 3.3

7) Ewentualnie otwieramy pliczek „index.php” i znajdujemy poniższą linię i bezczelnie przestawiamy wersję minimalną na 5.3.0: (konsekwencje…)

if (version_compare(PHP_VERSION, ‚5.3.0’, ‚<‚))
{
die(‚Your host needs to use PHP 5.3.1 or higher to run this version of Joomla!’);
}

I odpalamy instalację poprzez wywołanie naszej strony przez podpiętą domenę i jedziemy z koksem.

Przyczyny zawieszania się instalatora Joomli 3.3 na Home.pl.
Zaobserwowałem zawieszanie się instalatora Joomli 3.3 na Home.pl w związku z uruchomionymi statystykami Stat24.pl które automatycznie doklejają na końcu dokumentu HTML wywołanie javascriptowe. Po prostu jeśli instalujemy Joomlę na domenie na której wcześniej pracowały statystyki, trzeba je wyłączyć w administratorze Home.pl – rysunek – odznaczyć checkboxa i zapisać. Kiepskie rozwiązanie ergonomicznie, niezbyt samoeksplanatywne ale działa.

Pozdrowionka, Tomek

Potrzebny Programista Joomla? Pisz:tomasz@programistaphp.com.pl