Interface CustomerSegmentService<P extends CustomerSegment>
- Type Parameters:
P
-CustomerSegment
or a subclass
- All Superinterfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>
,com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
- All Known Implementing Classes:
DefaultCustomerSegmentService
public interface CustomerSegmentService<P extends CustomerSegment>
extends com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
Service for delegation of CRUD based operations on
CustomerSegments
- Author:
- Chris Schneider (cschneider), Nathan Moore (nathandmoore)
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canManuallyAddCustomerToSegment
(String segmentId, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Evaluates whether the customer segment with the given ID allows manually adding customers.readAllRuleBasedCustomerSegmentsByRuleEvaluationType
(String evaluationType, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Reads all the matchingCustomerSegments
byCustomerSegment.getCustomerSegmentType()
andCustomerSegment.getRuleEvaluationType()
.resolveCustomerSegmentsForRequest
(ResolveCustomerSegmentsRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) ResolvesCustomerSegments
that apply to a given request.Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService
create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSort
Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService
readAll, readAll, readAll, readAll
-
Method Details
-
resolveCustomerSegmentsForRequest
ResolveCustomerSegmentResponse resolveCustomerSegmentsForRequest(ResolveCustomerSegmentsRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) ResolvesCustomerSegments
that apply to a given request.- Parameters:
request
- Request with user details for customer segments to target and be evaluated against.context
- Additional multitenant and sandbox info.- Returns:
- The list of matching segments if any.
-
readAllRuleBasedCustomerSegmentsByRuleEvaluationType
List<P> readAllRuleBasedCustomerSegmentsByRuleEvaluationType(String evaluationType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Reads all the matchingCustomerSegments
byCustomerSegment.getCustomerSegmentType()
andCustomerSegment.getRuleEvaluationType()
.- Parameters:
evaluationType
- The type of rule evaluation. SeeDefaultCustomerSegmentRuleEvaluationType
.context
- Additional sandbox and multitenant info.- Returns:
- The matching
CustomerSegments
.
-
canManuallyAddCustomerToSegment
boolean canManuallyAddCustomerToSegment(String segmentId, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Evaluates whether the customer segment with the given ID allows manually adding customers.As an example, using the default customer segment types,
CUSTOMER_SET
andRULE_BASED
, only sets support manually adding customers, as rule based segments are derived.- Parameters:
segmentId
- The ID of the segment to evaluatecontext
- Context information regarding sandboxing and multitenant state- Returns:
true
if customers may be manually added to this segment, elsefalse
-