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": {
"type": "-",
"size": 18095653,
"size": 18373587,
"lmtime": 0,
"modified": true
},

View File

@@ -1,34 +1,59 @@
<?
include 'medoo.php';
$mdb = new medoo( [
'database_type' => 'mysql',
'database_name' => 'interblue_sklep',
'server' => 'localhost',
'username' => 'interblue_sklep',
'password' => '2212+#++@pSVSb4',
'charset' => 'utf8'
] );
<?php
$results = $mdb -> query( 'SELECT c.firstname, c.lastname, c.email, a.phone, COUNT(DISTINCT o.id_order) AS orders_count
FROM ps_customer AS c
JOIN ps_address AS a ON c.id_customer = a.id_customer
JOIN ps_orders AS o ON c.id_customer = o.id_customer
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 );
// Konfiguracja środowiska PrestaShop
define('_PS_ADMIN_DIR_', getcwd());
require_once dirname(__FILE__) . '/config/config.inc.php';
require_once dirname(__FILE__) . '/init.php';
// Otwarcie pliku CSV do zapisu
$file = fopen('customers.csv', 'w');
// Dodanie nagłówków kolumn do pliku CSV
fputcsv($file, ['First Name', 'Last Name', 'Email', 'Phone']);
// ID producentów, których produkty mają zostać zaktualizowane
$manufacturerIds = [198, 256];
// Zapisanie danych do pliku CSV
foreach ($results as $row) {
fputcsv($file, $row);
// ID cechy oraz jej wartości do przypisania
$featureId = 20;
$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
fclose($file);
echo "Dane zostały zapisane do pliku customers.csv.";
?>
echo "Operacja zakończona.\n";