Automattic\WooCommerce\Internal\CLI\Migrator\Platforms\Shopify

ShopifyMapper::map_product_imagesprivateWC 1.0

Maps product images from Shopify media data.

Method of the class: ShopifyMapper{}

No Hooks.

Returns

Array. Product images data.

Usage

// private - for code of main (parent) class only
$result = $this->map_product_images( $shopify_product ): array;
$shopify_product(object) (required)
The Shopify product data.

ShopifyMapper::map_product_images() code WC 10.8.1

private function map_product_images( object $shopify_product ): array {
	$images_data       = array();
	$featured_media_id = null;

	if ( ! empty( $shopify_product->featuredMedia ) && is_object( $shopify_product->featuredMedia ) && ! empty( $shopify_product->featuredMedia->id ) ) { // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase -- GraphQL uses camelCase.
		$featured_media_id = $shopify_product->featuredMedia->id; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase -- GraphQL uses camelCase.
	}

	if ( ! empty( $shopify_product->media->edges ) ) {
		foreach ( $shopify_product->media->edges as $media_edge ) {
			$media_node = $media_edge->node;
			if ( property_exists( $media_node, 'image' ) && is_object( $media_node->image ) && ! empty( $media_node->id ) && ! empty( $media_node->image->url ) ) {
				$images_data[] = array(
					'original_id' => $media_node->id,
					'src'         => $media_node->image->url,
					'alt'         => $media_node->image->altText ?? null,
					'is_featured' => ( $media_node->id === $featured_media_id ),
				);
			}
		}
	}

	return $images_data;
}