Automattic\WooCommerce\Internal\CLI\Migrator\Core

WooCommerceProductImporter::import_batchpublicWC 1.0

Import a batch of products.

Method of the class: WooCommerceProductImporter{}

No Hooks.

Returns

Array. Batch import results.

Usage

$WooCommerceProductImporter = new WooCommerceProductImporter();
$WooCommerceProductImporter->import_batch( $products_data, $source_data_batch ): array;
$products_data(array) (required)
Array of mapped product data.
$source_data_batch(array)
Array of original source data for reference.
Default: array()

WooCommerceProductImporter::import_batch() code WC 10.7.0

public function import_batch( array $products_data, array $source_data_batch = array() ): array {
	$results     = array();
	$batch_stats = array(
		'successful' => 0,
		'failed'     => 0,
		'skipped'    => 0,
	);

	$total_count = count( $products_data );

	foreach ( $products_data as $index => $product_data ) {
		$source_data  = $source_data_batch[ $index ] ?? array();
		$product_name = $product_data['name'] ?? 'Unknown Product';

		$result = $this->import_product( $product_data, $source_data );

		$results[] = $result;

		if ( 'success' === $result['status'] ) {
			if ( 'skipped' === $result['action'] ) {
				++$batch_stats['skipped'];
			} else {
				++$batch_stats['successful'];
			}
		} else {
			++$batch_stats['failed'];
		}

		if ( $this->progress_callback ) {
			call_user_func( $this->progress_callback, $index + 1, $total_count, $product_name, $result );
		}
	}

	return array(
		'results' => $results,
		'stats'   => $batch_stats,
	);
}