4.8 KiB
4.8 KiB
External Integrations
All API credentials are stored in the settings DB table and read via \services\GoogleAdsApi::get_setting($key) (used globally despite the name).
Google Ads REST API
- File: autoload/services/class.GoogleAdsApi.php (~3,200 lines)
- API version:
v23(constant$API_VERSION = 'v23') - Base URLs:
- Ads:
https://googleads.googleapis.com - Merchant Center:
https://shoppingcontent.googleapis.com/content/v2.1 - OAuth:
https://oauth2.googleapis.com/token
- Ads:
- Auth: OAuth 2.0 refresh-token flow. Settings keys:
google_ads_developer_token,google_ads_client_id,google_ads_client_secret,google_ads_refresh_token,google_ads_manager_account_id. Merchant variant:google_merchant_refresh_token(falls back to ads token). - Endpoints used:
POST /v23/customers/{customerId}/googleAds:search— campaigns, search terms, ad groupsGET /content/v2.1/{merchantAccountId}/products— product listing/details- Product ID format:
online:{lang}:{feedLabel}:{offerId}
- Errors: stored in settings keys
google_ads_last_error/google_ads_last_error_at. - Cron:
/cron/cron_universal,/cron/cron_products_urls,/cron/cron_campaigns_product_alerts_merchant.
Facebook Ads Graph API
- File: autoload/services/class.FacebookAdsApi.php (~300 lines)
- API version:
v25.0(default, configurable per client) - Base URL:
https://graph.facebook.com/{version}/{accountId}/insights - Auth: access token in
facebook_ads_access_tokensetting. - Methods:
get_insights(),get_campaigns(),parse_date_range(). 30-day rolling window. - Errors:
facebook_ads_last_error/_at. - Cron:
/cron/cron_facebook_ads.
Google Merchant Center
Integrated through GoogleAdsApi. Supplemental TSV feeds generated via autoload/services/class.SupplementalFeed.php into feeds/supplemental_{client_id}.tsv. XML feed parsing via autoload/services/class.XmlFeedImporter.php using \Chunk streaming reader.
OpenAI
- File: autoload/services/class.OpenAiApi.php (~400 lines)
- Endpoint:
https://api.openai.com/v1/chat/completions - Auth: Bearer token in
openai_api_keysetting; model inopenai_model. - Use cases: product title (≤150 chars) and description (≤5000 chars) generation, page-content fetch + HTML strip + LLM rewrite. System prompt: Polish-language Merchant Center best practices.
Claude (Anthropic)
- File: autoload/services/class.ClaudeApi.php (~300 lines)
- Endpoint:
https://api.anthropic.com/v1/messages - Default model:
claude-sonnet-4-5-20250929(override viaclaude_model) - Auth:
x-api-keyheader fromclaude_api_key.anthropic-version: 2023-06-01. - Use cases: same as OpenAI (product text optimization).
Google Gemini
- File: autoload/services/class.GeminiApi.php (~400 lines)
- Base:
https://generativelanguage.googleapis.com/v1beta/models/ - Default model:
gemini-2.5-flash(override viagemini_model) - Auth: API key in
?key=query param (gemini_api_key). - Special handling: detects
gemini-2.5*as thinking models — multiplies max_tokens by 6 for internal reasoning. UsessystemInstructionfield.
SMTP (PHPMailer)
- Library: libraries/phpmailer/ (3 files)
- Wrapper:
\S::send_email($email, $subject, $text, $file)in autoload/class.S.php - Config (from config.php): host
mail.project-pro.pl, port 25, loginwww@project-pro.pl, password in plaintext (see concerns.md). SSL/TLS verification disabled (self-signed cert support). UTF-8, HTML body. Default Fromwww@projectpro.pl, Reply-Tobiuro@project-pro.pl.
Other / minor
- Allegro.pl — autoload/controls/class.Allegro.php (legacy marketplace integration)
- Open Page Rank API — referenced in api.php for domain authority lookups
- Domain tester — third-party domain validation in api.php
Summary
| Integration | API ver | Auth | Cron |
|---|---|---|---|
| Google Ads | v23 | OAuth 2.0 refresh | /cron/cron_universal |
| Google Merchant | v2.1 | OAuth 2.0 | /cron/cron_campaigns_product_alerts_merchant |
| Facebook Ads | v25.0 | Bearer token | /cron/cron_facebook_ads |
| OpenAI | latest | API key (header) | on-demand |
| Claude | v1 / 2023-06-01 | x-api-key |
on-demand |
| Gemini | v1beta | API key (query) | on-demand |
| SMTP | — | Basic auth | reminders via cron.php |