# GLS Poland for PrestaShop

Oficjalny modul integracyjny GLS Poland dla PrestaShop.

## Wymagania

- PrestaShop: `>= 1.7.8` (ustawione w `glspoland.php`)
- PHP: `>= 7.2` (modul sprawdza to podczas instalacji)
- Rozszerzenie PHP: `soap`

## Aktualna wersja

- Modul: `1.2.0`

## Funkcje

- konfiguracja API GLS z poziomu Back Office
- obsluga przewoznikow GLS (kurier, kurier COD, ParcelShop)
- obsluga przesylek i etykiet
- obsluga punktow ParcelShop
- integracja z hookami checkout i zamowien

## Instalacja (Back Office)

1. Wejdz w `Moduly -> Menedzer modulow -> Zaladuj modul`.
2. Wgraj paczke ZIP z katalogiem `glspoland`.
3. Po instalacji wejdz w konfiguracje modulu.
4. Jezeli BO pokaze blad po uploadzie, odswiez strone i sprawdz czy modul pojawil sie na liscie.

## Instalacja manualna (FTP/SFTP)

1. Skopiuj katalog `glspoland` do `modules/`.
2. Wyczyść cache PrestaShop (`var/cache/prod`, opcjonalnie `var/cache/dev`).
3. Wejdz do `Moduly -> Menedzer modulow` i kliknij `Zainstaluj`.

## Aktualizacja modulu

1. Podmien pliki modulu na nowa wersje.
2. Wejdz do `Moduly -> Menedzer modulow`.
3. Kliknij `Aktualizuj` przy module (jezeli widoczne).
4. Wyczyść cache PrestaShop.

Skrypty upgrade znajduja sie w katalogu `upgrade/` i sa uruchamiane przez PrestaShop na podstawie wersji modulu.

## Changelog

Lista zmian znajduje sie w pliku `CHANGELOG.md`.

## Uprawnienia i Access denied

Jesli po instalacji pojawia sie `Access denied`:

1. Wejdz w `Zaawansowane -> Zespol -> Uprawnienia`.
2. Dla profilu administratora zaznacz pelne prawa dla:
   - `GLS Polska`
   - `Wysylka -> Przesylki GLS`
   - modulu `GLS Polska` (`Zobacz/Konfiguruj/Odinstaluj`)
3. Wyloguj i zaloguj sie ponownie.
4. Wyczyść cache.

## Najczestsze problemy

### 1) `RouteNotFoundException` dla `admin_gls_poland_config_api`

Najczesciej to efekt uboczny nieudanej kompilacji kontenera/routingu.

Kroki:

1. Wyczyść cache PrestaShop.
2. Sprawdz czy modul jest aktywny i poprawnie zainstalowany.
3. Sprawdz uprawnienia BO (sekcja wyzej).

### 2) Blad kopiowania pliku z `vendor/.../PHPUnit/...` podczas uploadu

Na niektorych hostingach skanery bezpieczenstwa blokuja pliki testowe (`PHPUnit`) podczas rozpakowywania uploadu.

Kroki:

1. Usun niedokonczony katalog `modules/glspoland`.
2. Wyczyść cache.
3. Wgraj nowa paczke modulu.

### 3) Blad Doctrine: `Could not find the entity manager for class ...`

Najczesciej wystepuje przy pierwszym uploadzie po stronie BO i niepelnej inicjalizacji kontenera.

Kroki:

1. Upewnij sie, ze uzywasz aktualnej wersji modulu.
2. Usun niedokonczona instalacje (`modules/glspoland`), wyczyść cache, wgraj ponownie.

## Rozwoj i wersjonowanie

Przy podbijaniu wersji modulu:

1. Zmien wersje w:
   - `glspoland.php`
   - `config.xml`
   - `config_pl.xml`
2. Dodaj plik `upgrade/upgrade-x.y.z.php` z funkcja `upgrade_module_x_y_z(...)`.
3. Jezeli sa zmiany w bazie danych, dodaj nowa migracje w:
   - `src/PrestaShop/Installer/Migration/VersionX_Y_Z.php`

## Dokumentacja

Szczegolowa dokumentacja:

- `docs/documentation.pdf`
- `docs/user_guidelines.pdf`

## Licencja i autor

- Autor: `GLS Poland Sp. z o.o.`

