feat: Add User-Agent header to Allegro API requests
- Implemented buildUserAgent() method in AllegroApiClient, AllegroOAuthClient, and AllegroTrackingService to include User-Agent header in all HTTP requests to Allegro API. - Updated .env.example to include APP_VERSION and ALLEGRO_USER_AGENT_URL for configuration. - Created public /info page to provide application details required by Allegro, including app name, version, description, and contact information. - Added minimalist layout for public pages to ensure a professional appearance. - Ensured all changes comply with Allegro's API requirements for User-Agent header.
This commit is contained in:
164
.paul/phases/88-allegro-user-agent/88-01-PLAN.md
Normal file
164
.paul/phases/88-allegro-user-agent/88-01-PLAN.md
Normal file
@@ -0,0 +1,164 @@
|
||||
---
|
||||
phase: 88-allegro-user-agent
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified: [src/Modules/Settings/AllegroApiClient.php, src/Modules/Settings/AllegroOAuthClient.php, src/Modules/Shipments/AllegroTrackingService.php, .env.example, config/app.php]
|
||||
autonomous: true
|
||||
delegation: off
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Dodanie nagłówka User-Agent do wszystkich requestów HTTP wysyłanych do Allegro REST API, zgodnie z wymaganiami art. 3.4.c Regulaminu REST API Allegro.
|
||||
|
||||
## Purpose
|
||||
Od 1 lipca 2026 Allegro będzie odrzucać requesty bez poprawnego User-Agent. Bez tej zmiany integracja z Allegro przestanie działać.
|
||||
|
||||
## Output
|
||||
Wszystkie requesty do Allegro API (REST, OAuth, tracking) będą zawierać nagłówek:
|
||||
`orderPRO/1.0.0 (+https://orderpro.pl/info)`
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Source Files
|
||||
@src/Modules/Settings/AllegroApiClient.php — główny klient REST API (4 metody z CURLOPT_HTTPHEADER: linie 216, 281, 345, 393)
|
||||
@src/Modules/Settings/AllegroOAuthClient.php — klient OAuth token exchange (1 metoda: linia 153)
|
||||
@src/Modules/Shipments/AllegroTrackingService.php — tracking przesyłek (2 metody: linie 136, 186)
|
||||
@.env.example — konfiguracja aplikacji (APP_NAME=orderPRO)
|
||||
</context>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: User-Agent w requestach REST API
|
||||
```gherkin
|
||||
Given AllegroApiClient wysyła request do Allegro API (GET, POST, PUT, POST binary)
|
||||
When request jest wykonywany przez dowolną metodę (requestJson, postJson, putJson, postBinary)
|
||||
Then nagłówek User-Agent jest obecny w formacie "orderPRO/1.0.0 (+https://orderpro.pl/info)"
|
||||
```
|
||||
|
||||
## AC-2: User-Agent w requestach OAuth
|
||||
```gherkin
|
||||
Given AllegroOAuthClient wymienia authorization code lub odświeża token
|
||||
When request OAuth jest wykonywany przez requestToken()
|
||||
Then nagłówek User-Agent jest obecny w tym samym formacie
|
||||
```
|
||||
|
||||
## AC-3: User-Agent w requestach tracking
|
||||
```gherkin
|
||||
Given AllegroTrackingService odpytuje API o status przesyłki
|
||||
When request jest wykonywany przez edgeApiRequest() lub apiRequest()
|
||||
Then nagłówek User-Agent jest obecny w tym samym formacie
|
||||
```
|
||||
|
||||
## AC-4: Konfigurowalność User-Agent
|
||||
```gherkin
|
||||
Given administrator chce zmienić URL dokumentacji lub wersję w User-Agent
|
||||
When zmieni wartości ALLEGRO_USER_AGENT_URL i APP_VERSION w .env
|
||||
Then wszystkie requesty używają zaktualizowanych wartości
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Dodanie stałej User-Agent i konfiguracji</name>
|
||||
<files>.env.example, config/app.php</files>
|
||||
<action>
|
||||
1. W `.env.example` dodać zmienne:
|
||||
- `APP_VERSION=1.0.0`
|
||||
- `ALLEGRO_USER_AGENT_URL=https://orderpro.pl/info`
|
||||
2. W `config/app.php` (lub tam gdzie jest odczyt konfiguracji) upewnić się że te zmienne są dostępne.
|
||||
3. Analogicznie w `.env` (produkcyjne wartości).
|
||||
|
||||
Format User-Agent: `{APP_NAME}/{APP_VERSION} (+{ALLEGRO_USER_AGENT_URL})`
|
||||
Przykład: `orderPRO/1.0.0 (+https://orderpro.pl/info)`
|
||||
</action>
|
||||
<verify>Grep .env.example powinien zawierać APP_VERSION i ALLEGRO_USER_AGENT_URL</verify>
|
||||
<done>AC-4 satisfied: zmienne konfiguracyjne zdefiniowane</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Dodanie User-Agent do AllegroApiClient</name>
|
||||
<files>src/Modules/Settings/AllegroApiClient.php</files>
|
||||
<action>
|
||||
1. Dodać prywatną metodę `buildUserAgent(): string` która buduje string User-Agent z ENV:
|
||||
- `getenv('APP_NAME') ?: 'orderPRO'`
|
||||
- `getenv('APP_VERSION') ?: '1.0.0'`
|
||||
- `getenv('ALLEGRO_USER_AGENT_URL') ?: 'https://orderpro.pl/info'`
|
||||
- Zwraca: `"{name}/{version} (+{url})"`
|
||||
2. Dodać `'User-Agent: ' . $this->buildUserAgent()` do CURLOPT_HTTPHEADER w 4 metodach:
|
||||
- `postJson()` (linia ~216)
|
||||
- `putJson()` (linia ~281)
|
||||
- `postBinary()` (linia ~345)
|
||||
- `requestJson()` (linia ~393)
|
||||
|
||||
Avoid: nie duplikować logiki budowania stringa — jedna metoda, 4 wywołania.
|
||||
</action>
|
||||
<verify>Grep AllegroApiClient.php za "User-Agent" — powinno być 4 wystąpienia w HTTPHEADER + 1 metoda buildUserAgent</verify>
|
||||
<done>AC-1 satisfied: wszystkie 4 metody REST API wysyłają User-Agent</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 3: Dodanie User-Agent do AllegroOAuthClient i AllegroTrackingService</name>
|
||||
<files>src/Modules/Settings/AllegroOAuthClient.php, src/Modules/Shipments/AllegroTrackingService.php</files>
|
||||
<action>
|
||||
1. W `AllegroOAuthClient.php`:
|
||||
- Dodać analogiczną metodę `buildUserAgent(): string` (lub wydzielić do traita/helpera jeśli nie nadmiarowe)
|
||||
- Dodać `'User-Agent: ' . $this->buildUserAgent()` do CURLOPT_HTTPHEADER w `requestToken()` (linia ~153)
|
||||
|
||||
2. W `AllegroTrackingService.php`:
|
||||
- Dodać analogiczną metodę `buildUserAgent(): string`
|
||||
- Dodać `'User-Agent: ' . $this->buildUserAgent()` do CURLOPT_HTTPHEADER w:
|
||||
- `edgeApiRequest()` (linia ~136)
|
||||
- `apiRequest()` (linia ~186)
|
||||
|
||||
Uwaga: 3 klasy z tą samą 3-linijkową metodą to akceptowalne — nie tworzyć traita dla tak prostej logiki.
|
||||
</action>
|
||||
<verify>Grep za "User-Agent" w obu plikach — po 1-2 wystąpienia w HTTPHEADER + metoda buildUserAgent</verify>
|
||||
<done>AC-2 i AC-3 satisfied: OAuth i tracking wysyłają User-Agent</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- Logika biznesowa requestów (payloady, URL-e, obsługa odpowiedzi)
|
||||
- Inne nagłówki HTTP (Accept, Content-Type, Authorization)
|
||||
- Klienty API innych providerów (InPost, Apaczka, shopPRO)
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Nie refaktoryzować klientów HTTP do wspólnej klasy bazowej (to osobna faza 68)
|
||||
- Nie zmieniać struktury klas — tylko dodanie metody i nagłówka
|
||||
- URL dokumentacji (orderpro.pl/info) — strona nie musi istnieć na tym etapie, ale URL musi być poprawny
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] Grep "User-Agent" w AllegroApiClient.php zwraca 4+ wyniki
|
||||
- [ ] Grep "User-Agent" w AllegroOAuthClient.php zwraca 1+ wynik
|
||||
- [ ] Grep "User-Agent" w AllegroTrackingService.php zwraca 2+ wyniki
|
||||
- [ ] .env.example zawiera APP_VERSION i ALLEGRO_USER_AGENT_URL
|
||||
- [ ] Format User-Agent zgodny z wymaganiami Allegro: `NazwaAplikacji/Wersja (+URL)`
|
||||
- [ ] Brak regresji w istniejących nagłówkach
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Wszystkie 7 miejsc wysyłki requestów do Allegro zawiera nagłówek User-Agent
|
||||
- Format zgodny z wymaganiami: `orderPRO/1.0.0 (+https://orderpro.pl/info)`
|
||||
- Konfiguracja URL i wersji przez zmienne środowiskowe
|
||||
- Brak zmian w logice biznesowej
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/88-allegro-user-agent/88-01-SUMMARY.md`
|
||||
</output>
|
||||
97
.paul/phases/88-allegro-user-agent/88-01-SUMMARY.md
Normal file
97
.paul/phases/88-allegro-user-agent/88-01-SUMMARY.md
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
phase: 88-allegro-user-agent
|
||||
plan: 01
|
||||
subsystem: api
|
||||
tags: [allegro, user-agent, curl, http-headers]
|
||||
|
||||
requires: []
|
||||
provides:
|
||||
- User-Agent header in all Allegro API requests
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [buildUserAgent() per Allegro HTTP client class]
|
||||
|
||||
key-files:
|
||||
created: []
|
||||
modified:
|
||||
- src/Modules/Settings/AllegroApiClient.php
|
||||
- src/Modules/Settings/AllegroOAuthClient.php
|
||||
- src/Modules/Shipments/AllegroTrackingService.php
|
||||
|
||||
key-decisions:
|
||||
- "buildUserAgent() duplicated in 3 classes instead of trait — too simple to abstract"
|
||||
|
||||
patterns-established: []
|
||||
|
||||
duration: ~5min
|
||||
started: 2026-04-08T00:00:00Z
|
||||
completed: 2026-04-08T00:05:00Z
|
||||
---
|
||||
|
||||
# Phase 88 Plan 01: Allegro User-Agent Summary
|
||||
|
||||
**Dodanie naglowka User-Agent do wszystkich requestow HTTP do Allegro REST API zgodnie z art. 3.4.c Regulaminu (deadline: 30.06.2026)**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~5min |
|
||||
| Tasks | 3 completed |
|
||||
| Files modified | 5 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: User-Agent w requestach REST API | Pass | 4 metody w AllegroApiClient (postJson, putJson, postBinary, requestJson) |
|
||||
| AC-2: User-Agent w requestach OAuth | Pass | 1 metoda w AllegroOAuthClient (requestToken) |
|
||||
| AC-3: User-Agent w requestach tracking | Pass | 2 metody w AllegroTrackingService (edgeApiRequest, apiRequest) |
|
||||
| AC-4: Konfigurowalnosc User-Agent | Pass | APP_VERSION i ALLEGRO_USER_AGENT_URL w .env/.env.example |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Dodano naglowek `User-Agent: orderPRO/1.0.0 (+https://orderpro.pl/info)` do 7 miejsc wysylki requestow do Allegro API
|
||||
- Konfiguracja wersji i URL przez zmienne srodowiskowe (.env)
|
||||
- Metoda `buildUserAgent()` w kazdej z 3 klas klienckich
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `.env.example` | Modified | Dodano APP_VERSION i ALLEGRO_USER_AGENT_URL |
|
||||
| `.env` | Modified | Dodano APP_VERSION i ALLEGRO_USER_AGENT_URL |
|
||||
| `src/Modules/Settings/AllegroApiClient.php` | Modified | buildUserAgent() + User-Agent w 4 metodach HTTP |
|
||||
| `src/Modules/Settings/AllegroOAuthClient.php` | Modified | buildUserAgent() + User-Agent w requestToken() |
|
||||
| `src/Modules/Shipments/AllegroTrackingService.php` | Modified | buildUserAgent() + User-Agent w 2 metodach HTTP |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| buildUserAgent() w kazdej klasie osobno | 3-linijkowa metoda, trait byloby overengineering | Brak wspolnego kodu, ale prostota |
|
||||
| URL domyslny: orderpro.pl/info | Zgodny z wymaganiami Allegro, konfigurowalny przez .env | Strona moze nie istniec jeszcze |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
None.
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Integracja Allegro w pelni zgodna z wymaganiami User-Agent od 01.07.2026
|
||||
|
||||
**Concerns:**
|
||||
- Strona https://orderpro.pl/info powinna byc utworzona przed 30.06.2026
|
||||
|
||||
**Blockers:** None
|
||||
|
||||
---
|
||||
*Phase: 88-allegro-user-agent, Plan: 01*
|
||||
*Completed: 2026-04-08*
|
||||
155
.paul/phases/89-allegro-info-page/89-01-PLAN.md
Normal file
155
.paul/phases/89-allegro-info-page/89-01-PLAN.md
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
phase: 89-allegro-info-page
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: ["88-01"]
|
||||
files_modified: [routes/web.php, src/Modules/Info/InfoController.php, resources/views/info/allegro.php, resources/views/layouts/public.php]
|
||||
autonomous: false
|
||||
delegation: off
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Utworzenie publicznej podstrony informacyjnej `/info` wymaganej przez Allegro w nagłówku User-Agent. Strona musi prezentować cel i opis aplikacji orderPRO dla administratorów zewnętrznych.
|
||||
|
||||
## Purpose
|
||||
Allegro wymaga w User-Agent URL do strony informacyjnej aplikacji. Strona musi istnieć pod adresem skonfigurowanym w ALLEGRO_USER_AGENT_URL (domyślnie https://orderpro.pl/info).
|
||||
|
||||
## Output
|
||||
Publiczna strona `/info` bez wymagania logowania, z opisem aplikacji orderPRO.
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Prior Work
|
||||
@.paul/phases/88-allegro-user-agent/88-01-SUMMARY.md — User-Agent header z URL do tej strony
|
||||
|
||||
## Source Files
|
||||
@routes/web.php — routing (publiczne trasy bez middleware)
|
||||
@src/Modules/Auth/AuthController.php — wzorzec kontrolera publicznej strony
|
||||
@resources/views/layouts/auth.php — layout publicznych stron (bez sidebara)
|
||||
</context>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Strona /info dostepna publicznie
|
||||
```gherkin
|
||||
Given uzytkownik niezalogowany
|
||||
When odwiedza /info w przegladarce
|
||||
Then widzi strone informacyjna o aplikacji orderPRO (bez przekierowania na login)
|
||||
```
|
||||
|
||||
## AC-2: Tresc strony zgodna z wymaganiami Allegro
|
||||
```gherkin
|
||||
Given administrator zewnetrzny (np. Allegro) odwiedza strone /info
|
||||
When czyta zawartosc
|
||||
Then widzi: nazwe aplikacji, opis celu dzialania, informacje o integracji z Allegro API, dane kontaktowe
|
||||
```
|
||||
|
||||
## AC-3: Strona wyglada profesjonalnie
|
||||
```gherkin
|
||||
Given uzytkownik odwiedza /info
|
||||
When strona sie laduje
|
||||
Then widzi czysty, profesjonalny layout (bez sidebara/nawigacji aplikacji, minimalistyczny design)
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Kontroler i routing strony /info</name>
|
||||
<files>src/Modules/Info/InfoController.php, routes/web.php</files>
|
||||
<action>
|
||||
1. Utworzyc `src/Modules/Info/InfoController.php`:
|
||||
- Klasa `final class InfoController` w namespace `App\Modules\Info`
|
||||
- Metoda `show(Request $request): Response`
|
||||
- Renderowanie widoku `info/allegro` z layoutem `layouts/public`
|
||||
- Przekazac do widoku: APP_NAME, APP_VERSION z getenv()
|
||||
|
||||
2. W `routes/web.php`:
|
||||
- Dodac `use App\Modules\Info\InfoController;`
|
||||
- Utworzyc instancje `$infoController = new InfoController($template);`
|
||||
- Dodac route BEZ middleware: `$router->get('/info', [$infoController, 'show']);`
|
||||
- Umiescic blisko innych publicznych tras (login, health)
|
||||
</action>
|
||||
<verify>Route /info zdefiniowana bez authMiddleware w routes/web.php</verify>
|
||||
<done>AC-1 satisfied: strona /info dostepna bez logowania</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: Layout publiczny i widok strony informacyjnej</name>
|
||||
<files>resources/views/layouts/public.php, resources/views/info/allegro.php</files>
|
||||
<action>
|
||||
1. Utworzyc `resources/views/layouts/public.php`:
|
||||
- Minimalistyczny layout HTML5 (bez sidebara, nawigacji, ani elementow aplikacji)
|
||||
- Meta viewport dla mobile
|
||||
- Inline style lub link do istniejacego CSS (uzyc minimalnych styli)
|
||||
- Sekcja `<?= $content ?>` na tresc
|
||||
|
||||
2. Utworzyc `resources/views/info/allegro.php`:
|
||||
- Tresc strony informacyjnej:
|
||||
- **Nazwa aplikacji:** orderPRO
|
||||
- **Wersja:** dynamicznie z przekazanej zmiennej
|
||||
- **Opis:** "orderPRO to aplikacja do zarzadzania zamowieniami z wielu kanalow sprzedazy (Allegro, sklepy internetowe). Umozliwia centralne przetwarzanie zamowien, generowanie etykiet przewozowych i sledzenie przesylek."
|
||||
- **Integracja z Allegro:** "Aplikacja korzysta z Allegro REST API do importu zamowien, zarzadzania przesylkami oraz synchronizacji statusow."
|
||||
- **Kontakt:** email kontaktowy (uzyc zmiennej lub hardcode)
|
||||
- Profesjonalny, minimalistyczny design
|
||||
- Jezyk strony: polski
|
||||
- Escape wszystkich zmiennych przez $e()
|
||||
</action>
|
||||
<verify>Pliki istnieja: resources/views/layouts/public.php i resources/views/info/allegro.php</verify>
|
||||
<done>AC-2 i AC-3 satisfied: tresc informacyjna i profesjonalny wyglad</done>
|
||||
</task>
|
||||
|
||||
<task type="checkpoint:human-verify" gate="blocking">
|
||||
<what-built>Publiczna strona /info z opisem aplikacji orderPRO</what-built>
|
||||
<how-to-verify>
|
||||
1. Uruchom aplikacje lokalnie
|
||||
2. Odwiedz: http://localhost:8000/info (lub odpowiedni URL)
|
||||
3. Sprawdz: strona laduje sie BEZ logowania
|
||||
4. Sprawdz: widoczna nazwa aplikacji, opis, informacja o Allegro API
|
||||
5. Sprawdz: wyglad profesjonalny i czytelny
|
||||
6. Sprawdz: na mobile (zmniejsz okno) strona jest responsywna
|
||||
</how-to-verify>
|
||||
<resume-signal>Type "approved" to continue, or describe issues to fix</resume-signal>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- src/Modules/Auth/* (system autoryzacji)
|
||||
- resources/views/layouts/app.php (layout aplikacji)
|
||||
- Istniejace publiczne trasy (login, health, cron)
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Tylko jedna strona /info — bez podstron
|
||||
- Nie dodawac nowych zaleznosci CSS/JS
|
||||
- Nie tworzyc systemu CMS — statyczna tresc w widoku
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] GET /info zwraca 200 bez zalogowania
|
||||
- [ ] Strona zawiera nazwe, opis i informacje o Allegro API
|
||||
- [ ] Layout nie zawiera elementow aplikacji (sidebar, nawigacja)
|
||||
- [ ] Brak regresji w istniejacych trasach
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- Strona /info dostepna publicznie pod URL z User-Agent
|
||||
- Tresc zgodna z wymaganiami Allegro (cel aplikacji, dane kontaktowe)
|
||||
- Profesjonalny wyglad bez elementow wewnetrznych aplikacji
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/89-allegro-info-page/89-01-SUMMARY.md`
|
||||
</output>
|
||||
113
.paul/phases/89-allegro-info-page/89-01-SUMMARY.md
Normal file
113
.paul/phases/89-allegro-info-page/89-01-SUMMARY.md
Normal file
@@ -0,0 +1,113 @@
|
||||
---
|
||||
phase: 89-allegro-info-page
|
||||
plan: 01
|
||||
subsystem: ui
|
||||
tags: [allegro, info-page, public-route]
|
||||
|
||||
requires:
|
||||
- phase: 88-allegro-user-agent
|
||||
provides: User-Agent header with URL pointing to this page
|
||||
provides:
|
||||
- Public /info page for Allegro User-Agent URL
|
||||
affects: []
|
||||
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [public layout without app chrome]
|
||||
|
||||
key-files:
|
||||
created:
|
||||
- src/Modules/Info/InfoController.php
|
||||
- resources/views/info/allegro.php
|
||||
- resources/views/layouts/public.php
|
||||
modified:
|
||||
- routes/web.php
|
||||
|
||||
key-decisions:
|
||||
- "Osobny layout public.php zamiast reuse auth.php — brak orbow/loginu w tle"
|
||||
- "Inline style w layoutcie i widoku — brak potrzeby budowania SCSS dla jednej strony"
|
||||
|
||||
patterns-established:
|
||||
- "layouts/public.php dla stron publicznych bez elementow aplikacji"
|
||||
|
||||
duration: ~5min
|
||||
started: 2026-04-08T00:10:00Z
|
||||
completed: 2026-04-08T00:15:00Z
|
||||
---
|
||||
|
||||
# Phase 89 Plan 01: Allegro Info Page Summary
|
||||
|
||||
**Publiczna strona /info z opisem aplikacji orderPRO — wymagana przez Allegro w naglowku User-Agent**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~5min |
|
||||
| Tasks | 3 completed (2 auto + 1 checkpoint) |
|
||||
| Files created | 3 |
|
||||
| Files modified | 1 |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Strona /info dostepna publicznie | Pass | Route bez authMiddleware, brak przekierowania na login |
|
||||
| AC-2: Tresc zgodna z wymaganiami Allegro | Pass | Nazwa, wersja, opis, integracja z Allegro API, kontakt |
|
||||
| AC-3: Profesjonalny wyglad | Pass | Minimalistyczny layout, responsywny, bez elementow aplikacji |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Utworzono publiczna strone /info dostepna bez logowania
|
||||
- Nowy layout `layouts/public.php` do stron publicznych (bez sidebara/nawigacji)
|
||||
- Tresc informacyjna: opis wewnetrznej aplikacji Project PRO, zakres integracji z Allegro API, dane kontaktowe
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `src/Modules/Info/InfoController.php` | Created | Kontroler strony /info |
|
||||
| `resources/views/layouts/public.php` | Created | Minimalistyczny layout publiczny |
|
||||
| `resources/views/info/allegro.php` | Created | Widok strony informacyjnej |
|
||||
| `routes/web.php` | Modified | Route GET /info bez middleware |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| Osobny layout public.php | Auth layout ma orby i styl loginu — nieodpowiedni dla strony info | Reusable layout dla przyszlych stron publicznych |
|
||||
| Inline CSS zamiast SCSS | Jedna prosta strona, nie warto budowac SCSS | Brak zaleznosci od build pipeline |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
### Auto-fixed Issues
|
||||
|
||||
**1. Bledny namespace Template**
|
||||
- **Found during:** Checkpoint (human-verify)
|
||||
- **Issue:** `App\Core\Template\Template` nie istnieje — poprawny to `App\Core\View\Template`
|
||||
- **Fix:** Zmiana use statement w InfoController
|
||||
- **Verification:** Strona /info laduje sie poprawnie
|
||||
|
||||
**2. Zmiana tresci na wewnetrzna aplikacje**
|
||||
- **Found during:** Checkpoint (human-verify)
|
||||
- **Issue:** Opis sugerowol aplikacje publiczna/SaaS
|
||||
- **Fix:** Zmieniono na "wewnetrzna aplikacja firmy Project PRO, nieudostepniana publicznie"
|
||||
- **Verification:** Tresc zgodna z rzeczywistym przeznaczeniem
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
None beyond auto-fixed deviations.
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Strona /info dostepna pod URL z User-Agent (https://orderpro.pl/info)
|
||||
- Pelna zgodnosc z wymaganiami Allegro art. 3.4.c (deadline 30.06.2026)
|
||||
|
||||
**Concerns:** None
|
||||
|
||||
**Blockers:** None
|
||||
|
||||
---
|
||||
*Phase: 89-allegro-info-page, Plan: 01*
|
||||
*Completed: 2026-04-08*
|
||||
Reference in New Issue
Block a user