# dfproforma: automatyczne generowanie faktur proforma

> Prezentacja dfproforma automatyzuje generowanie faktur proforma w PrestaShop 8. Gdy tylko zamówienie osiągnie skonfigurowany status, moduł tworzy spersonalizowany plik PDF (logo, numeracja, wielojęzyczna stopka) i udostępnia go klientowi w jego…

- Strona: <https://www.datafirefly.com/pl/documentation/dfproforma/>
- Język: pl
- Zaktualizowano: 2026-08-01
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfproforma/index.md), [en](https://www.datafirefly.com/en/documentation/dfproforma/index.md), [es](https://www.datafirefly.com/es/documentation/dfproforma/index.md), [de](https://www.datafirefly.com/de/documentation/dfproforma/index.md), [it](https://www.datafirefly.com/it/documentation/dfproforma/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfproforma/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfproforma/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

## Prezentacja

dfproforma automatyzuje generowanie faktur proforma w PrestaShop 8. Gdy tylko zamówienie osiągnie skonfigurowany status, moduł tworzy spersonalizowany plik PDF (logo, numeracja, wielojęzyczna stopka) i udostępnia go klientowi w jego koncie. Ręczne generowanie z poziomu karty zamówienia pozostaje dostępne w każdej chwili.

**Główne zastosowanie:** kontekst B2B, w którym klient musi otrzymać proformę, zanim potwierdzi płatność albo uzyska wewnętrzną akceptację wydatku.

## Instalacja

1. W back office PrestaShop przejdź do **Moduły > Menedżer modułów**.
2. Kliknij **Wgraj moduł** i wybierz plik `dfproforma.zip`.
3. Kliknij **Zainstaluj**. Tabele SQL są tworzone automatycznie.
4. Moduł pojawia się na liście pod nazwą _Proforma Invoice Generator_.

Zgodność: PrestaShop od 8.0 do 8.x, PHP od 7.4 do 8.3, multistore.

## Konfiguracja ogólna

Wejdź w konfigurację przez **Moduły > Menedżer modułów > dfproforma > Konfiguruj**.

### Statusy wyzwalające

Zaznacz statusy zamówienia, które mają wyzwalać automatyczne generowanie proformy. Gdy tylko zamówienie przejdzie w jeden z tych statusów, plik PDF zostaje utworzony i zapisany na serwerze.

Zalecenie: wyzwalaj na statusie _Płatność zaakceptowana_ przy standardowym przepływie albo na _Oczekiwanie na płatność_ w kontekście B2B, gdzie proforma poprzedza płatność.

### Logo w PDF

Wgraj logo dedykowane proformom (akceptowane formaty: PNG, JPG). Jeśli pole pozostanie puste, domyślnie używane jest logo sklepu.

### Załącznik do e-maila

Włącz opcję **Dołącz proformę do e-maili potwierdzających**, aby plik PDF był automatycznie załączany do e-maili zamówienia (`order_conf`, `bankwire`, `cheque`, `payment`).

## Numeracja proform

Numerację konfiguruje się osobno dla każdego zainstalowanego języka. Dla każdego języka:

- **Prefiks**: tekst dodawany przed numerem (na przykład `PROFORMA`, `PRO`).
- **Numer początkowy**: liczba całkowita, od której zaczyna się licznik (na przykład `1` albo `1000`).
- **Liczba cyfr**: długość licznika z zerami wiodącymi (na przykład `6` daje `000001`).

Przykład: prefiks `PROFORMA`, początek `1`, 6 cyfr daje pierwszą proformę o numerze `PROFORMA-000001`.

W trybie multistore numeracja jest odizolowana per sklep: klucz złożony `proforma_number + id_shop` gwarantuje unikalność bez duplikatów między sklepami.

### Stopka PDF

Wpisz tekst stopki dla każdego aktywnego języka. Ten tekst pojawia się na dole każdej wygenerowanej proformy w odpowiednim języku.

Dla polskiego sklepu w stopce warto umieścić dane rejestrowe (NIP, REGON, numer KRS przy spółkach) oraz adnotację, że dokument nie jest fakturą VAT i nie stanowi podstawy do odliczenia podatku. Proforma nie jest dokumentem księgowym w rozumieniu polskich przepisów o podatku od towarów i usług.

## Ręczne generowanie z back office

Na każdej karcie zamówienia w panelu bocznym pojawia się karta **Faktura proforma**:

- Jeśli proforma istnieje: bezpośredni link do pobrania pliku PDF.
- Jeśli proformy nie ma: przycisk **Wygeneruj proformę**, który tworzy ją natychmiast, niezależnie od statusu zamówienia.

## Pobieranie przez klienta

Klient ma dostęp do swoich proform z poziomu konta:

- **Strona szczegółów zamówienia**: przycisk _Pobierz proformę_ pojawia się bezpośrednio pod informacjami o zamówieniu.
- **Historia zamówień**: linki do proform są wstawiane przez JavaScript, bez dodatkowego żądania AJAX (dodane w wersji 1.0.2).

Dostęp jest chroniony kluczem bezpieczeństwa zamówienia (`secure_key`): klient może pobrać wyłącznie własne proformy.

## Struktura pliku PDF

Każda wygenerowana proforma zawiera:

- Numer proformy (zgodny ze skonfigurowaną numeracją)
- Datę wygenerowania
- Logo sklepu (albo logo własne)
- Dane sklepu i dane kupującego
- Tabelę produktów z ilościami i cenami jednostkowymi netto i brutto
- Sumy (netto, VAT, brutto, koszty dostawy)
- Spersonalizowaną stopkę w języku zamówienia

## Multistore

dfproforma jest natywnie zgodny z trybem multistore w PrestaShop 8:

- Konfiguracja (statusy, logo, numeracja, stopka) jest niezależna dla każdego sklepu.
- Pliki PDF są zapisywane w osobnym katalogu dla każdego sklepu.
- Numeracja jest unikalna dla kombinacji numeru i sklepu.

## Odinstalowanie

Odinstalowanie usuwa tabelę SQL `df_proforma` i wszystkie klucze konfiguracji z prefiksem `DFPROFORMA_`. Wygenerowane wcześniej pliki PDF pozostają na serwerze.

## Historia zmian

- **v1.0.2**: integracja z historią zamówień przez hook `actionFrontControllerSetMedia`, wyświetlanie linków bez dodatkowego żądania AJAX.
- **v1.0.1**: drobne poprawki stabilności.
- **v1.0.0**: pierwsza wersja, generowanie według statusu, konfigurowalny PDF, załącznik do e-maila, pobieranie przez klienta.
