Dodanie logowania czasu wykonania operacji w funkcji importu produktów

This commit is contained in:
2025-02-11 17:48:07 +01:00
parent 32d4b5c0a7
commit aa77d8f045
2 changed files with 303 additions and 53 deletions

View File

@@ -8,6 +8,13 @@ include(dirname(__FILE__).'/init.php');
// Load XML file
$xml = simplexml_load_file('https://cdn.projectpro.pl/drmaterac.pl/produkty-amz.xml') or die("Error: Cannot create object");
// Logowanie czasu wykonania
function logTime($message, $startTime) {
file_put_contents('import_log.txt', $message . ' - Czas: ' . round(microtime(true) - $startTime, 10) . " s\n", FILE_APPEND);
}
$startGlobal = microtime(true);
// Function to find attribute group by name
function findAttributeGroupByName($name) {
$id_lang = Context::getContext()->language->id;
@@ -326,58 +333,65 @@ foreach ( $xml -> post as $productData )
if ( strpos( $Dostępnerozmiaryjeślidotyczy, '|' ) === false )
$productsBySymbol[$symbol][] = $productData;
}
// echo '<pre>';
// print_r($productsBySymbol['55b3fc0d4e65879be15c47f709c896dd']);
// exit;
// Create or update products with combinations based on grouped data
foreach ($productsBySymbol as $symbol => $products) {
if (empty($products)) {
continue;
foreach ($productsBySymbol as $symbol => $products)
{
if ( empty( $products ) ) {
continue;
}
// Get the main product data from the first product in the group
$mainProductData = $products[0];
// echo '<pre>';
// print_r( $mainProductData );
// exit;
$mainProduct = findProductByReference((string)$mainProductData->sku);
$productAdded = false;
if (!$mainProduct) {
// Create a new product if it doesn't exist
$mainProduct = new Product();
$mainProduct->name = createMultiLangField((string)$mainProductData->title);
$description = (string)$mainProductData->description;
$description = str_replace("\n", "<br>", $description);
$mainProduct->description = createMultiLangField($description);
$mainProduct->price = floatval(str_replace(',','',$mainProductData->price));
$mainProduct->reference = (string)$mainProductData->sku;
$mainProduct->id_category_default = 2;
$mainProduct->link_rewrite = createLinkRewrite((string)$mainProductData->title);
$mainProduct->id_shop_list = [1, 2]; // Przypisanie do sklepów
$mainProduct->add();
if ( !$mainProduct )
{
// Create a new product if it doesn't exist
$mainProduct = new Product();
$mainProduct->name = createMultiLangField((string)$mainProductData->title);
$description = (string)$mainProductData->description;
$description = str_replace("\n", "<br>", $description);
$mainProduct->description = createMultiLangField($description);
$mainProduct->price = floatval(str_replace(',','',$mainProductData->price));
$mainProduct->reference = (string)$mainProductData->sku;
$mainProduct->id_category_default = 2;
$mainProduct->link_rewrite = createLinkRewrite((string)$mainProductData->title);
$mainProduct->id_shop_list = [1, 2]; // Przypisanie do sklepów
$mainProduct->add();
addProductToShops($mainProduct);
addProductToShops($mainProduct);
if (!empty($mainProductData->Cechyproduktu)) {
importProductFeatures($mainProduct->id, (string)$mainProductData->Cechyproduktu);
}
if (!empty($mainProductData->Cechyproduktu)) {
importProductFeatures($mainProduct->id, (string)$mainProductData->Cechyproduktu);
}
// Add images to the product
// if (!empty($mainProductData->image)) {
// addProductImage($mainProduct->id, $mainProductData->image);
// }
// Ensure the product has combinations enabled
$start_search_main_product = microtime(true);
$mainProduct->checkDefaultAttributes();
logTime( "checkDefaultAttributes:", $start_search_main_product );
// for ($i = 1; $i <= 10; $i++) {
// $imageUrl = (string)$mainProductData->{'images_' . $i};
// if (!empty($imageUrl)) {
// addProductImage($mainProduct->id, $imageUrl);
// }
// }
$start_search_main_product = microtime(true);
Product::updateDefaultAttribute($mainProduct->id);
logTime( "updateDefaultAttribute:", $start_search_main_product );
$productAdded = true;
} else {
// Update existing product price and description
if ( $config['update_price'] == true ) {
$start_search_main_product = microtime(true);
assignFeatureToProduct($mainProduct->id, 41, 2499);
logTime( "assignFeatureToProduct:", $start_search_main_product );
$start_search_main_product = microtime(true);
assignManufacturerToProduct($mainProduct->id, 53);
logTime( "assignManufacturerToProduct:", $start_search_main_product );
$start_search_main_product = microtime(true);
updateDeliveryParameters($mainProduct->id);
logTime( "updateDeliveryParameters:", $start_search_main_product );
$productAdded = true;
}
else
{
if ( $config['update_price'] == true )
{
$mainProduct->price = floatval(str_replace(',','',$mainProductData->price));
$description = (string)$mainProductData->description;
$description = str_replace("\n", "<br>", $description);
@@ -397,8 +411,8 @@ foreach ($productsBySymbol as $symbol => $products) {
// Add or update combinations for each product in the group
$combinationAdded = false;
foreach ($products as $productData) {
foreach ($products as $productData)
{
$attributes = [
'Kolor' => (string)$productData->kolor,
'Rozmiar' => (string)$productData->rozmiar
@@ -420,8 +434,10 @@ foreach ($productsBySymbol as $symbol => $products) {
$key = implode('-', $attributeIds);
// Add or update combination if it is unique
if (!empty($attributeIds)) {
if (!empty($attributeIds))
{
$combination = findCombinationByAttributes($mainProduct->id, $attributeIds);
if (!$combination) {
// Create new combination
$combination = new Combination();
@@ -466,14 +482,6 @@ foreach ($productsBySymbol as $symbol => $products) {
}
}
// Ensure the product has combinations enabled
$mainProduct->checkDefaultAttributes();
Product::updateDefaultAttribute($mainProduct->id);
assignFeatureToProduct($mainProduct->id, 41, 2499);
assignManufacturerToProduct($mainProduct->id, 53);
updateDeliveryParameters($mainProduct->id);
if ($productAdded || $combinationAdded) {
if ($productAdded) {
echo "<p>Dodałem produkt: " . (string)$mainProductData->title . "</p>";

242
import_log.txt Normal file
View File

@@ -0,0 +1,242 @@
assignManufacturerToProduct: - Czas: 0.4262461662 s
updateDeliveryParameters: - Czas: 0.4215769768 s
checkDefaultAttributes: - Czas: 0.0003340244 s
updateDefaultAttribute: - Czas: 0.00050807 s
assignFeatureToProduct: - Czas: 0.0001671314 s
assignManufacturerToProduct: - Czas: 0.3423829079 s
updateDeliveryParameters: - Czas: 0.3334941864 s
checkDefaultAttributes: - Czas: 0.0002989769 s
updateDefaultAttribute: - Czas: 0.0003688335 s
assignFeatureToProduct: - Czas: 0.0001060963 s
assignManufacturerToProduct: - Czas: 0.3288969994 s
updateDeliveryParameters: - Czas: 0.3239622116 s
checkDefaultAttributes: - Czas: 0.000328064 s
updateDefaultAttribute: - Czas: 0.0005500317 s
assignFeatureToProduct: - Czas: 0.0001599789 s
assignManufacturerToProduct: - Czas: 0.4372122288 s
updateDeliveryParameters: - Czas: 0.3624811172 s
checkDefaultAttributes: - Czas: 0.0003359318 s
updateDefaultAttribute: - Czas: 0.0005369186 s
assignFeatureToProduct: - Czas: 0.0001659393 s
assignManufacturerToProduct: - Czas: 0.4803569317 s
updateDeliveryParameters: - Czas: 0.3654170036 s
checkDefaultAttributes: - Czas: 0.0003561974 s
updateDefaultAttribute: - Czas: 0.0005309582 s
assignFeatureToProduct: - Czas: 0.0001630783 s
assignManufacturerToProduct: - Czas: 0.3784301281 s
updateDeliveryParameters: - Czas: 0.3411879539 s
checkDefaultAttributes: - Czas: 0.0002560616 s
updateDefaultAttribute: - Czas: 0.000344038 s
assignFeatureToProduct: - Czas: 0.0001089573 s
assignManufacturerToProduct: - Czas: 0.3450279236 s
updateDeliveryParameters: - Czas: 0.3543119431 s
checkDefaultAttributes: - Czas: 0.0003318787 s
updateDefaultAttribute: - Czas: 0.0005168915 s
assignFeatureToProduct: - Czas: 0.0001530647 s
assignManufacturerToProduct: - Czas: 0.4458961487 s
updateDeliveryParameters: - Czas: 0.4548761845 s
checkDefaultAttributes: - Czas: 0.0003581047 s
updateDefaultAttribute: - Czas: 0.0005428791 s
assignFeatureToProduct: - Czas: 0.0001628399 s
assignManufacturerToProduct: - Czas: 0.3954489231 s
updateDeliveryParameters: - Czas: 0.4525499344 s
checkDefaultAttributes: - Czas: 0.0004041195 s
updateDefaultAttribute: - Czas: 0.0006399155 s
assignFeatureToProduct: - Czas: 0.0001709461 s
assignManufacturerToProduct: - Czas: 0.3680429459 s
updateDeliveryParameters: - Czas: 0.3262569904 s
checkDefaultAttributes: - Czas: 0.0003430843 s
updateDefaultAttribute: - Czas: 0.0006570816 s
assignFeatureToProduct: - Czas: 0.0001671314 s
assignManufacturerToProduct: - Czas: 0.3415501118 s
updateDeliveryParameters: - Czas: 0.3416759968 s
checkDefaultAttributes: - Czas: 0.0002470016 s
updateDefaultAttribute: - Czas: 0.0004410744 s
assignFeatureToProduct: - Czas: 0.0001089573 s
assignManufacturerToProduct: - Czas: 0.3695940971 s
updateDeliveryParameters: - Czas: 0.3828930855 s
checkDefaultAttributes: - Czas: 0.000369072 s
updateDefaultAttribute: - Czas: 0.0005009174 s
assignFeatureToProduct: - Czas: 0.0001671314 s
assignManufacturerToProduct: - Czas: 0.5003170967 s
updateDeliveryParameters: - Czas: 0.4746000767 s
checkDefaultAttributes: - Czas: 0.0003769398 s
updateDefaultAttribute: - Czas: 0.0005910397 s
assignFeatureToProduct: - Czas: 0.000150919 s
assignManufacturerToProduct: - Czas: 0.3642251492 s
updateDeliveryParameters: - Czas: 0.3458819389 s
checkDefaultAttributes: - Czas: 0.0003349781 s
updateDefaultAttribute: - Czas: 0.0004038811 s
assignFeatureToProduct: - Czas: 0.0001170635 s
assignManufacturerToProduct: - Czas: 0.3930370808 s
updateDeliveryParameters: - Czas: 0.350176096 s
checkDefaultAttributes: - Czas: 0.0003490448 s
updateDefaultAttribute: - Czas: 0.0006318092 s
assignFeatureToProduct: - Czas: 0.0001780987 s
assignManufacturerToProduct: - Czas: 0.3643250465 s
updateDeliveryParameters: - Czas: 0.3357100487 s
checkDefaultAttributes: - Czas: 0.0002880096 s
updateDefaultAttribute: - Czas: 0.0003600121 s
assignFeatureToProduct: - Czas: 0.0001118183 s
assignManufacturerToProduct: - Czas: 0.3357670307 s
updateDeliveryParameters: - Czas: 0.3248200417 s
checkDefaultAttributes: - Czas: 0.0002129078 s
updateDefaultAttribute: - Czas: 0.0003299713 s
assignFeatureToProduct: - Czas: 0.0001089573 s
assignManufacturerToProduct: - Czas: 0.4272751808 s
updateDeliveryParameters: - Czas: 0.466531992 s
checkDefaultAttributes: - Czas: 0.0003991127 s
updateDefaultAttribute: - Czas: 0.0006611347 s
assignFeatureToProduct: - Czas: 0.0001809597 s
assignManufacturerToProduct: - Czas: 0.4899871349 s
updateDeliveryParameters: - Czas: 0.7103190422 s
checkDefaultAttributes: - Czas: 0.0046949387 s
updateDefaultAttribute: - Czas: 0.0007748604 s
assignFeatureToProduct: - Czas: 0.0002031326 s
assignManufacturerToProduct: - Czas: 0.6846830845 s
updateDeliveryParameters: - Czas: 1.167112112 s
checkDefaultAttributes: - Czas: 0.0003659725 s
updateDefaultAttribute: - Czas: 0.0006430149 s
assignFeatureToProduct: - Czas: 0.0002250671 s
assignManufacturerToProduct: - Czas: 1.1021640301 s
updateDeliveryParameters: - Czas: 1.3044149876 s
checkDefaultAttributes: - Czas: 0.0004770756 s
updateDefaultAttribute: - Czas: 0.0007369518 s
assignFeatureToProduct: - Czas: 0.0001997948 s
assignManufacturerToProduct: - Czas: 1.0143408775 s
updateDeliveryParameters: - Czas: 0.6880748272 s
checkDefaultAttributes: - Czas: 0.0004279613 s
updateDefaultAttribute: - Czas: 0.0007190704 s
assignFeatureToProduct: - Czas: 0.0002019405 s
assignManufacturerToProduct: - Czas: 0.6853539944 s
updateDeliveryParameters: - Czas: 0.4846229553 s
checkDefaultAttributes: - Czas: 0.0002179146 s
updateDefaultAttribute: - Czas: 0.0004119873 s
assignFeatureToProduct: - Czas: 0.0001339912 s
assignManufacturerToProduct: - Czas: 0.4477550983 s
updateDeliveryParameters: - Czas: 0.4125201702 s
checkDefaultAttributes: - Czas: 0.0003149509 s
updateDefaultAttribute: - Czas: 0.0005559921 s
assignFeatureToProduct: - Czas: 0.000161171 s
assignManufacturerToProduct: - Czas: 0.5412540436 s
updateDeliveryParameters: - Czas: 0.4320850372 s
checkDefaultAttributes: - Czas: 0.000346899 s
updateDefaultAttribute: - Czas: 0.0007121563 s
assignFeatureToProduct: - Czas: 0.0001988411 s
assignManufacturerToProduct: - Czas: 0.4824531078 s
updateDeliveryParameters: - Czas: 0.4178190231 s
checkDefaultAttributes: - Czas: 0.0003230572 s
updateDefaultAttribute: - Czas: 0.0005750656 s
assignFeatureToProduct: - Czas: 0.0001690388 s
assignManufacturerToProduct: - Czas: 0.4967250824 s
updateDeliveryParameters: - Czas: 0.5422120094 s
checkDefaultAttributes: - Czas: 0.0003399849 s
updateDefaultAttribute: - Czas: 0.0004820824 s
assignFeatureToProduct: - Czas: 0.0001409054 s
assignManufacturerToProduct: - Czas: 0.6019070148 s
updateDeliveryParameters: - Czas: 0.8138720989 s
checkDefaultAttributes: - Czas: 0.0004310608 s
updateDefaultAttribute: - Czas: 0.0006289482 s
assignFeatureToProduct: - Czas: 0.0001888275 s
assignManufacturerToProduct: - Czas: 0.8366191387 s
updateDeliveryParameters: - Czas: 0.7279880047 s
checkDefaultAttributes: - Czas: 0.0005471706 s
updateDefaultAttribute: - Czas: 0.0007560253 s
assignFeatureToProduct: - Czas: 0.0002200603 s
assignManufacturerToProduct: - Czas: 0.6026861668 s
updateDeliveryParameters: - Czas: 0.7088148594 s
checkDefaultAttributes: - Czas: 0.000535965 s
updateDefaultAttribute: - Czas: 0.0008089542 s
assignFeatureToProduct: - Czas: 0.0002388954 s
assignManufacturerToProduct: - Czas: 0.7287240028 s
updateDeliveryParameters: - Czas: 0.6537880898 s
checkDefaultAttributes: - Czas: 0.0003349781 s
updateDefaultAttribute: - Czas: 0.0005450249 s
assignFeatureToProduct: - Czas: 0.0001609325 s
assignManufacturerToProduct: - Czas: 0.5774979591 s
updateDeliveryParameters: - Czas: 0.9246549606 s
checkDefaultAttributes: - Czas: 0.0027449131 s
updateDefaultAttribute: - Czas: 0.0006728172 s
assignFeatureToProduct: - Czas: 0.0002090931 s
assignManufacturerToProduct: - Czas: 1.1386389732 s
updateDeliveryParameters: - Czas: 0.6657061577 s
checkDefaultAttributes: - Czas: 0.0003938675 s
updateDefaultAttribute: - Czas: 0.0005810261 s
assignFeatureToProduct: - Czas: 0.0001678467 s
assignManufacturerToProduct: - Czas: 0.5724651814 s
updateDeliveryParameters: - Czas: 0.4335079193 s
checkDefaultAttributes: - Czas: 0.0004069805 s
updateDefaultAttribute: - Czas: 0.000620842 s
assignFeatureToProduct: - Czas: 0.0001718998 s
assignManufacturerToProduct: - Czas: 0.5796840191 s
updateDeliveryParameters: - Czas: 0.5281429291 s
checkDefaultAttributes: - Czas: 0.0003139973 s
updateDefaultAttribute: - Czas: 0.0006110668 s
assignFeatureToProduct: - Czas: 0.0001649857 s
assignManufacturerToProduct: - Czas: 0.6251370907 s
updateDeliveryParameters: - Czas: 0.4623789787 s
checkDefaultAttributes: - Czas: 0.0002861023 s
updateDefaultAttribute: - Czas: 0.0005040169 s
assignFeatureToProduct: - Czas: 0.0001530647 s
assignManufacturerToProduct: - Czas: 0.3677082062 s
updateDeliveryParameters: - Czas: 0.3655400276 s
checkDefaultAttributes: - Czas: 0.0002110004 s
updateDefaultAttribute: - Czas: 0.0003709793 s
assignFeatureToProduct: - Czas: 0.0001649857 s
assignManufacturerToProduct: - Czas: 0.4248571396 s
updateDeliveryParameters: - Czas: 0.3955180645 s
checkDefaultAttributes: - Czas: 0.0004079342 s
updateDefaultAttribute: - Czas: 0.0007419586 s
assignFeatureToProduct: - Czas: 0.0001699924 s
assignManufacturerToProduct: - Czas: 0.3776080608 s
updateDeliveryParameters: - Czas: 0.4625780582 s
checkDefaultAttributes: - Czas: 0.0003538132 s
updateDefaultAttribute: - Czas: 0.0005300045 s
assignFeatureToProduct: - Czas: 0.00015378 s
assignManufacturerToProduct: - Czas: 0.4383010864 s
updateDeliveryParameters: - Czas: 0.3749082088 s
checkDefaultAttributes: - Czas: 0.0003299713 s
updateDefaultAttribute: - Czas: 0.0003488064 s
assignFeatureToProduct: - Czas: 0.0001599789 s
assignManufacturerToProduct: - Czas: 0.461078167 s
updateDeliveryParameters: - Czas: 0.4741959572 s
checkDefaultAttributes: - Czas: 0.00041008 s
updateDefaultAttribute: - Czas: 0.0004560947 s
assignFeatureToProduct: - Czas: 0.0001339912 s
assignManufacturerToProduct: - Czas: 0.438256979 s
updateDeliveryParameters: - Czas: 0.4868628979 s
checkDefaultAttributes: - Czas: 0.0003561974 s
updateDefaultAttribute: - Czas: 0.0005970001 s
assignFeatureToProduct: - Czas: 0.0001788139 s
assignManufacturerToProduct: - Czas: 0.3790559769 s
updateDeliveryParameters: - Czas: 0.3557400703 s
checkDefaultAttributes: - Czas: 0.0002110004 s
updateDefaultAttribute: - Czas: 0.000330925 s
assignFeatureToProduct: - Czas: 0.000109911 s
assignManufacturerToProduct: - Czas: 0.4047451019 s
updateDeliveryParameters: - Czas: 0.3728339672 s
checkDefaultAttributes: - Czas: 0.0003340244 s
updateDefaultAttribute: - Czas: 0.0005059242 s
assignFeatureToProduct: - Czas: 0.0001518726 s
assignManufacturerToProduct: - Czas: 0.4306240082 s
updateDeliveryParameters: - Czas: 0.4766829014 s
checkDefaultAttributes: - Czas: 0.0003268719 s
updateDefaultAttribute: - Czas: 0.0005848408 s
assignFeatureToProduct: - Czas: 0.0001859665 s
assignManufacturerToProduct: - Czas: 0.5685949326 s
updateDeliveryParameters: - Czas: 0.4895288944 s
checkDefaultAttributes: - Czas: 0.0002679825 s
updateDefaultAttribute: - Czas: 0.0004389286 s
assignFeatureToProduct: - Czas: 0.0001428127 s
assignManufacturerToProduct: - Czas: 0.3998091221 s
updateDeliveryParameters: - Czas: 0.4115920067 s
checkDefaultAttributes: - Czas: 0.000440836 s
updateDefaultAttribute: - Czas: 0.0007219315 s
assignFeatureToProduct: - Czas: 0.0002179146 s
assignManufacturerToProduct: - Czas: 0.4039318562 s
updateDeliveryParameters: - Czas: 0.414607048 s
checkDefaultAttributes: - Czas: 0.0002880096 s
updateDefaultAttribute: - Czas: 0.000385046 s
assignFeatureToProduct: - Czas: 0.0001158714 s
assignManufacturerToProduct: - Czas: 0.4266691208 s
updateDeliveryParameters: - Czas: 0.5422110558 s