public function start(?string $groupCode = null): void 	{ 		$productsCollection = $this->getProducts();  		foreach ($productsCollection as $product) { 			$productCode = (string) $product->artikl_id;  			$erp_name = (string) $product->naziv; 			$slug = Product::generateSlug($product->naziv, $product->artikl_id); 			$volume = (string) $product->zapremina; 			$alcohol_percentage = (string) $product->alkohol_post; 			$unit_of_measure = (string) $product->jm; 			$weight = (float) $product->tezina_kg; 			$tax = (float) $product->pdv_post; 			$available_in_erp = (string) $product->status_aktivan; 			$is_delivery_code = (string) $product->artikl_dostava; 			$price_with_tax_and_fee = (float) $product->cijena_eur; 			$return_fee = (float) $product->povratna_naknada;  			if ($tax > 0) { 				$base_product_price_with_tax = $price_with_tax_and_fee - $return_fee; 				$tax_amount = round($base_product_price_with_tax - ($base_product_price_with_tax / (($tax / 100) + 1)), 2); 				$base_product_price = $base_product_price_with_tax - $tax_amount;  				$validator = $this->createValidatorInstance($productCode, $erp_name, $slug, $volume, $alcohol_percentage, $unit_of_measure, $weight, $tax, $available_in_erp, $is_delivery_code, $base_product_price, $tax_amount, $price_with_tax_and_fee, $return_fee);  				if ($validator->fails()) { 					$this->failedImportsCount++;  					$this->failedImports['items'][$product[0]] = $validator->errors();  					continue; 				}  				// @var Product $product 				$this->updateOrCreateItem($productCode, $erp_name, $slug, $volume, $alcohol_percentage, $unit_of_measure, $weight, $tax, $available_in_erp, $is_delivery_code, $base_product_price, $tax_amount, $price_with_tax_and_fee, $return_fee);  				$this->importedItemsCount++; 			} 		}  		$this->logStatistics(); 	}