Class ReturnConfirmedInventoryAdjustmentListener
java.lang.Object
com.broadleafcommerce.inventory.service.messaging.AbstractInventoryAdjustmentListener
com.broadleafcommerce.inventory.service.messaging.returns.ReturnConfirmedInventoryAdjustmentListener
@DataRouteByKey("inventory")
public class ReturnConfirmedInventoryAdjustmentListener
extends AbstractInventoryAdjustmentListener
Listens for return confirmations to create
DefaultInventoryTransactionType.RETURNED
InventoryTransactions
and update SkuInventory
.-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Confirm return item request fields relevant for adjusting inventory.Nested classes/interfaces inherited from class com.broadleafcommerce.inventory.service.messaging.AbstractInventoryAdjustmentListener
AbstractInventoryAdjustmentListener.OrderFulfillment, AbstractInventoryAdjustmentListener.OrderFulfillmentItem, AbstractInventoryAdjustmentListener.OrderItem
-
Field Summary
Modifier and TypeFieldDescriptionprotected static final String
protected static final String
protected static final String
protected static final String
Fields inherited from class com.broadleafcommerce.inventory.service.messaging.AbstractInventoryAdjustmentListener
APPLICATION_ID_PATH, INVENTORY_SERIALIZATION_VALUE, TENANT_ID_PATH
-
Constructor Summary
ConstructorDescriptionReturnConfirmedInventoryAdjustmentListener
(com.broadleafcommerce.common.messaging.service.IdempotentMessageConsumptionService idempotentConsumptionService, com.broadleafcommerce.common.extension.TypeFactory typeFactory, SkuInventoryService<SkuInventory> skuInventoryService) -
Method Summary
Modifier and TypeMethodDescriptionprotected String
Builds a sku with an appended serialization value parameterprotected SkuInventoryAdjustmentRequestGroup
buildSkuInventoryAdjustmentGroup
(List<AbstractInventoryAdjustmentListener.OrderFulfillment> fulfillments, Map<String, List<ReturnConfirmedInventoryAdjustmentListener.ConfirmReturnItemRequest>> returnItemRequestsByFulfillmentItemId, Map<String, AbstractInventoryAdjustmentListener.OrderItem> orderItemsById) protected SkuInventoryAdjustmentRequestItem
buildSkuInventoryAdjustmentItem
(AbstractInventoryAdjustmentListener.OrderFulfillmentItem fulfillmentItem, AbstractInventoryAdjustmentListener.OrderItem orderItem, int quantityReturned) Builds aSkuInventoryAdjustmentRequestItem
with data from provided objects.protected SkuInventoryAdjustmentRequest
buildSkuInventoryAdjustmentRequest
(@NonNull com.jayway.jsonpath.DocumentContext jsonContext, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds theSkuInventoryAdjustmentRequest
based on the return confirmations and fulfillment info in the status change message.protected boolean
containsNewlyReturnedItems
(AbstractInventoryAdjustmentListener.OrderFulfillment fulfillment, Map<String, List<ReturnConfirmedInventoryAdjustmentListener.ConfirmReturnItemRequest>> returnItemRequestsByFulfillmentItemId) protected String
Hook point to get the serialization value of an order itemgetOrderItemsIncludingDependents
(@NonNull com.jayway.jsonpath.DocumentContext jsonContext) Gets a list ofOrderItems
along with their dependent items.protected boolean
Determines whether the order item has a serialized sku inventory objectvoid
void
Extracts the message, createsInventoryTransactions
and updatesSkuInventory
.Methods inherited from class com.broadleafcommerce.inventory.service.messaging.AbstractInventoryAdjustmentListener
buildContextInfo, buildContextInfo, getDocumentContext, getIdempotentConsumptionService, getSkuInventoryService, getSkuReferenceFieldType, getTypeFactory
-
Field Details
-
RETURN_AUTH_ID_PATH
- See Also:
-
CONFIRM_RETURN_REQUEST_ITEMS_PATH
- See Also:
-
FULFILLMENTS_PATH
- See Also:
-
ORDER_ITEMS_PATH
- See Also:
-
-
Constructor Details
-
ReturnConfirmedInventoryAdjustmentListener
public ReturnConfirmedInventoryAdjustmentListener(com.broadleafcommerce.common.messaging.service.IdempotentMessageConsumptionService idempotentConsumptionService, com.broadleafcommerce.common.extension.TypeFactory typeFactory, SkuInventoryService<SkuInventory> skuInventoryService)
-
-
Method Details
-
listen
@StreamListener("inventoryReturnConfirmedInput") public void listen(org.springframework.messaging.Message<String> message) -
process
Extracts the message, createsInventoryTransactions
and updatesSkuInventory
.- Parameters:
message
- The return confirmation event message
-
buildSkuInventoryAdjustmentRequest
protected SkuInventoryAdjustmentRequest buildSkuInventoryAdjustmentRequest(@NonNull @NonNull com.jayway.jsonpath.DocumentContext jsonContext, @NonNull @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds theSkuInventoryAdjustmentRequest
based on the return confirmations and fulfillment info in the status change message.- Parameters:
jsonContext
- aDocumentContext
representation of the fulfillment message payloadcontextInfo
- Context information around sandbox and multitenant state.- Returns:
- The
SkuInventoryAdjustmentRequest
based on the fulfillment info in the status change message.
-
getOrderItemsIncludingDependents
public List<AbstractInventoryAdjustmentListener.OrderItem> getOrderItemsIncludingDependents(@NonNull @NonNull com.jayway.jsonpath.DocumentContext jsonContext) Gets a list ofOrderItems
along with their dependent items. -
containsNewlyReturnedItems
protected boolean containsNewlyReturnedItems(AbstractInventoryAdjustmentListener.OrderFulfillment fulfillment, Map<String, List<ReturnConfirmedInventoryAdjustmentListener.ConfirmReturnItemRequest>> returnItemRequestsByFulfillmentItemId) -
buildSkuInventoryAdjustmentGroup
protected SkuInventoryAdjustmentRequestGroup buildSkuInventoryAdjustmentGroup(List<AbstractInventoryAdjustmentListener.OrderFulfillment> fulfillments, Map<String, List<ReturnConfirmedInventoryAdjustmentListener.ConfirmReturnItemRequest>> returnItemRequestsByFulfillmentItemId, Map<String, AbstractInventoryAdjustmentListener.OrderItem> orderItemsById) -
buildSkuInventoryAdjustmentItem
protected SkuInventoryAdjustmentRequestItem buildSkuInventoryAdjustmentItem(AbstractInventoryAdjustmentListener.OrderFulfillmentItem fulfillmentItem, AbstractInventoryAdjustmentListener.OrderItem orderItem, int quantityReturned) Builds aSkuInventoryAdjustmentRequestItem
with data from provided objects.- Parameters:
fulfillmentItem
- the fulfillment itemorderItem
- the order itemquantityReturned
- the quantity to be returned of this item- Returns:
- the built sku inventory adjustment item
-
isSerialized
Determines whether the order item has a serialized sku inventory object- Parameters:
orderItem
- the order item- Returns:
- whether the order item has a serialized sku inventory object
-
buildSerializedSku
Builds a sku with an appended serialization value parameter- Parameters:
orderItem
- order item to access values from- Returns:
- sku with an appended serialization value parameter
-
getInventorySerializationValue
@Nullable protected String getInventorySerializationValue(AbstractInventoryAdjustmentListener.OrderItem orderItem) Hook point to get the serialization value of an order itemBy default, accesses a respective entry inside
AbstractInventoryAdjustmentListener.OrderItem.getInternalAttributes()
.- Parameters:
orderItem
- the order item- Returns:
- the serialization value
-