FIX: aktualizacja produktu
This commit is contained in:
@@ -298,6 +298,18 @@ function getTaxRulesGroupIdForRate($rate, $id_country = null) {
|
||||
return $id ? (int)$id : 0;
|
||||
}
|
||||
|
||||
// Zwraca główny produkt z grupy – pierwszy, którego SKU istnieje w PrestaShop
|
||||
function findMainProductDataFromGroup($products) {
|
||||
foreach ($products as $p) {
|
||||
$ref = (string)$p->sku;
|
||||
if ($ref !== '' && findProductByReference($ref)) {
|
||||
return $p; // to główny produkt
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// === GRUPOWANIE PRODUKTÓW PO SYMBOLU ===
|
||||
$productsBySymbol = [];
|
||||
foreach ($xml->product as $productData) {
|
||||
@@ -337,13 +349,20 @@ if ($modeUpdate) {
|
||||
|
||||
$updatedSomething = false;
|
||||
|
||||
|
||||
foreach ($productsBySymbol as $symbol => $products) {
|
||||
if (empty($products)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Główny produkt – referencja z pierwszego elementu grupy
|
||||
$mainProductData = $products[0];
|
||||
// $mainProductData = $products[0];
|
||||
// $reference = (string)$mainProductData->sku;
|
||||
// $key = 'product_'.$reference;
|
||||
$mainProductData = findMainProductDataFromGroup($products);
|
||||
if (!$mainProductData) {
|
||||
continue; // w grupie nie ma produktu, który istnieje w Presta
|
||||
}
|
||||
$reference = (string)$mainProductData->sku;
|
||||
$key = 'product_'.$reference;
|
||||
|
||||
@@ -502,7 +521,12 @@ foreach ($productsBySymbol as $symbol => $products) {
|
||||
}
|
||||
|
||||
// Główny produkt – dane z pierwszego w grupie
|
||||
$mainProductData = $products[0];
|
||||
// $mainProductData = $products[0];
|
||||
// $mainProduct = findProductByReference((string)$mainProductData->sku);
|
||||
$mainProductData = findMainProductDataFromGroup($products);
|
||||
if (!$mainProductData) {
|
||||
$mainProductData = $products[0]; // fallback na etapie dodawania
|
||||
}
|
||||
$mainProduct = findProductByReference((string)$mainProductData->sku);
|
||||
|
||||
// BAZA: najtańszy wariant w grupie (brutto i netto)
|
||||
|
||||
Reference in New Issue
Block a user