Files
shopPRO/docs/UPDATE_INSTRUCTIONS.md
Jacek Pyziak 8a633e375f ver. 0.296: REST API for ordersPRO — orders management, dictionaries, API key auth
- New API layer: ApiRouter, OrdersApiController, DictionariesApiController
- Orders API: list (with filters/pagination/updated_since), details, change status, set paid/unpaid
- Dictionaries API: order statuses, transport methods, payment methods
- X-Api-Key authentication via pp_settings.api_key
- OrderRepository: listForApi(), findForApi(), touchUpdatedAt()
- updated_at column on pp_shop_orders for polling support
- api.php: skip session for API requests, route to ApiRouter
- SettingsController: api_key field in system tab
- 30 new tests (666 total, 1930 assertions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 20:25:07 +01:00

4.3 KiB

Instrukcja tworzenia aktualizacji shopPRO

Struktura aktualizacji

Aktualizacje znajdują się w folderze updates/0.XX/ gdzie XX oznacza dziesiątki wersji.

Pliki aktualizacji:

  • ver_X.XXX.zip - paczka ZIP ze zmienionymi plikami (BEZ folderu wersji, bezpośrednio struktura katalogów)
  • ver_X.XXX_sql.txt - opcjonalny plik z zapytaniami SQL (jeśli wymagane zmiany w bazie)
  • ver_X.XXX_files.txt - opcjonalny plik z listą plików do USUNIĘCIA przy aktualizacji (format: F: ../sciezka/do/pliku.php)
  • changelog.php - historia zmian
  • versions.php - konfiguracja wersji (zmienna $current_ver)

Zasada pakowania plików

  • Do paczek aktualizacji nie dodajemy plików *.md (dokumentacja jest tylko wewnętrzna/deweloperska).
  • Do paczek aktualizacji nie dodajemy updates/changelog.php (to plik serwisowy po stronie repozytorium aktualizacji, nie runtime klienta).
  • Do paczek aktualizacji nie dodajemy głównego .htaccess z katalogu projektu (ten plik wdrażamy osobno, poza ZIP aktualizacji).

Procedura tworzenia nowej aktualizacji

Status biezacej aktualizacji (ver. 0.296)

  • Wersja udostepniona: 0.296 (data: 2026-02-19).
  • Pliki publikacyjne:
    • updates/0.20/ver_0.296.zip
    • updates/0.20/ver_0.296_sql.txt
  • Pliki metadanych aktualizacji:
    • updates/changelog.php
    • updates/versions.php ($current_ver = 296)
  • Weryfikacja testow przed publikacja:
    • OK (666 tests, 1930 assertions)

1. Określ numer wersji

Sprawdź ostatnią wersję w updates/ i zwiększ o 1.

2. Utwórz folder tymczasowy ze strukturą w katalogu temp

mkdir -p temp/temp_XXX/sciezka/do/pliku

WAŻNE: W archiwum ZIP NIE powinno być folderu z nazwą wersji (np. ver_0.234/). Struktura ZIP powinna zaczynać się bezpośrednio od katalogów projektu (admin/, autoload/, itp.).

3. Skopiuj zmienione pliki do folderu tymczasowego

cp sciezka/do/pliku.php temp/temp_XXX/sciezka/do/pliku.php

4. Utwórz plik ZIP z zawartości folderu (nie z samego folderu!)

cd temp/temp_XXX
powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_X.XXX.zip' -Force"

5. Usuń folder tymczasowy

rm -rf temp/temp_XXX

6. Zaktualizuj changelog.php

Dodaj wpis na początku pliku:

<b>ver. X.XXX - DD.MM.YYYY</b><br />
- NEW/FIX/UPDATE - opis zmiany
<hr>

Prefiksy:

  • NEW - nowa funkcjonalność
  • FIX - naprawa błędu
  • UPDATE - aktualizacja istniejącej funkcjonalności

7. Zaktualizuj versions.php

Zmień wartość $current_ver na nowy numer wersji (bez przedrostka 0.):

$current_ver = 234; // dla wersji 0.234

8. (Opcjonalnie) Utwórz plik SQL

Jeśli aktualizacja wymaga zmian w bazie danych, utwórz plik ver_X.XXX_sql.txt z zapytaniami SQL.

9. (Opcjonalnie) Utwórz plik z listą plików do usunięcia

Jeśli aktualizacja wymaga usunięcia przestarzałych plików, utwórz plik ver_X.XXX_files.txt:

F: ../sciezka/do/pliku1.php
F: ../sciezka/do/pliku2.php

UWAGA: Pliki wymienione w tym pliku zostaną USUNIĘTE z systemu podczas aktualizacji.

Przykład - aktualizacja 0.234

Zmienione pliki:

  • autoload/admin/controls/class.ShopOrder.php
  • admin/templates/shop-order/order-details.php

Opis: Dodanie przycisku do zaznaczania zamówienia jako wysłane do trustmate.io

Komendy:

# Utwórz strukturę w folderze tymczasowym
mkdir -p temp/temp_234/autoload/admin/controls
mkdir -p temp/temp_234/admin/templates/shop-order

# Skopiuj pliki
cp autoload/admin/controls/class.ShopOrder.php temp/temp_234/autoload/admin/controls/
cp admin/templates/shop-order/order-details.php temp/temp_234/admin/templates/shop-order/

# Utwórz ZIP z ZAWARTOŚCI folderu (ważne: wejdź do folderu i spakuj '*')
cd temp/temp_234
powershell -Command "Compress-Archive -Path '*' -DestinationPath '../ver_0.234.zip' -Force"

# Wróć i usuń folder tymczasowy
cd ..
rm -rf temp_234

Poprawna struktura ZIP:

ver_0.234.zip
├── admin/
│   └── templates/
│       └── shop-order/
│           └── order-details.php
└── autoload/
    └── admin/
        └── controls/
            └── class.ShopOrder.php

NIEPOPRAWNA struktura (do uniknięcia):

ver_0.234.zip
└── ver_0.234/          <-- tego folderu NIE powinno być!
    ├── admin/
    └── autoload/