diff --git a/vendor/magento/module-catalog-import-export/Model/Import/Product/Validator/Backorders.php b/vendor/magento/module-catalog-import-export/Model/Import/Product/Validator/Backorders.php new file mode 100644 index 0000000000000..23db673117b9d --- /dev/null +++ b/vendor/magento/module-catalog-import-export/Model/Import/Product/Validator/Backorders.php @@ -0,0 +1,55 @@ +_clearMessages(); + if (!isset($value['allow_backorders'])) { + return true; + } + + $backorders = $value['allow_backorders']; + if (in_array($backorders, [$this->context->getEmptyAttributeValueConstant(), ''], true)) { + return true; + } + + if (!is_numeric($backorders)) { + $messageTemplate = $this->context->retrieveMessageTemplate(self::ERROR_INVALID_ATTRIBUTE_TYPE); + $message = sprintf($messageTemplate, 'allow_backorders'); + $this->_addMessages([$message]); + return false; + } + + $allowedValues = array_column($this->backordersSource->toOptionArray(), 'label', 'value'); + if (!isset($allowedValues[$backorders])) { + $messageTemplate = $this->context->retrieveMessageTemplate(self::ERROR_INVALID_ATTRIBUTE_OPTION); + $message = sprintf($messageTemplate, 'allow_backorders'); + $this->_addMessages([$message]); + return false; + } + + return true; + } +} diff --git a/vendor/magento/module-catalog-import-export/etc/di.xml b/vendor/magento/module-catalog-import-export/etc/di.xml index 43fdda6227ac7..7447d73af539d 100644 --- a/vendor/magento/module-catalog-import-export/etc/di.xml +++ b/vendor/magento/module-catalog-import-export/etc/di.xml @@ -36,6 +36,7 @@ Magento\CatalogImportExport\Model\Import\Product\Validator\Quantity Magento\CatalogImportExport\Model\Import\Product\Validator\LayoutUpdate Magento\CatalogImportExport\Model\Import\Product\Validator\LayoutUpdatePermissions + Magento\CatalogImportExport\Model\Import\Product\Validator\Backorders