Zaktualizowano rozmiar pliku google-merchant_id-1.xml oraz dodano skrypt do przypisywania cech do produktów w PrestaShop.

This commit is contained in:
2025-01-22 14:19:22 +01:00
parent 52b84fc953
commit f480e0044d
2 changed files with 55 additions and 30 deletions

View File

@@ -98,7 +98,7 @@
}, },
"google-merchant_id-1.xml": { "google-merchant_id-1.xml": {
"type": "-", "type": "-",
"size": 18095653, "size": 18373587,
"lmtime": 0, "lmtime": 0,
"modified": true "modified": true
}, },

View File

@@ -1,34 +1,59 @@
<? <?php
include 'medoo.php';
$mdb = new medoo( [
'database_type' => 'mysql',
'database_name' => 'interblue_sklep',
'server' => 'localhost',
'username' => 'interblue_sklep',
'password' => '2212+#++@pSVSb4',
'charset' => 'utf8'
] );
$results = $mdb -> query( 'SELECT c.firstname, c.lastname, c.email, a.phone, COUNT(DISTINCT o.id_order) AS orders_count // Konfiguracja środowiska PrestaShop
FROM ps_customer AS c define('_PS_ADMIN_DIR_', getcwd());
JOIN ps_address AS a ON c.id_customer = a.id_customer require_once dirname(__FILE__) . '/config/config.inc.php';
JOIN ps_orders AS o ON c.id_customer = o.id_customer require_once dirname(__FILE__) . '/init.php';
WHERE o.date_add > DATE_SUB(NOW(), INTERVAL 2 YEAR)
GROUP BY c.email
HAVING COUNT(DISTINCT o.id_order) >= 2' ) -> fetchAll( \PDO::FETCH_ASSOC );
// Otwarcie pliku CSV do zapisu // ID producentów, których produkty mają zostać zaktualizowane
$file = fopen('customers.csv', 'w'); $manufacturerIds = [198, 256];
// Dodanie nagłówków kolumn do pliku CSV
fputcsv($file, ['First Name', 'Last Name', 'Email', 'Phone']);
// Zapisanie danych do pliku CSV // ID cechy oraz jej wartości do przypisania
foreach ($results as $row) { $featureId = 20;
fputcsv($file, $row); $featureValueId = 19002;
// Pobierz produkty od wybranych producentów
$sql = '
SELECT p.id_product
FROM ' . _DB_PREFIX_ . 'product p
WHERE p.id_manufacturer IN (' . implode(',', array_map('intval', $manufacturerIds)) . ')
';
$productIds = Db::getInstance()->executeS($sql);
if ($productIds) {
foreach ($productIds as $product) {
$productId = (int)$product['id_product'];
// Sprawdź, czy cecha już istnieje dla produktu
$sqlCheck = '
SELECT id_feature
FROM ' . _DB_PREFIX_ . 'feature_product
WHERE id_product = ' . $productId . ' AND id_feature = ' . (int)$featureId . '
';
$featureExists = Db::getInstance()->getValue($sqlCheck);
if (!$featureExists) {
// Przypisz cechę do produktu
$insert = '
INSERT INTO ' . _DB_PREFIX_ . 'feature_product (id_feature, id_product, id_feature_value)
VALUES (' . (int)$featureId . ', ' . $productId . ', ' . (int)$featureValueId . ')
';
Db::getInstance()->execute($insert);
echo 'Product ID: ' . $productId . " - Feature ID: $featureId - Feature Value ID: $featureValueId\n";
echo '<br>';
echo "Dodano cechę dla produktu ID: $productId\n";
echo '<br>';
} else {
echo "Produkt ID: $productId już posiada tę cechę\n";
echo '<br>';
}
}
} else {
echo "Nie znaleziono produktów dla podanych producentów.\n";
echo '<br>';
} }
// Zamknięcie pliku echo "Operacja zakończona.\n";
fclose($file);
echo "Dane zostały zapisane do pliku customers.csv.";
?>