diff --git a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php
index 9a6f1b48620dcd3fbcd58d05f04e7a546e67bc1e..10da7c7a65ebe82c762d688a8fc17b04dff30143 100644
--- a/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php
+++ b/app/code/Magento/Rule/Model/Condition/Product/AbstractProduct.php
@@ -137,6 +137,7 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon
              */
             $this->_defaultOperatorInputByType['category'] = ['==', '!=', '{}', '!{}', '()', '!()'];
             $this->_arrayInputTypes[] = 'category';
+            $this->_defaultOperatorInputByType['sku'] = ['==', '!=', '{}', '!{}', '()', '!()'];
         }
         return $this->_defaultOperatorInputByType;
     }
@@ -382,6 +383,9 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon
         if ($this->getAttributeObject()->getAttributeCode() == 'category_ids') {
             return 'category';
         }
+        if ($this->getAttributeObject()->getAttributeCode() == 'sku') {
+            return 'sku';
+        }
         switch ($this->getAttributeObject()->getFrontendInput()) {
             case 'select':
                 return 'select';
@@ -606,7 +610,10 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon
                     $this->getValueParsed()
                 )->__toString()
             );
+        } elseif ($this->getAttribute() === 'sku') {
+            $this->isMultipleSku();
         }
+
         return parent::getBindArgumentValue();
     }
 
@@ -704,7 +711,7 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon
     public function getOperatorForValidate()
     {
         $operator = $this->getOperator();
-        if ($this->getInputType() == 'category') {
+        if ($this->getInputType() == 'category' || $this->isMultipleSku()) {
             if ($operator == '==') {
                 $operator = '{}';
             } elseif ($operator == '!=') {
@@ -753,4 +760,31 @@ abstract class AbstractProduct extends \Magento\Rule\Model\Condition\AbstractCon
 
         return $selectOptions;
     }
+
+    /**
+     * Check condition contains multiple sku.
+     *
+     * @return bool
+     */
+    private function isMultipleSku()
+    {
+        $result = false;
+        if ($this->getInputType() === 'sku') {
+            if ($this->hasValueParsed()) {
+                $value = $this->getData('value_parsed');
+                if (count($value > 1)) {
+                    $result = true;
+                }
+            } else {
+                $value = $this->getData('value');
+                $value = preg_split('#\s*[,;]\s*#', $value, null, PREG_SPLIT_NO_EMPTY);
+                if (count($value > 1)) {
+                    $this->setValueParsed($value);
+                    $result = true;
+                }
+            }
+        }
+
+        return $result;
+    }
 }
diff --git a/dev/tests/integration/testsuite/Magento/CatalogWidget/Block/Product/ProductListTest.php b/dev/tests/integration/testsuite/Magento/CatalogWidget/Block/Product/ProductListTest.php
index 6892f7b3a8a8871498ae9e19a83833d316bc5688..3b270bb42c544e5fe752091f9bd275502138a246 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogWidget/Block/Product/ProductListTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogWidget/Block/Product/ProductListTest.php
@@ -67,12 +67,36 @@ class ProductListTest extends \PHPUnit\Framework\TestCase
             . '`attribute`:`multiselect_attribute`,`operator`:`^[^]`,'
             . '`value`:[`' . implode(',', $multiselectAttributeOptionIds) . '`]^]^]';
         $this->block->setData('conditions_encoded', $encodedConditions);
+        $this->performAssertions(1);
+    }
+
+    /**
+     * Test product list widget can process condition with multiple product sku.
+     *
+     * @magentoDataFixture Magento/Catalog/_files/multiple_products.php
+     */
+    public function testCreateCollectionWithMultipleSkuCondition()
+    {
+        $encodedConditions = '^[`1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Combine`,' .
+            '`aggregator`:`all`,`value`:`1`,`new_child`:``^],`1--1`:^[`type`:`Magento||CatalogWidget||Model||Rule|' .
+            '|Condition||Product`,`attribute`:`sku`,`operator`:`==`,`value`:`simple1, simple2`^]^]';
+        $this->block->setData('conditions_encoded', $encodedConditions);
+        $this->performAssertions(2);
+    }
 
-        // Load products collection filtered using specified conditions and perform assesrions
+    /**
+     * Check product collection includes correct amount of products.
+     *
+     * @param int $count
+     * @return void
+     */
+    private function performAssertions(int $count)
+    {
+        // Load products collection filtered using specified conditions and perform assertions.
         $productCollection = $this->block->createCollection();
         $productCollection->load();
         $this->assertEquals(
-            1,
+            $count,
             $productCollection->count(),
             "Product collection was not filtered according to the widget condition."
         );