30 lines
1.9 KiB
Markdown
30 lines
1.9 KiB
Markdown
# 2026-04-30
|
|
|
|
## Co zrobiono
|
|
|
|
- [Phase 6, Plan 06-01] XML feed import per klient + refaktor schematu products (source/edit split) + integracja z cron_universal
|
|
- Dodano pole `xml_feed_url` w edycji klienta (templates/clients/main_view.php) z walidacja URL po stronie serwera
|
|
- Migracja 029: rename `products.name` -> `title`, `products.title` -> `title_gmc`, dodanie `description_gmc`, `price`, `clients.xml_feed_url`, `clients.xml_feed_last_sync_at`, INDEX `(client_id, offer_id)` (non-unique - legacy duplikaty)
|
|
- Nowy serwis `\services\XmlFeedImporter` - XMLReader streaming + batche 200 w transakcjach + manual upsert (SELECT IN + UPDATE/INSERT); odporny na feedy 5000+ pozycji
|
|
- Hook w `cron_universal` wywoluje XmlFeedImporter po sync produktow GA dla klientow z ustawionym feedem; raport `xml_feed` w response
|
|
- Refaktor wszystkich odwolan do kolumn `products.name`/`products.title` w factory, controls, services, templates, api.php; aliasy `AS name` zachowane jako kontrakt JS/API
|
|
- Korekta semantyki: `title`/`description` = ZRODLO (z feedu lub pierwszy fetch GA), `title_gmc`/`description_gmc` = EDYTOWALNE (wysylane do GMC supplemental feed)
|
|
- `is_product_core_field` zaktualizowane do `title_gmc`/`description_gmc` (edytowalne)
|
|
- `SupplementalFeed::generate_for_client` czyta `title_gmc AS title, description_gmc AS description` przy generowaniu TSV
|
|
- api.php (cztery endpointy products): SQL zaktualizowane, set_product_data zapisuje do title_gmc
|
|
|
|
## Zmienione pliki
|
|
|
|
- `migrations/029_products_rename_columns_and_xml_feed.sql`
|
|
- `autoload/services/class.XmlFeedImporter.php`
|
|
- `autoload/factory/class.Products.php`
|
|
- `autoload/controls/class.Products.php`
|
|
- `autoload/controls/class.Cron.php`
|
|
- `autoload/controls/class.Clients.php`
|
|
- `autoload/services/class.SupplementalFeed.php`
|
|
- `templates/clients/main_view.php`
|
|
- `api.php`
|
|
- `.paul/phases/06-xml-feed-import/06-01-PLAN.md`
|
|
- `.paul/phases/06-xml-feed-import/06-01-SUMMARY.md`
|
|
- `.paul/STATE.md`
|