Faktury to dokumenty prawnie wiążące. W przeciwieństwie do strony produktu czy procesu kasy, gdzie masz swobodę twórczą, faktury muszą spełniać określone wymagania prawne, które różnią się w zależności od kraju. Zrobienie tego źle to nie tylko kwestia nieprofesjonalnego wyglądu — może skutkować niepowodzeniem kontroli podatkowej, karami i odrzuceniem odliczeń faktur przez księgowych Twoich klientów. PrestaShop generuje faktury automatycznie, ale domyślne szablony rzadko spełniają specyficzne wymagania każdej jurysdykcji UE. Ten poradnik obejmuje personalizację faktur PrestaShop pod kątem zgodności prawnej na głównych rynkach europejskich oraz modyfikację szablonów PDF bez utraty zmian przy aktualizacjach.
Wymagania prawne według krajów
Francja (Facture)
Francuskie prawo fakturowania (Code de commerce, artykuł L441-9) jest jednym z najsurowszych w Europie. Każda faktura musi zawierać:
- Datę faktury i kolejny numer faktury (nie wolno mieć luk w sekwencji)
- Identyfikację sprzedawcy: Nazwę firmy, adres, numer SIREN/SIRET, rejestrację RCS, formę prawną (SARL, SAS itp.) i kapitał zakładowy
- Identyfikację nabywcy: Nazwę firmy i adres (dla B2B). Dla B2C imię i nazwisko klienta oraz adres
- Numery identyfikacji VAT (zarówno sprzedawcy, jak i nabywcy dla transakcji wewnątrzwspólnotowych B2B)
- Opis towarów lub usług z ilością i ceną jednostkową bez podatku
- Łączną kwotę bez podatku, stawkę VAT, kwotę VAT i łączną kwotę z podatkiem
- Warunki płatności: Termin płatności, kary za opóźnione płatności i ryczałtowe odszkodowanie za koszty windykacji (40 EUR)
- Szczegóły rabatów, jeśli dotyczy
Od stycznia 2018 roku francuskie firmy e-commerce muszą również korzystać z certyfikowanego oprogramowania do fakturowania, które zapobiega modyfikacji lub usuwaniu faktur (certyfikacja NF 525 lub równoważne zaświadczenie). System faktur PrestaShop generalnie spełnia to wymaganie, ponieważ faktury są przechowywane w bazie danych, a kolejne numery są wymuszane, ale skonsultuj się ze swoim księgowym.
Niemcy (Rechnung)
Niemieckie wymagania dotyczące fakturowania są określone w UStG (Umsatzsteuergesetz) paragraf 14. Wymagane elementy:
- Pełne imię i nazwisko oraz adres sprzedawcy i nabywcy
- Numer podatkowy (Steuernummer) lub identyfikator VAT (USt-IdNr.)
- Data faktury i kolejny numer faktury
- Opis towarów/usług z ilością
- Data dostawy (lub okres świadczenia usługi) — to często pomijany element, który jest inny niż data faktury
- Kwota netto, stawka VAT (19% standardowa, 7% obniżona), kwota VAT i kwota brutto
- Klauzula Kleinunternehmer, jeśli sprzedawca jest zwolniony z VAT („Kein Ausweis von Umsatzsteuer, da Kleinunternehmer gemaess Section 19 UStG")
Niemcy wymagają przechowywania faktur przez 10 lat. Wymaganie daty dostawy jest szczególnie ważne — PrestaShop domyślnie nie umieszcza jej na fakturach. Musisz dostosować szablon, aby ją dodać.
Włochy (Fattura)
Włochy przeszły na obowiązkowe fakturowanie elektroniczne (fatturazione elettronica) poprzez system SDI (Sistema di Interscambio). Dla transakcji B2B we Włoszech faktury papierowe nie są już ważne — musisz przesyłać faktury elektroniczne w formacie XML przez SDI.
- Codice Fiscale lub Partita IVA obu stron
- Codice Destinatario (kod odbiorcy SDI) dla fakturowania elektronicznego B2B
- Progresywny numer faktury (kolejny w roku kalendarzowym)
- Natura, qualita e quantita towarów/usług
- Standardowe stawki IVA: 22% standardowa, 10% obniżona, 4% super-obniżona
Dla włoskich sklepów e-commerce sprzedających B2C faktury papierowe są nadal akceptowane, ale faktura musi zawierać Codice Fiscale klienta, jeśli zostanie o to poproszony.
Hiszpania (Factura)
- NIF/CIF sprzedawcy
- Kolejna numeracja faktur w ramach serii
- Stawki IVA: 21% ogólna, 10% obniżona, 4% super-obniżona
- Recargo de equivalencia, jeśli dotyczy (dla detalistów w reżimie dopłaty równoważności)
Polska (Faktura)
- NIP (numer identyfikacji podatkowej) obu stron dla B2B
- Kolejna numeracja pozwalająca na identyfikację faktury
- Stawki VAT: 23% standardowa, 8% obniżona, 5% super-obniżona, 0% dla niektórych eksportów
- „Mechanizm podzielonej płatności" — adnotacja wymagana dla faktur powyżej 15 000 PLN za określone towary/usługi
Konfiguracja numeracji faktur
Numeracja faktur PrestaShop jest konfigurowana w Zamówienia > Faktury. Możesz ustawić:
- Prefiks faktury: Prefiks tekstowy dla numerów faktur (np. „IN" dla INV-0001 lub „FA" dla francuskich factures)
- Aktualny numer faktury: Następny numer do użycia. Nie zmieniaj tego po rozpoczęciu wystawiania faktur — tworzy to luki.
- Tekst prawny: Tekst wyświetlany na każdej fakturze (przydatny dla warunków płatności, informacji prawnych)
- Tekst stopki: Wyświetlany na dole faktury
Dla zgodności z kolejną numeracją PrestaShop automatycznie inkrementuje numer faktury z każdą nową fakturą. Jednak jeśli resetujesz numer na początku każdego roku (powszechna praktyka w wielu krajach), musisz zrobić to ręcznie w konfiguracji 1 stycznia. Niektóre kraje (jak Francja) wymagają ciągłej numeracji bez resetowania — sprawdź lokalne wymagania.
Moduł mprinvoicenumber z mypresta.rocks rozszerza możliwości numeracji faktur PrestaShop o funkcje takie jak automatyczne roczne resetowanie, obsługa wielu serii (różne serie numeracji dla różnych typów dokumentów) i niestandardowe formaty numerów, w tym rok, miesiąc i numery sekwencyjne z wiodącymi zerami (np. „FA-2029-0001").
Modyfikacja szablonu PDF
PrestaShop generuje faktury PDF za pomocą kombinacji szablonów Smarty i biblioteki TCPDF. Pliki szablonu faktury znajdują się w:
/classes/pdf/HTMLTemplateInvoice.php (klasa PHP przygotowująca dane)
/pdf/invoice.tpl (szablon Smarty dla układu faktury)
/pdf/invoice.style-tab.tpl (style CSS dla faktury)
Bezpieczne podejście do personalizacji
Nigdy nie edytuj bezpośrednio plików rdzenia. Zamiast tego użyj systemu nadpisań PrestaShop:
- Skopiuj
/classes/pdf/HTMLTemplateInvoice.phpdo/override/classes/pdf/HTMLTemplateInvoice.php - Dla plików szablonów utwórz kopie w katalogu
pdf/swojego motywu:/themes/twoj-motyw/pdf/invoice.tpl - Po dodaniu nadpisań usuń pamięć podręczną indeksu klas:
/var/cache/prod/class_index.php(lub/cache/class_index.phpw starszych wersjach)
Dodawanie niestandardowych pól
Aby dodać pola, których PrestaShop domyślnie nie zawiera (jak data dostawy, informacje prawne czy dane konta bankowego), zmodyfikuj nadpisanie HTMLTemplateInvoice.php, aby przekazywać dodatkowe dane do szablonu, a następnie wyświetl je w swoim dostosowanym invoice.tpl.
Częste dodatki:
- Data dostawy: Pobrana z historii dostawy zamówienia
- Dane konta bankowego: IBAN i BIC dla płatności przelewem
- Numer VAT klienta: Przechowywany w adresie klienta
- Numer zamówienia klienta: Numer zamówienia zakupowego klienta dla B2B
- Warunki płatności: Net 30, Net 60 itp.
Noty kredytowe
Przy przetwarzaniu zwrotów PrestaShop generuje noty kredytowe (Gutschriften / avoirs). To również dokumenty prawne i muszą zawierać:
- Odniesienie do oryginalnego numeru faktury
- Własną kolejną numerację (oddzielną od numerów faktur)
- Zwracane kwoty z podziałem VAT
- Powód kredytu (zalecane, ale nie zawsze prawnie wymagane)
Szablony not kredytowych mają tę samą strukturę co faktury i mogą być dostosowane w ten sam sposób w /pdf/credit-slip.tpl.
Fakturowanie wielosklepowe
Jeśli prowadzisz wiele sklepów PrestaShop w konfiguracji multi-shop, każdy sklep może mieć własne ustawienia faktur:
- Różne prefiksy faktur dla każdego sklepu
- Różne teksty prawne dla każdego sklepu
- Różne informacje o firmie dla każdego sklepu
- Niezależne sekwencje numerów faktur dla każdego sklepu
Skonfiguruj te opcje, przełączając się na kontekst konkretnego sklepu w panelu administracyjnym przed zmianą ustawień faktur. Bądź ostrożny: w kontekście „Wszystkie sklepy" zmiany dotyczą wszystkich sklepów.
Dokumenty dostawy
Dokumenty dostawy (bons de livraison) to osobne dokumenty od faktur i nie muszą zawierać informacji o cenach. Są przydatne dla operacji magazynowych i dla klientów, którzy potrzebują dowodu dostawy. PrestaShop generuje je automatycznie i można je dostosować w /pdf/delivery-slip.tpl.
Wymagania dotyczące archiwizacji cyfrowej
Przepisy UE coraz częściej wymagają cyfrowej archiwizacji faktur. Francja wymaga przechowywania faktur w niezmienialnym formacie przez co najmniej 10 lat. Niemcy mają ten sam 10-letni okres przechowywania zgodnie z GoBD (Grundsaetze zur ordnungsmaessigen Fuehrung und Aufbewahrung von Buechern). Włoski system SDI obsługuje archiwizację automatycznie dla faktur elektronicznych, ale faktury papierowe nadal muszą być zdigitalizowane i zarchiwizowane.
PrestaShop przechowuje faktury jako pliki PDF generowane na żądanie z bazy danych. Oznacza to, że faktura nie jest tak naprawdę „przechowywana" jako plik — jest regenerowana za każdym razem, gdy ją pobierasz. Jeśli zmodyfikujesz szablon faktury lub zmienią się dane zamówienia, zregenerowana faktura może różnić się od oryginalnie wystawionej. Dla zgodności prawnej wielu sprzedawców generuje i archiwizuje statyczną kopię PDF każdej faktury w momencie jej utworzenia. Można to zautomatyzować za pomocą modułu, który wpina się w proces generowania faktur i zapisuje trwałą kopię w wyznaczonym miejscu przechowywania.
Rozważ użycie chmurowego przechowywania (AWS S3, Google Cloud Storage) z zasadami write-once-read-many (WORM) do archiwizacji faktur. Zapewnia to zarówno trwałość, jak i niezmienialność wymaganą przez przepisy takie jak GoBD.
Częste problemy z fakturami i rozwiązania
- Faktura pokazuje zły adres firmy: Adres na fakturach pochodzi z Parametry sklepu > Kontakt > Sklepy. Zaktualizuj tam adres swojego sklepu.
- Brakujący numer VAT na fakturach: Numer VAT Twojej firmy jest ustawiany w Międzynarodowe > Podatki w szczegółach sklepu. Numer VAT klienta pojawia się, jeśli wprowadził go w swoim adresie.
- Luki w numeracji faktur: Zwykle spowodowane anulowanymi zamówieniami, które wygenerowały fakturę przed anulacją, lub ręczną zmianą licznika faktur. Niektóre kraje tolerują niewielkie luki; Francja nie. Używaj procesów statusów zamówień, które generują faktury dopiero po potwierdzeniu płatności.
- Generowanie PDF kończy się błędem: Zwykle problem z pamięcią. Duże faktury z wieloma produktami mogą przekroczyć limit pamięci PHP. Zwiększ
memory_limitdo 256M lub więcej. - Znaki specjalne uszkodzone w PDF: Biblioteka TCPDF potrzebuje zainstalowanych prawidłowych czcionek. Dla znaków spoza podstawowego zestawu łacińskiego (polskie, czeskie itp.) upewnij się, że odpowiednie pliki czcionek są dostępne.
Najlepsze praktyki
- Poproś swojego księgowego o przegląd szablonu faktury przed uruchomieniem
- Testuj generowanie faktur z zamówieniami różnych typów (B2B z VAT, B2C, wewnątrzwspólnotowe, eksport)
- Zachowaj kopię zapasową swoich dostosowanych szablonów — mogą być nadpisane przez aktualizacje modułów
- Przeglądaj wymagania prawne dotyczące faktur co roku, ponieważ przepisy się zmieniają
- Używaj modułu takiego jak mprinvoicenumber do zaawansowanej numeracji, jeśli Twój kraj wymaga określonych formatów
Fakturowanie to jeden z tych obszarów, gdzie poprawne działanie jest niewidoczne, ale błędy tworzą realne problemy prawne i finansowe. Zainwestuj czas na początku, aby prawidłowo dostosować faktury PrestaShop do swojej jurysdykcji. Aby poznać zaawansowaną numerację faktur, niestandardowe pola i obsługę wielu serii, zapoznaj się z modułami fakturowania na mypresta.rocks.
Powiązane Artykuły
- E-fakturowanie w Europie: które kraje tego wymagają i jak się przygotować
- Konfiguracja podatków w PrestaShop: zasady VAT w UE
- VAT w Unii Europejskiej: OSS, IOSS i co musi obsłużyć Twój sklep PrestaShop
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.