62 lines
2.3 KiB
PHP
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.";
|
|
?>
|