Skip to content

Commit eed9022

Browse files
committed
ACP2E-3763: Investigate if AC-3637 can be automated
1 parent 1e14bd7 commit eed9022

File tree

6 files changed

+82
-2
lines changed

6 files changed

+82
-2
lines changed

dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest/ProductOptionsTest.php

Lines changed: 72 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?php
22
/**
3-
* Copyright © Magento, Inc. All rights reserved.
4-
* See COPYING.txt for license details.
3+
* Copyright 2021 Adobe
4+
* All Rights Reserved
55
*/
66
declare(strict_types=1);
77

@@ -10,6 +10,7 @@
1010
use Magento\Catalog\Api\Data\ProductCustomOptionInterface;
1111
use Magento\Catalog\Api\ProductCustomOptionRepositoryInterface;
1212
use Magento\Catalog\Api\ProductRepositoryInterface;
13+
use Magento\Catalog\Model\Product;
1314
use Magento\Catalog\Helper\Data as CatalogConfig;
1415
use Magento\Catalog\Test\Fixture\Product as ProductFixture;
1516
use Magento\CatalogImportExport\Model\Import\ProductTestBase;
@@ -247,6 +248,75 @@ public function testSaveCustomOptionsWithMultipleStoreViews(
247248
);
248249
}
249250

251+
/**
252+
* Test for custom options based on AC-3637
253+
*
254+
* @dataProvider productsWithCustomOptionsDataProvider
255+
* @param string $filename
256+
* @param string $sku
257+
* @param int $numOfCustomOptions
258+
* @throws LocalizedException
259+
* @throws NoSuchEntityException
260+
*
261+
* @return void
262+
*/
263+
public function testImportWithoutCustomOptions(string $filename, string $sku, int $numOfCustomOptions): void
264+
{
265+
$pathToFile = __DIR__ . '/../_files/' . $filename;
266+
$importModel = $this->createImportModel($pathToFile, \Magento\ImportExport\Model\Import::BEHAVIOR_ADD_UPDATE);
267+
$errors = $importModel->validateData();
268+
$this->assertTrue($errors->getErrorsCount() == 0);
269+
$importModel->importData();
270+
271+
/** @var ProductRepositoryInterface $productRepository */
272+
$productRepository = Bootstrap::getObjectManager()->create(ProductRepositoryInterface::class);
273+
$product = $productRepository->get($sku);
274+
275+
$this->assertInstanceOf(Product::class, $product);
276+
$options = $product->getOptionInstance()->getProductOptions($product);
277+
$this->assertCount($numOfCustomOptions, $options);
278+
279+
try {
280+
$this->productRepository->delete($product);
281+
} catch (NoSuchEntityException $e) {
282+
//already deleted
283+
}
284+
}
285+
286+
/**
287+
* @return array
288+
*/
289+
public static function productsWithCustomOptionsDataProvider(): array
290+
{
291+
return [
292+
[
293+
'filename' => '001_simple1_no_custom_options.csv',
294+
'sku' => 'simple1',
295+
'numOfCustomOptions' => 0,
296+
],
297+
[
298+
'filename' => '002_simple1_4_custom_options.csv',
299+
'sku' => 'simple1',
300+
'numOfCustomOptions' => 4,
301+
],
302+
[
303+
'filename' => '003_simple1_5_custom_options.csv',
304+
'sku' => 'simple1',
305+
'numOfCustomOptions' => 5,
306+
],
307+
[
308+
'filename' => '004_simple1_5_custom_options_1_updated.csv',
309+
'sku' => 'simple1',
310+
'numOfCustomOptions' => 5,
311+
],
312+
[
313+
'filename' => '005_simple1_no_custom_options.csv',
314+
'sku' => 'simple1',
315+
'numOfCustomOptions' => 0,
316+
],
317+
];
318+
}
319+
250320
/**
251321
* Tests adding of custom options with multiple store views across bunches
252322
*
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,giftcard_type,giftcard_allow_open_amount,giftcard_open_amount_min,giftcard_open_amount_max,giftcard_amount,use_config_is_redeemable,giftcard_is_redeemable,use_config_lifetime,giftcard_lifetime,use_config_allow_message,giftcard_allow_message,use_config_email_template,giftcard_email_template,associated_skus,downloadable_links,downloadable_samples,configurable_variations,configurable_variation_labels
2+
simple1,,Default,simple,"Default Category/cat1",base,simple1,,,1.000000,1,"Taxable Goods","Catalog, Search",100.000000,,,,simple1,simple1,simple1,"simple1 ",,,,,,,,,"5/20/21, 12:03 AM","5/20/21, 12:03 AM",,,"Block after Info Column",,,,"Use config",,,,,,,"Use config",,"gift_wrapping_available=Use config",1000.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,1.0000,1,0,0,0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,giftcard_type,giftcard_allow_open_amount,giftcard_open_amount_min,giftcard_open_amount_max,giftcard_amount,use_config_is_redeemable,giftcard_is_redeemable,use_config_lifetime,giftcard_lifetime,use_config_allow_message,giftcard_allow_message,use_config_email_template,giftcard_email_template,associated_skus,downloadable_links,downloadable_samples,configurable_variations,configurable_variation_labels
2+
simple1,,Default,simple,"Default Category/cat1",base,simple1,,,1.000000,1,"Taxable Goods","Catalog, Search",100.000000,,,,simple1,simple1,simple1,"simple1 ",,,,,,,,,"5/20/21, 12:03 AM","5/20/21, 12:15 AM",,,"Block after Info Column",,,,"Use config",,,,,,,"Use config",,"gift_wrapping_available=Use config",1000.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,1.0000,1,0,0,0,0,1,,,,,,,,,,"name=Option1,type=drop_down,required=1,price=11.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value11|name=Option1,type=drop_down,required=1,price=12.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value12|name=Option2,type=drop_down,required=1,price=21.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value21|name=Option2,type=drop_down,required=1,price=22.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value22|name=Option3,type=drop_down,required=1,price=31.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value31|name=Option3,type=drop_down,required=1,price=32.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value32|name=Option4,type=drop_down,required=1,price=41.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value41|name=Option4,type=drop_down,required=1,price=42.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value42",,,,,,,,,,,,,,,,,,,,,,,,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,giftcard_type,giftcard_allow_open_amount,giftcard_open_amount_min,giftcard_open_amount_max,giftcard_amount,use_config_is_redeemable,giftcard_is_redeemable,use_config_lifetime,giftcard_lifetime,use_config_allow_message,giftcard_allow_message,use_config_email_template,giftcard_email_template,associated_skus,downloadable_links,downloadable_samples,configurable_variations,configurable_variation_labels
2+
simple1,,Default,simple,"Default Category/cat1",base,simple1,,,1.000000,1,"Taxable Goods","Catalog, Search",100.000000,,,,simple1,simple1,simple1,"simple1 ",,,,,,,,,"5/20/21, 12:03 AM","5/20/21, 12:15 AM",,,"Block after Info Column",,,,"Use config",,,,,,,"Use config",,"gift_wrapping_available=Use config",1000.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,1.0000,1,0,0,0,0,1,,,,,,,,,,"name=Option1,type=drop_down,required=1,price=11.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value11|name=Option1,type=drop_down,required=1,price=12.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value12|name=Option2,type=drop_down,required=1,price=21.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value21|name=Option2,type=drop_down,required=1,price=22.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value22|name=Option3,type=drop_down,required=1,price=31.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value31|name=Option3,type=drop_down,required=1,price=32.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value32|name=Option4,type=drop_down,required=1,price=41.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value41|name=Option4,type=drop_down,required=1,price=42.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value42|name=Option5,type=drop_down,required=1,price=51.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value51|name=Option5,type=drop_down,required=1,price=52.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value52",,,,,,,,,,,,,,,,,,,,,,,,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,giftcard_type,giftcard_allow_open_amount,giftcard_open_amount_min,giftcard_open_amount_max,giftcard_amount,use_config_is_redeemable,giftcard_is_redeemable,use_config_lifetime,giftcard_lifetime,use_config_allow_message,giftcard_allow_message,use_config_email_template,giftcard_email_template,associated_skus,downloadable_links,downloadable_samples,configurable_variations,configurable_variation_labels
2+
simple1,,Default,simple,"Default Category/cat1",base,simple1,,,1.000000,1,"Taxable Goods","Catalog, Search",100.000000,,,,simple1,simple1,simple1,"simple1 ",,,,,,,,,"5/20/21, 12:03 AM","5/20/21, 12:15 AM",,,"Block after Info Column",,,,"Use config",,,,,,,"Use config",,"gift_wrapping_available=Use config",1000.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,1.0000,1,0,0,0,0,1,,,,,,,,,,"name=Option1,type=drop_down,required=1,price=11.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value11|name=Option1,type=drop_down,required=1,price=12.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value12|name=Option2,type=drop_down,required=1,price=21.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value21|name=Option2,type=drop_down,required=1,price=22.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value22|name=Option3,type=drop_down,required=1,price=31.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value31|name=Option3,type=drop_down,required=1,price=32.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value32|name=Option4,type=drop_down,required=1,price=41.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value41|name=Option4,type=drop_down,required=1,price=42.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value42|name=Option5,type=drop_down,required=1,price=953.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value953|name=Option5,type=drop_down,required=1,price=954.000000,sku=,max_characters=0,file_extension=,image_size_x=0,image_size_y=0,price_type=fixed,option_title=Value954",,,,,,,,,,,,,,,,,,,,,,,,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,deferred_stock_update,use_config_deferred_stock_update,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,custom_options,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,giftcard_type,giftcard_allow_open_amount,giftcard_open_amount_min,giftcard_open_amount_max,giftcard_amount,use_config_is_redeemable,giftcard_is_redeemable,use_config_lifetime,giftcard_lifetime,use_config_allow_message,giftcard_allow_message,use_config_email_template,giftcard_email_template,associated_skus,downloadable_links,downloadable_samples,configurable_variations,configurable_variation_labels
2+
simple1,,Default,simple,"Default Category/cat1",base,simple1,,,1.000000,1,"Taxable Goods","Catalog, Search",100.000000,,,,simple1,simple1,simple1,"simple1 ",,,,,,,,,"5/20/21, 12:03 AM","5/20/21, 12:03 AM",,,"Block after Info Column",,,,"Use config",,,,,,,"Use config",,"gift_wrapping_available=Use config",1000.0000,0.0000,1,0,0,1,1.0000,1,10000.0000,1,1,1.0000,1,1,1,1,1.0000,1,0,0,0,0,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

0 commit comments

Comments
 (0)