Automattic\WooCommerce\Internal\CLI\Migrator\Platforms\Webflow
WebflowMapper::map_product_data
Maps a raw Webflow product+SKUs item into the importer's standardized array shape.
Method of the class: WebflowMapper{}
No Hooks.
Returns
Array. Standardized data array.
Usage
$WebflowMapper = new WebflowMapper(); $WebflowMapper->map_product_data( $platform_data ): array;
- $platform_data(object) (required)
- Webflow product item:
{ product: { id, fieldData: ... }, skus: [...], _resolved_categories?: [...] }.
WebflowMapper::map_product_data() WebflowMapper::map product data code WC 11.0.1
public function map_product_data( object $platform_data ): array {
$product = $this->extract_product( $platform_data );
$field_data = $this->extract_field_data( $product );
$skus = $this->extract_skus( $platform_data );
$properties = $this->extract_sku_properties( $field_data );
// Needs properties AND more than one SKU. A single-SKU product is imported as simple,
// intentionally dropping its lone option (a one-value attribute adds no variation choice).
$is_variable = ! empty( $properties ) && count( $skus ) > 1;
$wc_data = $this->map_basic_fields( $product, $field_data, $is_variable );
$wc_data['categories'] = $this->should_process( 'categories' ) ? $this->map_categories( $platform_data ) : array();
$wc_data['tags'] = array();
$images = $this->should_process( 'images' ) ? $this->build_images( $field_data, $skus ) : array();
$wc_data['images'] = $images;
if ( $is_variable ) {
$wc_data = array_merge( $wc_data, $this->map_variable_data( $properties, $skus, $images ) );
} else {
$wc_data = array_merge( $wc_data, $this->map_simple_data( $skus ) );
$wc_data['attributes'] = array();
$wc_data['variations'] = array();
}
$wc_data['metafields'] = $this->map_seo( $field_data );
return $wc_data;
}