
Sprawdzone i zaktualizowane w czerwcu 2026 — wbudowane dostarczanie produktów wirtualnych i mechanizmy ochrony pobrań zweryfikowane w PrestaShop 1.7, 8 i 9.
Oto niewygodna prawda o sprzedaży plików cyfrowych: sama sprzedaż to najprostsza część. Trudność zaczyna się sekundę po płatności, gdy klient oczekuje pliku natychmiast, zakłada, że nadal będzie działał po zmianie laptopa w przyszłym miesiącu, a jeśli cokolwiek pójdzie nie tak — dzieli go jedno kliknięcie od obciążenia zwrotnego, przy którym trudno udowodnić, że na nie nie zasłużyłeś. Towary fizyczne zostawiają ślad: numer przesyłki, podpis, kuriera. Pobranie nie zostawia nic, dopóki sam nie zbudujesz tego śladu. Właśnie o tym jest ten poradnik: jak PrestaShop naprawdę dostarcza i chroni plik pod maską, gdzie wbudowany system działa solidnie, gdzie po cichu zostawia luki i co zrobić z tymi brakami.
To część handlu cyfrowego dotycząca dostarczania i ochrony plików. Szerszy model biznesowy — jak wyceniać pakiety, konstruować licencje, obsługiwać VAT w UE i w ogóle skonfigurować produkt wirtualny — to osobny temat, opisany w artykule sprzedaż produktów cyfrowych w PrestaShop. Tutaj zawężamy temat i wchodzimy głębiej w jedno pytanie: gdy ktoś już zapłacił, jak bezpiecznie dostarczyć mu plik i jak powstrzymać jego wyciek dalej?
Jak PrestaShop faktycznie udostępnia plik do pobrania

Warto wiedzieć, co dzieje się w tle, bo z tego wynikają wszystkie decyzje dotyczące ochrony. Gdy oznaczysz produkt jako produkt wirtualny i dołączysz plik, PrestaShop nie wrzuca go do publicznego katalogu. Zapisuje go w folderze /download/ w katalogu głównym instalacji, pod nazwą zmienioną na długi hash SHA1 bez rozszerzenia — na przykład /download/3f7a9c1e…. Ten folder zawiera plik .htaccess, który blokuje bezpośredni dostęp z sieci, więc klient (albo bot) zgadujący adresy URL nic nie dostaje.
Rzeczywiste pobranie obsługuje kontroler, a nie statyczny link. W PrestaShop od 1.7 do 8 plik jest serwowany przez front controller get-file, dostępny przez bezpieczny link pobierania zawierający token zamówienia/pobrania zamiast bezpośredniej publicznej ścieżki do pliku — dokładny kształt URL-a i parametry zależą od wersji oraz od miejsca, z którego klient trafił do pobrania (konto, zamówienie albo e-mail), więc nie opieraj się na jednym zakodowanym na stałe formacie. Zanim zostanie wysłany choćby jeden bajt, dostęp jest sprawdzany przez token pobrania/bezpieczeństwa, poprawność i opłacony status zamówienia, okno ważności oraz liczbę pozostałych pobrań; zależnie od ścieżki i kontekstu może też obowiązywać logowanie na konto. Metadane stojące za tym mechanizmem znajdują się w dwóch miejscach i warto je rozróżniać. Domyślne ustawienia produktu są w tabeli ps_product_download — kolumny, które mają dla Ciebie znaczenie, to nb_downloadable (ile razy), date_expiration (do kiedy), is_shareable oraz display_filename (przyjazna nazwa widoczna dla klienta, oddzielna od zahashowanej nazwy na dysku). Po złożeniu zamówienia stan pobrania dla konkretnego zamówienia — własny hash pobierania zamówienia, pozostała liczba pobrań i termin ważności — jest zapisywany przy szczegółach zamówienia, dzięki czemu każdy zakup śledzi swoje użycie niezależnie od domyślnych ustawień produktu.
Co więc zyskujesz? Od razu po instalacji PrestaShop daje Ci dwie rzeczy, które większość sprzedawców uważa za wymagające dodatkowych rozwiązań: pliki, do których nie da się dostać przez zgadywanie URL-a, oraz pobrania dopuszczane tylko dla prawdziwego, opłaconego, zalogowanego zamówienia. Nie startujesz od zera. Startujesz od poziomu „bezpieczne, ale mało precyzyjne” — a Twoja praca polega na dopracowaniu tego mechanizmu.
Poprawna konfiguracja wbudowanego produktu wirtualnego
Ustawienia decydujące o sposobie dostarczania znajdują się w karcie Produkt wirtualny produktu (w wersjach 1.7+ najpierw ustaw typ produktu na Produkt wirtualny, wtedy karta się pojawi). Pola wyglądają banalnie; złe wartości są przyczyną większości zgłoszeń, jakie dostają sprzedawcy produktów cyfrowych.
| Ustawienie | Co kontroluje | Rozsądna wartość & dlaczego |
|---|---|---|
| Liczba dozwolonych pobrań (nb_downloadable) | Ile razy to samo zamówienie może pobrać plik | Nie 1. Klient, który zmienia laptopa, gubi plik albo traci połączenie, potrzebuje kolejnej próby. 3–5 pobrań pokrywa uczciwe ponowne pobrania, nie zachęcając do masowego udostępniania. |
| Data wygaśnięcia | Data, po której link przestaje działać | Zostaw ją hojną albo pustą, chyba że celowo sprzedajesz dostęp ograniczony czasowo. Agresywny termin wygaśnięcia zmienia „kupiłem to w zeszłym roku” w zgłoszenie do obsługi. |
| Liczba dni | Liczba dni, przez które link pozostaje ważny po zamówieniu | 30–90 dla produktów jednorazowych; praktycznie bez limitu, jeśli obiecujesz stały dostęp. Połącz to z ponownym pobraniem z konta, opisanym niżej. |
| Plik / nazwa pliku | Rzeczywisty upload, ograniczony przez ustawienia serwera upload_max_filesize i post_max_size | Przesyłaj tutaj tylko małe i średnie pliki. Duże pliki powinny trafić do chmury — zobacz niżej. |
Jedna pułapka zasługuje na osobne podkreślenie: prawdziwy produkt wirtualny nie powinien mieć wagi ani wysyłki. Jeśli produkt cyfrowy nadal prowadzi proces realizacji zamówienia przez krok dostawy, został skonfigurowany jako produkt fizyczny z plikiem, a nie jako wirtualny. Sprawdź, czy typ jest wirtualny, aby pominąć krok przewoźnika i nie wymagać adresu dostawy dla pobrania.
Trzy modele dostarczania plików i kiedy wybrać każdy z nich
„Dostarczenie” pliku nie jest jedną rzeczą. Istnieją trzy wzorce, a właściwy wybór zależy niemal całkowicie od rozmiaru pliku i tego, jak bardzo zależy Ci na możliwości śledzenia.
| Model | Dobre dla | Haczyk |
|---|---|---|
| Wbudowane pobieranie z konta (kontroler get-file) | Większość plików do kilkuset MB; domyślna i najbezpieczniejsza ścieżka | Plik jest przesyłany przez Twój serwer WWW — duże pliki zajmują procesy PHP i obciążają max_execution_time. |
| Załącznik e-mail | Bardzo małe pliki — klucz licencyjny, pojedynczy PDF, krótki szablon poniżej około 10 MB | Limity załączników u dostawców (często 25 MB), filtrowanie spamu i zerowa kontrola dostępu po trafieniu do skrzynki. Dobre dla kluczy, złe dla wartościowych plików. |
| Przechowywanie w chmurze z podpisanymi URL-ami | Duże pakiety oprogramowania, kursy wideo, paczki zasobów w wysokiej rozdzielczości | Wymaga ograniczonego czasowo, podpisanego URL-a (S3, GCS lub podobnego) generowanego dla każdego zamówienia — nigdy stałego publicznego linku, bo taki link prędzej czy później zostanie zaindeksowany i udostępniony. |
Reguła decyzyjna jest prosta. Poniżej kilkuset megabajtów pozwól działać wbudowanemu kontrolerowi PrestaShop — jest już bezpieczny i powiązany z zamówieniem. Powyżej tego progu nie przepychaj pliku przez własny serwer WWW; trzymaj go w chmurze i wydawaj podpisany URL, który wygasa. Wbudowany kontroler chroni dostęp; chmura chroni responsywność Twojego serwera, gdy wszyscy pobierają jednocześnie.
Ochrona, która odstrasza, ale nie karze kupujących
Nie da się sprawić, żeby plik był niemożliwy do skopiowania. Każdy, kto twierdzi inaczej, sprzedaje DRM. Uczciwy cel jest węższy i osiągalny: sprawić, żeby legalny zakup był najłatwiejszą drogą, a przypadkowe dalsze udostępnianie było na tyle śledzalne, by ludzie się zawahali. Trzy środki robią tu niemal całą robotę.
Znakowanie wodne dla konkretnego klienta
To najcenniejsza i najmniej uciążliwa ochrona dokumentów oraz mediów. Oznacz każdy pobrany PDF, obraz albo archiwum imieniem i nazwiskiem kupującego, adresem e-mail lub ID zamówienia. Nie powstrzyma to zdeterminowanego pirata — i dobrze, bo nie do niego jest skierowane. Jest skierowane do zwykłego klienta, który mógłby odruchowo przesłać plik współpracownikowi albo na forum. Gdy jego własne dane są na każdej stronie, większość tego nie robi. A kiedy plik jednak wycieknie, znak wodny powie Ci, z którego konta pochodzi. Wbudowana funkcja produktu wirtualnego nie dodaje znaków wodnych; to najczęstszy powód, dla którego sprzedawcy sięgają po moduł.
Klucze licencyjne (gdy sam plik nie jest produktem)
W przypadku oprogramowania plik często jest bezwartościowy bez klucza. Wysyłaj unikalny klucz dla każdego zamówienia, sprawdzaj go podczas instalacji albo okresowo na swoim serwerze, a wycieknięty plik staje się wyciekniętym instalatorem, którego nie da się aktywować. Głębsza strategia — klucze wieczyste kontra subskrypcyjne, powiązanie z domeną, licencje warstwowe — jest omówiona w artykule sprzedaż produktów cyfrowych w PrestaShop; tutaj wystarczy zaznaczyć, że dostarczenie klucza jest częścią dostarczenia: klucz musi pojawić się w tym samym momencie co pobranie, zarówno w e-mailu potwierdzającym, jak i na stronie konta, inaczej sam tworzysz kolejkę zgłoszeń do obsługi.
Limity pobrań i wygaśnięcie jako dyskretne zabezpieczenie
Wartości nb_downloadable i date_expiration, które ustawiasz wcześniej, nie są tylko porządkowaniem danych — ograniczają, jak daleko jeden zakup może się rozprzestrzenić, zanim link przestanie działać. Dobrze ustawione (kilka pobrań, rozsądne okno czasowe, z możliwością ponownego pobrania z konta) są niewidoczne dla uczciwych kupujących i stanowią realny sufit dla udostępniania linków.
Czego unikać: ciężkiego DRM (Adobe DRM, Widevine, FairPlay). Dodaje tarcie osobom, które Ci zapłaciły, psuje się na urządzeniach, których nie przewidziałeś, i tak zostaje złamany przez ludzi, których się obawiałeś. Dla małego albo średniego sklepu to bilans ujemny. Znak wodny, klucz i limit — a energię włóż w doświadczenie klienta.
Aktualizacje i ponowne pobrania: element, który buduje lojalność
W przeciwieństwie do produktu fizycznego produkt cyfrowy ma się rozwijać. Kupujący, który w poprzednim kwartale dostał szablon, wtyczkę albo ebook, zakłada, że w tym kwartale może pobrać poprawioną wersję — i ma pretensje, jeśli musi za nią zapłacić ponownie. Wbudowany produkt wirtualny podmienia plik na dysku, gdy prześlesz nowy, ale nie zna pojęcia wersji: nie ma changeloga, sygnału „masz v2, wyszła v3”, ani powiadomienia dla wcześniejszych kupujących. Praktyczne minimum, które jesteś winien klientom, to więc:
- Ponowne pobranie z konta — absolutna podstawa. Strona zamówienia musi zawsze udostępniać aktualny plik, w ramach ustawionego okna pobierania.
- Powiadomienie o aktualizacji — choćby zwykły e-mail, gdy pojawia się nowa wersja. Sprowadza klientów z powrotem i po cichu uzasadnia cenę.
- Changelog — kupujący muszą wiedzieć, co się zmieniło, zanim poświęcą czas na ponowne pobranie.
- Określony okres aktualizacji — „12 miesięcy aktualizacji, opcjonalne odnowienie” jest do utrzymania; „dożywotnie aktualizacje” to otwarte zobowiązanie, którego pożałujesz przy produkcie wycofywanym później z oferty.
Wersjonowanie, changelogi dla wydań i powiadamianie istniejących kupujących to dokładnie te luki, w których narzędzie stworzone do tego celu zarabia na swoje miejsce — więcej o tym poniżej.
Budowanie śladu dla obciążeń zwrotnych, o którym nikt nie myśli, dopóki nie jest za późno
Tu sprzedawcy cyfrowi naprawdę tracą pieniądze, więc ten temat zasługuje na osobną sekcję, bo wbudowany system zapisuje zbyt mało danych przydatnych w sporze. Klient twierdzi, że nigdy nie otrzymał pliku. Przy paczce pokazałbyś numer śledzenia. Przy pobraniu masz… to, co zalogowałeś. Jeśli nic, przegrywasz spór i ponosisz opłatę.
Buduj dowody świadomie:
- Loguj każde pobranie ze znacznikiem czasu, adresem IP, user agentem oraz kontem klienta / zamówieniem, do którego należało. To Twój numer śledzenia.
- Wysyłaj e-mail z dostawą, który jasno opisuje, co zostało kupione, i zawiera link do pobrania — wtedy „nic nie dostałem” kłóci się z treścią skrzynki klienta.
- Przechowuj rekordy dostępu — czasy logowania, historię pobrań dla zamówienia — aby wzorzec wielokrotnych pobrań podważał twierdzenie „nigdy nie otrzymałem”.
- Miej regulamin, który klient akceptuje przed zakupem, aby zasady tego, co kupił, były zapisane.
- Odpowiadaj szybko z tymi dowodami; operatorzy płatności oceniają spory pod kątem tego, czy sprzedawca potrafi wykazać dostarczenie, a czysty log pobrania zwykle to robi.
Jeśli masz wynieść z tego poradnika jedną rzecz, niech będzie to ta: zamień dostarczenie w zalogowane zdarzenie. Pobranie, które zostawia rekord z czasem i adresem IP, to różnica między wygraną a przegraną w sporach, które po cichu zjadają marżę produktów cyfrowych.
Gdy wbudowany system przestaje wystarczać
Wbudowane dostarczanie PrestaShop naprawdę dobrze radzi sobie z podstawami — bezpiecznym przechowywaniem, dostępem zależnym od zamówienia i limitami pobrań. Kończy mu się przestrzeń dokładnie w punktach opisanych wyżej: nie dodaje znaków wodnych, nie obsługuje wersji, nie generuje ani nie wiąże kluczy licencyjnych, nie loguje pobrań na poziomie przydatnym w sporach i nie powiadamia wcześniejszych kupujących o aktualizacjach. Dla poważnego sprzedawcy cyfrowego to nie są przypadki brzegowe; to codzienna praca.
Właśnie tę lukę ma zamknąć nasz moduł Digital Revolution, i odpowiada on na każdy problem poruszony w tym poradniku. Co konkretnie zmienia dla Ciebie? Pobrania trafiają do klientów przez ograniczone czasowo linki oparte na tokenach, które utrudniają udostępnianie, zamiast polegać wyłącznie na limitach. Każde pobranie jest personalizowane informacjami znaku wodnego, więc wycieknięty plik wskazuje konto, z którego pochodzi — piractwo staje się śledzalne, a nie tylko zakazane. Pliki są dostarczane automatycznie w momencie potwierdzenia płatności, z linkiem i dowolnym kluczem licencyjnym w tym samym e-mailu, co ucina zgłoszenia typu „gdzie jest moje pobranie?”. Zarządzanie wersjami oznacza, że obecni klienci dostają zaktualizowany plik (i changelog), więc aktualizacje budują lojalność zamiast obciążać obsługę. A każde pobranie jest logowane z IP, user agentem i ID znaku wodnego — czyli dokładnie ten ślad dla obciążeń zwrotnych opisany wyżej, przechowywany za Ciebie, zamiast składany w panice w środku sporu. Dla sprzedawców dystrybuujących oprogramowanie albo moduły dodaje typy licencji, powiązanie z domeną, dzięki któremu klucza nie da się zainstalować wszędzie naraz, oraz zarządzanie tym wszystkim w portalu klienta. Instaluje się i konfiguruje z panelu administracyjnego, nie z faktury od programisty.
Gdzie dostarczanie plików łączy się z resztą Twojej operacji
Ochrona i dostarczenie pliku to jedno ogniwo łańcucha. Kilka sąsiednich zadań decyduje, czy całe doświadczenie się utrzyma:
- Mechanika dostarczania ma znaczenie dopiero wtedy, gdy zamówienie istnieje poprawnie — obsługa, edycja i przesuwanie tych zamówień to osobna dyscyplina. Zobacz workflow zarządzania zamówieniami oraz, na nieunikniony moment „wysłałem im zły pakiet”, edycję zamówienia po jego złożeniu przez klienta.
- Kupujący, który zgubi e-mail z dostawą, potrzebuje ponownej wysyłki — to mała funkcja, na której klienci cyfrowi polegają stale. Opisujemy ją w artykule o ponownym wysyłaniu potwierdzeń zamówienia.
- Automatyzacja przepływu statusów tak, aby „płatność zaakceptowana” niezawodnie uruchamiała dostawę, wymaga własnej konfiguracji: dostosowanie i automatyzacja workflow statusów zamówień.
- Przed startem testowe zakupy wykonane podczas składania tego wszystkiego trzeba usunąć — usuń zamówienia testowe przed uruchomieniem sklepu.
Najczęściej zadawane pytania
Gdzie PrestaShop przechowuje pliki pobierane przez klientów?
W folderze /download/ w katalogu głównym instalacji, pod nazwą zmienioną na długi hash SHA1 bez rozszerzenia — nigdy w publicznym folderze WWW. Ten folder zawiera plik .htaccess, który blokuje bezpośredni dostęp, więc zgadywanie URL-a nic botowi nie da. Rzeczywiste pobranie obsługuje front controller (trasa get-file w wersjach 1.7–8), który sprawdza token pobrania, opłacony/prawidłowy status zamówienia, okno ważności i pozostałą liczbę pobrań, zanim wyśle choćby jeden bajt.
Ile pobrań dopuścić dla jednego zakupu?
Nie 1. Klient, który zmienia laptopa, traci połączenie albo czyści dysk, potrzebuje kolejnej próby. Trzy do pięciu pobrań pokrywa uczciwe ponowne pobrania, nie zachęcając do masowego udostępniania. Ustawienie wartości 1 to najczęstsza przyczyna zgłoszeń typu „zgubiłem plik”. Połącz rozsądny limit z możliwością ponownego pobrania z konta klienta.
Czy mogę powstrzymać ludzi przed udostępnianiem pliku po zakupie?
Nie da się sprawić, żeby plik był niemożliwy do skopiowania — każdy, kto twierdzi inaczej, sprzedaje DRM. Osiągalny cel to sprawić, by przypadkowe dalsze udostępnianie było śledzalne i odrobinę niewygodne. Trzy środki, które robią niemal całą robotę: znakowanie wodne dla konkretnego klienta (umieszczenie imienia/nazwy i e-maila kupującego w każdym pobraniu), klucze licencyjne dla oprogramowania oraz rozsądne limity pobrań wraz z wygaśnięciem. Ciężki DRM (Adobe DRM, Widevine, FairPlay) utrudnia życie uczciwym kupującym i tak zostaje złamany przez ludzi, których się obawiałeś.
Czy PrestaShop dodaje znaki wodne do pobrań albo loguje je pod obciążenia zwrotne?
Nie. Wbudowany produkt wirtualny jest bezpieczny i powiązany z zamówieniem, ale nie dodaje znaków wodnych do plików, nie obsługuje ich wersji, nie generuje ani nie wiąże kluczy licencyjnych i zapisuje bardzo mało informacji przydatnych w sporze płatniczym. Te luki są codziennością poważnego sprzedawcy cyfrowego — znakowanie wodne dla klienta, automatyczna dostawa z kluczem, zarządzanie wersjami i log pobrań z IP/user-agentem to dokładnie to, co dodaje Digital Revolution.
Jak wygrać obciążenie zwrotne „nigdy nie dostałem pobrania”?
Zamień dostarczenie w zalogowane zdarzenie. Rejestruj każde pobranie ze znacznikiem czasu, IP, user agentem i zamówieniem, do którego należało — to Twój numer śledzenia. Wyślij e-mail z dostawą, który wyraźnie nazywa kupiony produkt i linkuje do niego, aby „nic nie dostałem” było sprzeczne z zawartością skrzynki klienta. Operatorzy płatności oceniają spory pod kątem tego, czy sprzedawca potrafi pokazać dostarczenie, a czysty log pobrania zwykle to potwierdza.
Najważniejszy wniosek
Sprzedaż plików z zewnątrz wygląda bezwysiłkowo — bez magazynu, bez kuriera, czysta marża. Praca po prostu przenosi się w mniej widoczne miejsce: do upewnienia się, że właściwa osoba dostaje plik, niewłaściwe osoby nie mogą go dostać, plik z czasem się poprawia, a każde dostarczenie zostawia rekord, którego możesz bronić, gdy w grę wchodzą pieniądze. PrestaShop za darmo daje Ci bezpieczną podstawę z dostępem zależnym od zamówienia; wartość, którą dodajesz na wierzchu, to znakowanie wodne, wersjonowanie, automatyczna dostawa z kluczem i log pobrań, który wygrywa spory. Zrób to dobrze, a „bezproblemowy produkt cyfrowy” w końcu zacznie zachowywać się jak bezproblemowy — dla klienta i dla Ciebie.
Komentarze
Brak komentarzy. Bądź pierwszy!
Bądź pierwszy: zadaj pytanie albo podziel się przydatną opinią.
Dodaj komentarz
Dodaj pytanie, szczegół montażu albo opinię, która może pomóc innemu czytelnikowi.