From aa77d8f045175312c223a080135102ce75a56375 Mon Sep 17 00:00:00 2001 From: Jacek Pyziak Date: Tue, 11 Feb 2025 17:48:07 +0100 Subject: [PATCH] =?UTF-8?q?Dodanie=20logowania=20czasu=20wykonania=20opera?= =?UTF-8?q?cji=20w=20funkcji=20importu=20produkt=C3=B3w?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- import-product.php | 114 +++++++++++---------- import_log.txt | 242 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 303 insertions(+), 53 deletions(-) create mode 100644 import_log.txt diff --git a/import-product.php b/import-product.php index 5c0878b8..ca9ae180 100644 --- a/import-product.php +++ b/import-product.php @@ -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 '
';
-// 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 '
';
-    // 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", "
", $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", "
", $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", "
", $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 "

Dodałem produkt: " . (string)$mainProductData->title . "

"; diff --git a/import_log.txt b/import_log.txt new file mode 100644 index 00000000..da4f161e --- /dev/null +++ b/import_log.txt @@ -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