Files
drmaterac.pl/cron-estella.php
2025-01-06 20:47:25 +01:00

62 lines
2.3 KiB
PHP

<?php
// Włącz PrestaShop
include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/init.php');
// Ustawienie kontekstu na sklep o ID 1
$shopId = 1;
Context::getContext()->shop = new Shop($shopId);
Shop::setContext(Shop::CONTEXT_SHOP, $shopId);
// Funkcja do pobrania produktów z danej kategorii w kontekście sklepu
function getProductsFromCategory($categoryId, $shopId) {
$sql = new DbQuery();
$sql->select('p.id_product, pl.name');
$sql->from('category_product', 'cp');
$sql->innerJoin('product', 'p', 'p.id_product = cp.id_product');
$sql->innerJoin('product_lang', 'pl', 'pl.id_product = p.id_product AND pl.id_lang = '.(int)Context::getContext()->language->id);
$sql->where('cp.id_category = '.(int)$categoryId);
$sql->where('p.id_shop_default = '.(int)$shopId);
return Db::getInstance()->executeS($sql);
}
// Funkcja do aktualizacji kategorii produktu
function updateProductCategory($productId, $newCategoryIds, $shopId) {
$product = new Product($productId, false, (int)Context::getContext()->language->id, $shopId);
$currentCategories = $product->getCategories();
$newCategories = array_unique(array_merge($currentCategories, $newCategoryIds));
$product->updateCategories($newCategories);
if ($product->update()) {
echo "Produkt ID $productId został przypisany do kategorii: " . implode(", ", $newCategoryIds) . ".<br>";
} else {
echo "Błąd podczas aktualizacji produktu ID $productId.<br>";
}
}
// Pobranie produktów z kategorii o ID 128 dla sklepu o ID 1
$products = getProductsFromCategory(189, $shopId);
// Przypisanie produktów do odpowiednich kategorii, zachowując oryginalną kategorię 128
foreach ($products as $product) {
$productId = (int)$product['id_product'];
$productName = (string)$product['name'];
$newCategoryIds = [128]; // Zachowanie oryginalnej kategorii 128
if (strpos($productName, '155/200') !== false) {
$newCategoryIds[] = 187;
} elseif (strpos($productName, '135/200') !== false) {
$newCategoryIds[] = 188;
} elseif (strpos($productName, '200/220') !== false) {
$newCategoryIds[] = 189;
}
// Aktualizacja kategorii produktu
updateProductCategory($productId, $newCategoryIds, $shopId);
}
echo "Aktualizacja zakończona.";
?>