HifiPlanet-Website/hifi/api/scripts/refresh_prices.php
Maaxxs f3ab7d0816 Initial commit: HifiPlanet Car-Hifi Shop (Frontend + Backend)
React/Vite Frontend (hifi-src) + PHP/MariaDB Backend (hifi/api) fuer
den Car-Hifi Umbau-Shop HifiPlanet in Amorbach, inkl. Admin-Panel,
2FA, Wartungsmodus, Cookie-Consent und rechtlichen Pflichtseiten.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-05 13:37:06 +02:00

36 lines
1.2 KiB
PHP

<?php
require __DIR__ . '/../vendor/autoload.php';
use App\Config\Database;
use App\Services\Audio4CarsScraper;
$config = require __DIR__ . '/../config/config.php';
$scraper = new Audio4CarsScraper($config['scraper']['timeout'], $config['scraper']['user_agent']);
$db = Database::connection();
$products = $db->query('SELECT id, source_url FROM package_products')->fetchAll();
$ok = 0;
$failed = 0;
foreach ($products as $product) {
$result = $scraper->scrape($product['source_url']);
if ($result['ok']) {
$stmt = $db->prepare(
'UPDATE package_products
SET scraped_name = ?, scraped_price = ?, scraped_currency = ?, scraped_image_url = ?,
price_updated_at = NOW(), scrape_status = "ok", scrape_error = NULL
WHERE id = ?'
);
$stmt->execute([$result['name'], $result['price'], $result['currency'], $result['image'], $product['id']]);
$ok++;
} else {
$stmt = $db->prepare('UPDATE package_products SET scrape_status = "error", scrape_error = ? WHERE id = ?');
$stmt->execute([$result['error'], $product['id']]);
$failed++;
}
}
echo "Preis-Refresh abgeschlossen: {$ok} OK, {$failed} Fehler (von " . count($products) . " Produkten).\n";