diff --git a/modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/service/impl/CommerceOrderItemLocalServiceImpl.java b/modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/service/impl/CommerceOrderItemLocalServiceImpl.java index 8c341baeaddaaa..35bb136f9cd800 100644 --- a/modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/service/impl/CommerceOrderItemLocalServiceImpl.java +++ b/modules/apps/commerce/commerce-service/src/main/java/com/liferay/commerce/service/impl/CommerceOrderItemLocalServiceImpl.java @@ -16,7 +16,6 @@ import com.liferay.commerce.exception.GuestCartItemMaxAllowedException; import com.liferay.commerce.exception.NoSuchOrderItemException; import com.liferay.commerce.exception.ProductBundleException; -import com.liferay.commerce.exception.RequiredOrderItemOptionException; import com.liferay.commerce.internal.search.CommerceOrderItemIndexer; import com.liferay.commerce.internal.util.CommercePriceConverterUtil; import com.liferay.commerce.inventory.constants.CommerceInventoryConstants; @@ -38,6 +37,10 @@ import com.liferay.commerce.price.CommerceProductPriceImpl; import com.liferay.commerce.price.CommerceProductPriceRequest; import com.liferay.commerce.product.constants.CPConstants; +import com.liferay.commerce.product.exception.CPDefinitionOptionRelException; +import com.liferay.commerce.product.exception.CPDefinitionOptionValueRelCPInstanceException; +import com.liferay.commerce.product.exception.CPDefinitionOptionValueRelKeyException; +import com.liferay.commerce.product.exception.CPInstanceOptionValueRelException; import com.liferay.commerce.product.exception.NoSuchCPInstanceException; import com.liferay.commerce.product.exception.NoSuchCPInstanceUnitOfMeasureException; import com.liferay.commerce.product.model.CPDefinition; @@ -2656,6 +2659,12 @@ private String _validateJSON( JSONArray optionRelJSONArray = CPJSONUtil.toJSONArray( cpDefinitionOptionRelKeysOptionValueRelKeysMap); + Map> + cpDefinitionOptionRelValueRelMap = + _cpInstanceHelper. + getCPInstanceCPDefinitionOptionRelsMap( + cpInstance.getCPInstanceId()); + for (CPDefinitionOptionRel cpDefinitionOptionRel : cpDefinition.getCPDefinitionOptionRels()) { @@ -2666,8 +2675,7 @@ private String _validateJSON( } else if (cpDefinitionOptionRel.isRequired()) { if (CPJSONUtil.isEmpty(json)) { - throw new RequiredOrderItemOptionException( - "Required option is missing"); + throw new CPDefinitionOptionRelException(); } _validateRequiredOption(cpDefinitionOptionRel, optionJSONArray); @@ -2713,7 +2721,7 @@ private void _validateRequiredOption( if ((valueJSONArray == null) || (valueJSONArray.length() == 0)) { - throw new RequiredOrderItemOptionException( + throw new CPInstanceOptionValueRelException( "Required option must have a value"); } @@ -2771,7 +2779,8 @@ else if (Objects.equals(optionTypeKey, "checkbox")) { } if (!containsRequiredOption) { - throw new RequiredOrderItemOptionException(); + throw new CPDefinitionOptionRelException( + "Required option is missing"); } }