NASZA OFERTA
co robimy ?
Od momentu założenia w 2004 roku, rozwija się bardzo dynamicznie. Dzięki ciągłemu rozszerzaniu świadczonych przez nas usług, stale powiększamy grupę zadowolonych klientów. To co przekonało naszych klientów to nasza elastyczność i uwzględnianie ich indywidualnych potrzeb.
PORTFOLIO
Nasze prace
W sklepie internetowym kluczowe jest odpowiednie prezentowanie produktów – szczególnie istotne jest, aby produkty dostępne były widoczne przed tymi, których obecnie nie ma w magazynie. Ułatwia to klientom zakupy i zwiększa konwersję. Jeśli korzystasz z PrestaShop i chcesz uporządkować produkty w taki sposób, aby dostępne były wyświetlane przed niedostępnymi, można to łatwo osiągnąć, modyfikując odpowiednie zapytanie SQL.
W PrestaShop, w module Filtrów Nawigacyjnych (ps_facetedsearch), można tego dokonać modyfikując plik MYSQL.php
znajdujący się w:
\modules\ps_facetedsearch\src\Adapter\MYSQL.php
Domyślne sortowanie produktów w PrestaShop odbywa się na podstawie wartości pola, które jest przekazywane do zapytania SQL. Może to być cena, nazwa produktu, data dodania, itd. Wygląda to mniej więcej tak:
$query .= ' ORDER BY ' . $orderField . ' ' . strtoupper($this->getOrderDirection());
Ten fragment kodu tworzy zapytanie SQL, które sortuje produkty według pola zdefiniowanego w zmiennej $orderField
oraz kierunku sortowania określanego przez funkcję getOrderDirection()
.
Jeśli chcesz zmodyfikować sortowanie, aby produkty niedostępne (czyli takie, których ilość w magazynie wynosi 0) były wyświetlane na końcu listy, możesz dodać do zapytania SQL dodatkowe warunki, które sprawią, że produkty z ilością większą niż 0 pojawią się wcześniej.
Zamiast domyślnego sortowania, modyfikujemy kod na:
$query .= ' ORDER BY (CASE WHEN p.quantity > 0 THEN 1 ELSE 0 END) DESC, ' . $orderField . ' ' . strtoupper($this->getOrderDirection());
p.quantity
). Jeśli ilość jest większa niż 0, zwraca wartość 1
(produkt jest dostępny). Jeśli ilość wynosi 0, zwraca wartość 0
(produkt jest niedostępny).1
(czyli dostępne) będą wyświetlane na początku listy, a produkty z wartością 0
(niedostępne) będą wyświetlane na końcu.Wprowadzenie tego typu sortowania jest szczególnie korzystne w dużych sklepach, gdzie produkty często się wyprzedają. Klienci mogą wówczas przeglądać ofertę bez konieczności natrafiania na niedostępne produkty, co minimalizuje ich frustrację i poprawia wrażenia z zakupów. Produkty niedostępne, choć nadal widoczne (jeśli nie zostały ukryte), będą widniały na końcu listy, nie przeszkadzając w przeglądaniu aktualnej oferty.
Aby wprowadzić tę zmianę w swoim sklepie PrestaShop, wykonaj poniższe kroki:
1 Otwórz plik MYSQL.php
w lokalizacji:
\modules\ps_facetedsearch\src\Adapter\MYSQL.php
2 Znajdź fragment kodu odpowiedzialny za sortowanie (zapytanie SQL, które zawiera ORDER BY
).
3 Zmień kod sortowania z:
$query .= ' ORDER BY ' . $orderField . ' ' . strtoupper($this->getOrderDirection());
na
$query .= ' ORDER BY (CASE WHEN p.quantity > 0 THEN 1 ELSE 0 END) DESC, ' . $orderField . ' ' . strtoupper($this->getOrderDirection());
Zapisz plik i przetestuj działanie sortowania w sklepie.
Dzięki prostej modyfikacji zapytania SQL w module ps_facetedsearch możesz w swoim sklepie PrestaShop wprowadzić sortowanie, które umieści produkty dostępne w magazynie na początku listy, a niedostępne na końcu. To rozwiązanie ułatwia klientom przeglądanie oferty i zakup produktów, które mogą natychmiast zamówić, co z kolei zwiększa szanse na konwersję i poprawia wrażenia zakupowe.
Ostatnio na jednym z naszych serwerów VPS, gdzie działał sklep internetowy oparty na PrestaShop, napotkaliśmy poważny problem związany z nadmiernym obciążeniem przez boty. W ciągu zaledwie 1,5 godziny boty z domen związanych z Facebookiem i Meta wygenerowały 2394 zapytań, co doprowadziło do zawieszenia serwera.
Jest to bot, który służy Facebookowi do pobierania treści podczas udostępniania linków na platformie. W logach serwera pojawiał się wpis w postaci:
1662 "-" "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)"
Ten bot działa w podobnym celu, aby pobierać dane do Meta, co znajduje potwierdzenie w jego identyfikatorze w logach serwera:
302 0 "-" "meta-externalagent/1.1 (+https://developers.facebook.com/docs/sharing/webmasters/crawler)"
Skutki
Wskutek nadmiernej liczby zapytań serwer VPS, na którym znajdował się nasz sklep, całkowicie przestał działać. Restart oraz próby przywrócenia usługi nie przyniosły oczekiwanych efektów, a sklep był niedostępny przez dłuższy czas. Stało się jasne, że boty te skutecznie uniemożliwiały prawidłowe funkcjonowanie serwera.
Rozwiązanie
Na początku próbowaliśmy zablokować bota facebookexternalhit bezpośrednio w pliku .htaccess
, co często jest zalecaną metodą ograniczania dostępu dla konkretnych user-agentów. Przykładowa reguła, którą dodaliśmy do pliku .htaccess
, wyglądała następująco:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} facebookexternalhit [NC]
RewriteRule .* - [F,L]
</IfModule>
Jednak z informacji dostępnych na różnych forach i od innych administratorów stron wynika, że bot facebookexternalhit często ignoruje tego rodzaju blokady w pliku .htaccess
. Dlatego, aby zapobiec dalszemu przeciążeniu serwera i niestabilności działania strony, zdecydowaliśmy się całkowicie zablokować boty z Facebooka na poziomie firewall, do momentu pełnego wyjaśnienia sytuacji i zapewnienia stabilności serwera.
Ostatecznie problem udało się rozwiązać poprzez blokadę na firewallu konkretnych zakresów adresów IP, z których pochodziły zapytania od botów. Oto zakresy IP, które zostały zablokowane:
Po wdrożeniu tych zmian praca serwera wróciła do normy, a obciążenie spadło do poziomu umożliwiającego normalne funkcjonowanie sklepu.
Z tego doświadczenia możemy wyciągnąć kilka ważnych wniosków:
Zadbajmy o zabezpieczenie naszych serwerów, a jednocześnie o monitorowanie ruchu, aby unikać podobnych incydentów w przyszłości.
W trakcie realizacji sklepu internetowego dla naszego klienta napotkaliśmy na problem związany z działaniem programu Thunderbird. Chociaż klient przesłał podział kategorii dla sklepu internetowego, wiadomość ta była niemożliwa do odnalezienia. Mimo że była przypisana do odpowiedniego katalogu, nie mogliśmy jej znaleźć ani na innych skrzynkach, ani w żadnych folderach.
Podczas ręcznego przeszukiwania wiadomości klienta, naszą uwagę zwrócił e-mail, który wyglądał, jakby brakowało w nim nagłówków. Brakowało informacji o nadawcy, temacie i dacie wysłania, a sama wiadomość nie była poprawnie wyświetlana w HTML.
Po weryfikacji na serwerze okazało się, że to właśnie ta poszukiwana wiadomość. Problem leżał po stronie Thunderbirda, który niepoprawnie wyświetlał e-maila.
Drugi napotkany przypadek, w którym Thunderbird przy otwarciu jednej wiadomości wyświetlał inną, całkowicie niepowiązaną treść. Po weryfikacji na serwerze okazało się, że problemem była niepoprawna synchronizacja Thunderbirda, która wpływała na wyświetlanie wiadomości.
Na szczęście rozwiązanie tego problemu jest proste i szybkie do wykonania. Wystarczy ponownie zsynchronizować folder, w którym znajduje się problematyczna wiadomość. Oto kroki, które należy wykonać:
Po wykonaniu tych kroków Thunderbird powinien poprawnie zsynchronizować wiadomości w wybranym folderze, a problematyczny e-mail powinien być wyświetlany poprawnie.
Problem z wyświetlaniem wiadomości w Thunderbirdzie może być frustrujący, zwłaszcza gdy poszukiwany e-mail jest ważny dla realizowanego projektu. Na szczęście, ponowna synchronizacja folderu często rozwiązuje ten problem. Dzięki temu prostemu rozwiązaniu możemy szybko przywrócić prawidłowe funkcjonowanie programu i kontynuować pracę nad projektem bez zbędnych przestojów.
Jeśli napotkasz podobne problemy z Thunderbirda, mamy nadzieję, że powyższe wskazówki okażą się pomocne. W razie dalszych problemów, nasz zespół jest zawsze gotowy do pomocy.
MD5 (Message Digest Algorithm 5) to kryptograficzny algorytm skrótu powszechnie używany do sprawdzania integralności danych oraz przechowywania haseł w bazach danych. Pomimo że nie jest już uważany za najbezpieczniejszy algorytm, jego prostota i szybkość przetwarzania sprawiają, że jest wciąż popularny w wielu aplikacjach.
MD5 przekształca dane wejściowe (dowolnej długości) w 128-bitowy ciąg znaków (32-znakowy hash). Niezależnie od rozmiaru danych wejściowych, wynik zawsze będzie miał tę samą długość. Proces ten jest jednokierunkowy, co oznacza, że nie można łatwo odwrócić operacji i odzyskać oryginalnych danych z wygenerowanego hasha.
Dla przykładu, hasło „password123” po zastosowaniu algorytmu MD5 zostanie przekształcone w hash:
482c811da5d5b4bc6d497ffa98491e38
Zastosowania MD5
MD5 jest często używany do sprawdzania integralności plików. Generując hash pliku, można go później porównać z hashami uzyskanymi z innych źródeł, aby upewnić się, że plik nie został zmodyfikowany.
Chociaż nie jest to już rekomendowane, MD5 był powszechnie używany do przechowywania haseł w bazach danych. Zamiast przechowywać hasła w postaci zwykłego tekstu, przechowywano ich hashe, co dodawało warstwę ochrony w przypadku wycieku danych.
MD5 może być używany do generowania unikalnych identyfikatorów dla dokumentów i zasobów, co jest przydatne w różnych systemach śledzenia i zarządzania danymi.
Pomimo swojej popularności, MD5 ma pewne istotne wady, które sprawiają, że nie jest już uważany za bezpieczny dla krytycznych zastosowań kryptograficznych:
Przestarzałość: Istnieją nowocześniejsze algorytmy haszujące, takie jak SHA-256, które oferują lepsze zabezpieczenia.
Kolizje: Możliwość generowania dwóch różnych wejść, które mają ten sam hash.
Brak Odporności na Ataki Słownikowe i Brutalnej Siły: MD5 jest podatny na szybkie ataki słownikowe i brute-force, które mogą odgadnąć hasła poprzez próbowanie różnych kombinacji.
Ze względu na wspomniane wcześniej wady, lepiej jest używać nowszych i bezpieczniejszych algorytmów haszujących. Oto kilka z nich:
W dzisiejszych czasach prywatność użytkowników internetu staje się coraz bardziej priorytetowa. W odpowiedzi na rosnące zapotrzebowanie na większą kontrolę nad danymi osobowymi, Google wprowadziło Consent Mode v2 (tryb zgody). Nowa funkcjonalność nie tylko dostosowuje się do wymogów prawnych, ale również zapewnia użytkownikom większą kontrolę nad ich danymi. W tym artykule przyjrzymy się, dlaczego Consent Mode v2 został wdrożony, jakie są różnice między polityką cookie a Consent Mode, oraz jak działają poszczególne ustawienia tej funkcji.
Consent Mode v2 został wdrożony, aby zapewnić użytkownikom internetu większą kontrolę nad ich danymi osobowymi i zwiększyć zgodność z przepisami dotyczącymi prywatności, takimi jak RODO (GDPR) w Europie. Wcześniej, w ramach polityki cookie, użytkownicy często nie mieli realnego wpływu na to, czy są śledzeni i targetowani przez reklamy. W wielu przypadkach, akceptacja ciasteczek była warunkiem koniecznym do korzystania ze strony internetowej.
Consent Mode v2 wprowadza bardziej zrównoważone podejście, które umożliwia użytkownikom wybór, czy chcą być śledzeni i czy ich dane mają być używane do personalizacji reklam i analiz. Dzięki temu użytkownicy mogą czuć się bardziej komfortowo i bezpiecznie podczas przeglądania internetu.
Consent Mode v2 umożliwia kontrolowanie różnych aspektów przechowywania i przetwarzania danych poprzez ustawienia takie jak:
Dzięki tym ustawieniom, właściciele stron mogą lepiej dostosować sposób, w jaki przetwarzają dane użytkowników, zapewniając zgodność z ich preferencjami i obowiązującymi przepisami prawnymi.
Wdrożenie Consent Mode v2 to ważny krok, ale równie istotne jest przetestowanie tej funkcjonalności, aby upewnić się, że działa ona poprawnie i zgodnie z oczekiwaniami. Testowanie Consent Mode v2 pozwala na weryfikację, czy zgody użytkowników są prawidłowo przetwarzane i czy dane są przechowywane zgodnie z ustawieniami preferencji prywatności.
Google Tag Assistant (GTA) to narzędzie, które pomaga weryfikować implementację Consent Mode v2 na stronach internetowych. Poniżej przedstawiamy kilka kluczowych aspektów wykorzystania GTA w tym kontekście:
Wykorzystaj GTA do regularnego sprawdzania zgodności implementacji Consent Mode z obowiązującymi przepisami dotyczącymi ochrony prywatności, takimi jak RODO.
Wdrożenie Consent Mode v2 dla usług Google, takich jak Google Analytics czy Google Ads, wiąże się z kosztem 500 zł netto. Jest to inwestycja, która pozwala na zgodność z przepisami dotyczącymi prywatności oraz budowanie zaufania wśród użytkowników strony.
Podsumowanie
Consent Mode v2 to krok w stronę większej przejrzystości i kontroli nad danymi osobowymi użytkowników internetu. Daje możliwość decydowania, jakie dane są przetwarzane i w jakim celu, co zwiększa poczucie bezpieczeństwa i zgodność z przepisami. Jeśli jesteś właścicielem strony internetowej i chcesz zapewnić swoim użytkownikom większą kontrolę nad ich danymi, wdrożenie Consent Mode v2 jest krokiem w dobrym kierunku. Koszt tego wdrożenia dla usług Google wynosi 500 zł netto. Skontaktuj się z nami, aby dowiedzieć się więcej i rozpocząć proces wdrażania.
PrestaShop to zaawansowane narzędzie do zarządzania sklepem internetowym, które oferuje wiele funkcji umożliwiających dostosowanie sklepu do indywidualnych potrzeb. Jedną z tych funkcji jest możliwość ukrywania cen dla różnych grup klientów, co może być szczególnie przydatne w przypadku odwiedzających, którzy nie są zalogowani.
Ukrywanie cen w PrestaShop jest prostym procesem, który można wykonać bez potrzeby zaawansowanej wiedzy technicznej. Oto krok po kroku, jak to zrobić:
Od teraz, wszyscy odwiedzający Twój sklep, którzy nie są zalogowani, nie będą widzieli cen produktów. Jest to szczególnie przydatne, jeśli chcesz, aby ceny były widoczne tylko dla zarejestrowanych użytkowników lub klientów hurtowych.
Ukrywanie cen dla niezalogowanych użytkowników może przynieść wiele korzyści:
Zarządzanie sklepem internetowym może być czasochłonne i wymagać specjalistycznej wiedzy. Dlatego oferujemy profesjonalne usługi administracji i opieki nad PrestaShop.
Zapraszamy do skorzystania z naszych usług. Więcej informacji oraz cennik PrestaShop dostępny jest na naszej stronie.
W dzisiejszej erze cyfrowej, dane i ich przepływ są fundamentem funkcjonowania większości urządzeń i systemów. Zrozumienie jednostek miar używanych do opisu danych i szybkości ich przesyłania jest kluczowe dla efektywnego zarządzania technologią informacyjną. W tym artykule przyjrzymy się kilku podstawowym jednostkom informatycznym, takim jak bps, Bps, Mb i wiele innych.
Jednostki pojemności danych służą do opisywania ilości danych, które mogą być przechowywane lub przesyłane. Oto kilka najczęściej używanych jednostek:
Aby lepiej zrozumieć, jak te jednostki są używane, spójrzmy na kilka praktycznych przykładów:
Ważne jest, aby zrozumieć różnice między tymi jednostkami. Na przykład, bps (bity na sekundę) i Bps (Bajty na sekundę) różnią się wielkością, ponieważ 1 Bajt = 8 bitów. Podobnie, jednostki takie jak Kb i KB różnią się ze względu na system liczbowy, w którym są mierzone (system dziesiętny vs. binarny).
Znajomość jednostek informatycznych jest niezbędna w dzisiejszym świecie cyfrowym. Pomaga to w lepszym zrozumieniu specyfikacji technicznych urządzeń, efektywnym zarządzaniu danymi i optymalizacji procesów związanych z przesyłaniem i przechowywaniem danych. Mamy nadzieję, że ten artykuł przyczynił się do lepszego zrozumienia tych kluczowych pojęć.
Migracja sklepu internetowego, takiego jak PrestaShop, z jednego serwera na drugi, to zadanie, które wymaga starannego planowania i przygotowania. Jednym z kluczowych elementów tego procesu jest obliczenie czasu potrzebnego na transfer danych, co ma bezpośredni wpływ na minimalizowanie przestojów oraz zapewnienie płynności operacyjnej sklepu.
Załóżmy, że nasz sklep PrestaShop ma rozmiar 100 GB, a prędkość łącza internetowego serwera VPS, na który chcemy przenieść sklep, wynosi 10 MBps (megabajtów na sekundę). Na pierwszy rzut oka może się wydawać, że prędkość 10 MBps jest wystarczająco szybka, jednak przeliczenie pokazuje, że transfer takiej ilości danych może zająć znaczną ilość czasu.
Kody QR (Quick Response) stały się niezwykle popularne w ostatnich latach jako szybki i wygodny sposób na udostępnianie informacji. Można je znaleźć wszędzie – od opakowań produktów, przez plakaty, aż po wizytówki. W tym artykule dowiesz się, czym są kody QR, jak działają, gdzie można je wykorzystać oraz jak samodzielnie wygenerować własny kod QR.
Kod QR to dwuwymiarowy kod kreskowy, który może przechowywać różnego rodzaju dane, takie jak tekst, adresy URL, kontakty czy nawet informacje o płatnościach. Został wynaleziony w 1994 roku przez firmę Denso Wave, będącą częścią japońskiego koncernu Toyota. Kody QR szybko zyskały popularność ze względu na swoją dużą pojemność danych oraz łatwość skanowania za pomocą smartfonów.
Kody QR składają się z czarnych i białych kwadratów ułożonych na siatce, które reprezentują zakodowane dane. Skaner kodów QR, taki jak aplikacja w smartfonie, odczytuje te kwadraty i tłumaczy je na informacje, które są zrozumiałe dla użytkownika. Kody QR są wyposażone w specjalne elementy nawigacyjne, które pomagają skanerowi prawidłowo zinterpretować dane, niezależnie od kąta skanowania.
Kody QR mogą być wykorzystywane na wiele różnych sposobów, w tym:
UTM (Urchin Tracking Module) to system używany do śledzenia efektywności kampanii marketingowych online poprzez dodawanie parametrów do URL-i. Parametry te pozwalają narzędziom analitycznym, takim jak Google Analytics, na monitorowanie skąd pochodzi ruch na stronie internetowej oraz jak użytkownicy wchodzą w interakcję z treścią.
utm_source=google
utm_medium=cpc
utm_campaign=summer_sale
utm_term=running+shoes
utm_content=logo_link
lub utm_content=text_link
Aby utworzyć link z parametrami UTM, wystarczy dodać je jako parametry URL. Przykładowy link może wyglądać tak:
https://www.pro-link.pl/?utm_source=google&utm_medium=cpc&utm_campaign=letnia_promocja&utm_term=sklepy&utm_content=text_link
Załóżmy, że prowadzisz kampanię marketingową na Facebooku promującą letnią wyprzedaż. Chcesz śledzić, jak skuteczne są różne linki w różnych postach. Możesz użyć parametrów UTM do stworzenia unikalnych linków dla każdej reklamy.
Przykład linku:
https://www.pro-link.pl/sale?utm_source=facebook&utm_medium=social&utm_campaign=wakacje&utm_content=ad1
Po dodaniu parametrów UTM do linków, możesz śledzić i analizować dane w narzędziach analitycznych, takich jak Google Analytics. Dzięki temu zyskasz wgląd w to, które kampanie są najbardziej efektywne, które źródła ruchu generują najwięcej konwersji i jakie treści przyciągają użytkowników.
Parametry UTM są potężnym narzędziem dla marketerów, pozwalającym na precyzyjne śledzenie i optymalizację kampanii online. Dzięki nim można podejmować bardziej świadome decyzje o strategiach marketingowych i alokacji budżetu.
W tej zakładce znajdziesz informacje na temat kompatybilności wersji PrestaShop z wersjami PHP. Poniższa tabela pomoże Ci sprawdzić, jakiej wersji PHP potrzebujesz, aby poprawnie zainstalować i uruchomić wybraną wersję PrestaShop.
PrestaShop\PHP | 5.1 | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2 |
1.6.1 | N | T | T | T | T | T | T | T* | N | N | N | N | N | N |
1.7.0 | N | N | N | T | T | T | T | T* | N | N | N | N | N | N |
1.7.4 | N | N | N | N | N | T | T | T* | N | N | N | N | N | N |
1.7.5 | N | N | N | N | N | T | T | T | T* | N | N | N | N | N |
1.7.6 | N | N | N | N | N | T | T | T | T* | N | N | N | N | N |
1.7.7 | N | N | N | N | N | N | N | T | T | T* | N | N | N | N |
1.7.8 | N | N | N | N | N | N | N | T | T | T | T* | N | N | N |
8.0 | N | N | N | N | N | N | N | N | T | T | T | T | T* | N |
Legenda:
Każda wersja PrestaShop została zaprojektowana tak, aby była kompatybilna z określonymi wersjami PHP. Używanie niewłaściwej wersji PHP może prowadzić do problemów z instalacją, stabilnością oraz bezpieczeństwem sklepu internetowego. Przed przystąpieniem do instalacji lub aktualizacji PrestaShop, upewnij się, że Twój serwer spełnia wymagania odpowiedniej wersji PHP.
Aby sprawdzić, jakiej wersji PHP używa Twój serwer:
Jeżeli Twoja wersja PHP nie jest kompatybilna z wybraną wersją PrestaShop, skontaktuj się z dostawcą hostingu w celu aktualizacji PHP lub zmiany wersji.
Dostosowanie wersji PHP do odpowiedniej wersji PrestaShop jest kluczowe dla zapewnienia płynnego działania i bezpieczeństwa sklepu internetowego. W przypadku pytań lub problemów z aktualizacją, zapraszamy do kontaktu z naszym zespołem wsparcia technicznego.