- Created XmlFiles control class for handling XML file views and regeneration. - Implemented method to retrieve clients with XML feeds in the factory class. - Added database migration to include google_merchant_account_id in clients table. - Created migrations for products_keyword_planner_terms and products_merchant_sync_log tables. - Added campaign_keywords table migration for managing campaign keyword data. - Developed main view template for displaying XML files and their statuses. - Introduced a debug script for analyzing product URLs and their statuses.
2.6 KiB
2.6 KiB
adsPRO - Pamiec projektu
Ten plik sluzy jako trwala pamiec dla Claude Code. Zapisuj tu wzorce, decyzje i ustalenia potwierdzone w trakcie pracy nad projektem.
Architektura
- Custom MVC: Controllers (
\controls) -> Factories (\factory) -> Medoo ORM ($mdb) - Autoload PSR-0:
\controls\Foo->autoload/controls/class.Foo.php - Routing w
index.php: URL/module/action/->\controls\Module::action() - Szablony w
templates/, zmienne przez$this->varName - Serwisy API:
\services\GoogleAdsApi,\services\ClaudeApi,\services\OpenAiApi
Styl kodu
- Spacje w nawiasach:
if ( $x ),function( $a, $b ) - Klamry w nowej linii
- Wszystkie metody kontrolerow i fabryk:
static public function - Endpointy JSON:
echo json_encode([...]); exit; - Commity po polsku z prefixem:
feat:,fix:,update:
Frontend
- jQuery 3.6, DataTables 2.1, Bootstrap 4, Select2 4.1, Highcharts
- jquery-confirm do modali/dialogow
- Font Awesome 6.5 do ikon
- SASS:
layout/style.scss-> auto-kompilacja przez Live Sass Compiler
Deployment
- FTP auto-upload przez VS Code FTP-Kr
- Brak kroku budowania - pliki laduja bezposrednio na serwer
- Migracje:
php install.php(idempotentne, sledzenie wschema_migrations)
Decyzje projektowe
- Frazy wyszukiwane dodane do wykluczonych oznaczane czerwonym kolorem (klasa CSS
term-is-negative) - Negatywne slowa kluczowe dodawane przez Google Ads API i zapisywane lokalnie w
campaign_negative_keywords - Klucze API przechowywane w tabeli
settings(key-value) - Frazy z Google Ads Keyword Planner dla URL produktu sa cachowane w
products_keyword_planner_termsi ponownie uzywane przy generowaniu tytulu AI - Zmiany produktowe (
title,description,google_product_category,custom_label_4) sa synchronizowane bezposrednio do Merchant API i logowane per pole wproducts_merchant_sync_log cron_productsdziala batchowo po klientach (clients_per_run), domyslnie10(max100), aby ograniczyc liczbe wywolan; odpowiedz zawieraestimated_calls_remaining_in_phasecron_campaignsdziala batchowo po klientach (clients_per_run), domyslnie2(max20), a odpowiedz zawieraestimated_calls_remaining_today- Zmiana listy klientow (np. reaktywacja klienta) nie powinna resetowac postepu
cron_products; pipeline zachowuje przetworzonych i dopina nowych klientow - W
cron_campaignsstanprocessed_idsjest normalizowany do aktualnej listy aktywnych klientow, aby uniknac rozjazdow postepu po zmianach aktywnosci
Preferencje uzytkownika
- Komunikacja po polsku
- Zwiezle commity po polsku
- Git push tylko na wyrazna prosbe