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