Skip to content

Commit ecfb349

Browse files
authored
ENGCOM-3823: #15950: [Forwardport] Magento2 CSV product import qty and is_in_stock not working correct. #20180
2 parents 7c3742b + fa78d86 commit ecfb349

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

app/code/Magento/CatalogImportExport/Model/Import/Product.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3067,9 +3067,7 @@ private function formatStockDataForRow(array $rowData): array
30673067

30683068
if ($this->stockConfiguration->isQty($this->skuProcessor->getNewSku($sku)['type_id'])) {
30693069
$stockItemDo->setData($row);
3070-
$row['is_in_stock'] = isset($row['is_in_stock']) && $stockItemDo->getBackorders()
3071-
? $row['is_in_stock']
3072-
: $this->stockStateProvider->verifyStock($stockItemDo);
3070+
$row['is_in_stock'] = $row['is_in_stock'] ?? $this->stockStateProvider->verifyStock($stockItemDo);
30733071
if ($this->stockStateProvider->verifyNotification($stockItemDo)) {
30743072
$date = $this->dateTimeFactory->create('now', new \DateTimeZone('UTC'));
30753073
$row['low_stock_date'] = $date->format(DateTime::DATETIME_PHP_FORMAT);

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2272,6 +2272,20 @@ public function testImportWithBackordersEnabled(): void
22722272
$this->assertFalse($product->getDataByKey('quantity_and_stock_status')['is_in_stock']);
22732273
}
22742274

2275+
/**
2276+
* Test that imported product stock status with stock quantity > 0 and backorders functionality disabled
2277+
* can be set to 'out of stock'.
2278+
*
2279+
* @magentoDbIsolation enabled
2280+
* @magentoAppIsolation enabled
2281+
*/
2282+
public function testImportWithBackordersDisabled(): void
2283+
{
2284+
$this->importFile('products_to_import_with_backorders_disabled_and_not_0_qty.csv');
2285+
$product = $this->getProductBySku('simple_new');
2286+
$this->assertFalse($product->getDataByKey('quantity_and_stock_status')['is_in_stock']);
2287+
}
2288+
22752289
/**
22762290
* Import file by providing import filename in parameters.
22772291
*
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,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,related_skus,crosssell_skus,upsell_skus,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,associated_skus
2+
simple_new,,Default,simple,,base,New Product,,,,1,Taxable Goods,"Catalog, Search",10,,,,new-product,New Product,New Product,New Product ,,,,,,,10/20/2015 7:05,10/20/2015 7:05,,,Block after Info Column,,,,,,,,,,,,,"has_options=1,quantity_and_stock_status=In Stock,required_options=1",100,0,1,0,0,0,1,1,10000,1,0,1,1,1,0,1,1,0,0,0,1,,,,,,,,,,,,,

0 commit comments

Comments
 (0)