Class CartEndpoint


  • @FrameworkRestController
    @FrameworkMapping
    @DataRouteByExample(com.broadleafcommerce.cart.client.domain.Cart.class)
    public class CartEndpoint
    extends Object
    Author:
    Chad Harchar (charchar), Nathan Moore (nathandmoore)
    • Constructor Detail

      • CartEndpoint

        public CartEndpoint​(CartService<com.broadleafcommerce.cart.client.domain.Cart> cartService,
                            CartRequestValidator<com.broadleafcommerce.cart.client.domain.Cart> cartRequestValidator,
                            CartItemRequestValidator<com.broadleafcommerce.cart.client.domain.CartItem> cartItemRequestValidator)
    • Method Detail

      • readAllCarts

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping("/carts")
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCarts​(@ContextOperation(READ)
                                                                                                                com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                                cz.jirutka.rsql.parser.ast.Node filters,
                                                                                                                @PageableDefault(size=50,sort="createDate",direction=DESC)
                                                                                                                org.springframework.data.domain.Pageable page)
      • readAllCartsForCustomer

        @Deprecated(since="1.8.0",
                    forRemoval=true)
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsForCustomer​(@ContextOperation(READ)
                                                                                                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                                           @RequestParam
                                                                                                                           String customerId,
                                                                                                                           @PageableDefault(size=50,sort="createDate",direction=DESC)
                                                                                                                           org.springframework.data.domain.Pageable page)
        Deprecated, for removal: This API element is subject to removal in a future version.
      • readAllCartsForCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/carts",
                             params="customerId")
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsForCustomer​(@ContextOperation(READ)
                                                                                                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                                           @RequestParam
                                                                                                                           String customerId,
                                                                                                                           @RequestParam(required=false)
                                                                                                                           String accountId,
                                                                                                                           @PageableDefault(size=50,sort="createDate",direction=DESC)
                                                                                                                           org.springframework.data.domain.Pageable page)
      • readAllCartsForCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/carts",
                             params={"customerId","cq"})
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsForCustomer​(@ContextOperation(READ)
                                                                                                                           com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                                           @RequestParam
                                                                                                                           String customerId,
                                                                                                                           @RequestParam(required=false)
                                                                                                                           String accountId,
                                                                                                                           @PageableDefault(size=50,sort="createDate",direction=DESC)
                                                                                                                           org.springframework.data.domain.Pageable page,
                                                                                                                           cz.jirutka.rsql.parser.ast.Node filters)
      • readAllCartsByStatusesForCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/carts",
                             params={"statuses","customerId"})
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsByStatusesForCustomer​(@ContextOperation(READ)
                                                                                                                                     com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                                                     @RequestParam
                                                                                                                                     Set<String> statuses,
                                                                                                                                     @RequestParam
                                                                                                                                     String customerId,
                                                                                                                                     @RequestParam(required=false)
                                                                                                                                     String accountId,
                                                                                                                                     @PageableDefault(size=50,sort="createDate",direction=DESC)
                                                                                                                                     org.springframework.data.domain.Pageable page)
      • readHistoricalCartsForCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/carts",
                             params={"customerId","historical=true"})
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readHistoricalCartsForCustomer​(@ContextOperation(READ)
                                                                                                                                  com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                                                  @RequestParam
                                                                                                                                  String customerId,
                                                                                                                                  @RequestParam(required=false) @DateTimeFormat(iso=DATE_TIME)
                                                                                                                                  Date startDate,
                                                                                                                                  @RequestParam(required=false) @DateTimeFormat(iso=DATE_TIME)
                                                                                                                                  Date endDate,
                                                                                                                                  @PageableDefault(size=50,sort="submitDate",direction=DESC)
                                                                                                                                  org.springframework.data.domain.Pageable page)
      • readHistoricalCartForAnonymousCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/cart",
                             params={"emailAddress","orderNumber","historical=true"})
        public Optional<com.broadleafcommerce.cart.client.domain.Cart> readHistoricalCartForAnonymousCustomer​(@ContextOperation(READ)
                                                                                                              com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                              @RequestParam
                                                                                                              String emailAddress,
                                                                                                              @RequestParam
                                                                                                              String orderNumber)
      • readCartByOrderNumber

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/cart",
                             params={"customerId","orderNumber"})
        public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartByOrderNumber​(@ContextOperation(READ)
                                                                                             com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                             @RequestParam
                                                                                             String customerId,
                                                                                             @RequestParam
                                                                                             String orderNumber)
      • readCartInStatusForCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/cart",
                             params={"customerId","status"})
        public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartInStatusForCustomer​(@ContextOperation(READ)
                                                                                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                   @RequestParam
                                                                                                   String customerId,
                                                                                                   @RequestParam(required=false)
                                                                                                   String accountId,
                                                                                                   @RequestParam
                                                                                                   String status)
      • readCartByStatusAndNameForCustomer

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping(value="/cart",
                             params={"customerId","status","name"})
        public Optional<com.broadleafcommerce.cart.client.domain.Cart> readCartByStatusAndNameForCustomer​(@ContextOperation(READ)
                                                                                                          com.broadleafcommerce.data.tracking.core.context.ContextInfo context,
                                                                                                          @RequestParam
                                                                                                          String customerId,
                                                                                                          @RequestParam(required=false)
                                                                                                          String accountId,
                                                                                                          @RequestParam
                                                                                                          String status,
                                                                                                          @RequestParam(required=false)
                                                                                                          String name)
      • readCart

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping("/carts/{id}")
        public com.broadleafcommerce.cart.client.domain.Cart readCart​(@PathVariable("id")
                                                                      String id,
                                                                      @ContextOperation(READ)
                                                                      com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • readAllCartsMatchingTenantByStatus

        @Policy(permissionRoots="TENANT_CART")
        @FrameworkGetMapping("/tenant-carts")
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.Cart> readAllCartsMatchingTenantByStatus​(@RequestParam
                                                                                                                                      String status,
                                                                                                                                      @PageableDefault(size=50)
                                                                                                                                      org.springframework.data.domain.Pageable page,
                                                                                                                                      @ContextOperation(READ)
                                                                                                                                      com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • updateCartsMatchingTenantStatus

        @Policy(permissionRoots="TENANT_CART")
        @FrameworkPostMapping("/tenant-carts/update-status")
        public List<com.broadleafcommerce.cart.client.domain.Cart> updateCartsMatchingTenantStatus​(@RequestParam
                                                                                                   List<String> cartIds,
                                                                                                   @RequestParam
                                                                                                   String status,
                                                                                                   @ContextOperation(UPDATE)
                                                                                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • createCart

        @Policy(permissionRoots="CART")
        @FrameworkPostMapping("/carts")
        public com.broadleafcommerce.cart.client.domain.Cart createCart​(@RequestBody
                                                                        com.broadleafcommerce.cart.client.domain.Cart cart,
                                                                        @ContextOperation(CREATE)
                                                                        com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • updateCart

        @Policy(permissionRoots="CART")
        @FrameworkPatchMapping("/carts/{id}")
        @Deprecated(since="1.8.0",
                    forRemoval=true)
        public com.broadleafcommerce.cart.client.domain.Cart updateCart​(@PathVariable("id")
                                                                        String id,
                                                                        @RequestBody
                                                                        com.broadleafcommerce.cart.client.domain.Cart req,
                                                                        @ContextOperation(UPDATE)
                                                                        com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
        Deprecated, for removal: This API element is subject to removal in a future version.
      • updateCartWithRequest

        @Policy(permissionRoots="CART")
        @FrameworkPatchMapping(value="/carts/{id}",
                               params="withUpdateRequest=true")
        public com.broadleafcommerce.cart.client.domain.Cart updateCartWithRequest​(@PathVariable("id")
                                                                                   String id,
                                                                                   @RequestBody
                                                                                   UpdateCartRequest req,
                                                                                   @ContextOperation(UPDATE)
                                                                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • replaceCart

        @Policy(permissionRoots="CART")
        @FrameworkPutMapping("/carts/{id}")
        @Deprecated(since="1.8.0",
                    forRemoval=true)
        public com.broadleafcommerce.cart.client.domain.Cart replaceCart​(@PathVariable("id")
                                                                         String id,
                                                                         @RequestBody
                                                                         com.broadleafcommerce.cart.client.domain.Cart req,
                                                                         @ContextOperation(UPDATE)
                                                                         com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
        Deprecated, for removal: This API element is subject to removal in a future version.
      • replaceCartWithRequest

        @Policy(permissionRoots="CART")
        @FrameworkPutMapping(value="/carts/{id}",
                             params="withUpdateRequest=true")
        public com.broadleafcommerce.cart.client.domain.Cart replaceCartWithRequest​(@PathVariable("id")
                                                                                    String id,
                                                                                    @RequestBody
                                                                                    UpdateCartRequest req,
                                                                                    @ContextOperation(UPDATE)
                                                                                    com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • deleteCart

        @Policy(permissionRoots="CART")
        @FrameworkDeleteMapping("/carts/{id}")
        public void deleteCart​(@PathVariable("id")
                               String id,
                               @ContextOperation(DELETE)
                               com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • readAllCartItems

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping("/carts/{cartId}/cart-items")
        public org.springframework.data.domain.Page<com.broadleafcommerce.cart.client.domain.CartItem> readAllCartItems​(@PathVariable("cartId")
                                                                                                                        String cartId,
                                                                                                                        @ContextOperation(READ)
                                                                                                                        com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • createCartItem

        @Policy(permissionRoots="CART")
        @FrameworkPostMapping("/carts/{cartId}/cart-items")
        public com.broadleafcommerce.cart.client.domain.CartItem createCartItem​(@PathVariable("cartId")
                                                                                String cartId,
                                                                                @RequestBody
                                                                                com.broadleafcommerce.cart.client.domain.CartItem cartItem,
                                                                                @ContextOperation(CREATE)
                                                                                com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • readCartItem

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping("/carts/{cartId}/cart-items/{id}")
        public com.broadleafcommerce.cart.client.domain.CartItem readCartItem​(@PathVariable("cartId")
                                                                              String cartId,
                                                                              @PathVariable("id")
                                                                              String id,
                                                                              @ContextOperation(READ)
                                                                              com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • updateCartItem

        @Policy(permissionRoots="CART")
        @FrameworkPatchMapping("/carts/{cartId}/cart-items/{id}")
        public com.broadleafcommerce.cart.client.domain.CartItem updateCartItem​(@PathVariable("cartId")
                                                                                String cartId,
                                                                                @PathVariable("id")
                                                                                String id,
                                                                                @RequestBody
                                                                                com.broadleafcommerce.cart.client.domain.CartItem cartItem,
                                                                                @ContextOperation(UPDATE)
                                                                                com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • replaceCartItem

        @Policy(permissionRoots="CART")
        @FrameworkPutMapping("/carts/{cartId}/cart-items/{id}")
        public com.broadleafcommerce.cart.client.domain.CartItem replaceCartItem​(@PathVariable("cartId")
                                                                                 String cartId,
                                                                                 @PathVariable("id")
                                                                                 String id,
                                                                                 @RequestBody
                                                                                 com.broadleafcommerce.cart.client.domain.CartItem cartItem,
                                                                                 @ContextOperation(UPDATE)
                                                                                 com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • deleteCartItem

        @Policy(permissionRoots="CART")
        @FrameworkDeleteMapping("/carts/{cartId}/cart-items/{itemId}")
        public void deleteCartItem​(@PathVariable("cartId")
                                   String cartId,
                                   @PathVariable("itemId")
                                   String itemId,
                                   @ContextOperation(DELETE)
                                   com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • readFulfillmentGroupsByCartId

        @Policy(permissionRoots="CART")
        @FrameworkGetMapping("/carts/{cartId}/fulfillment-groups")
        public List<com.broadleafcommerce.cart.client.domain.FulfillmentGroup> readFulfillmentGroupsByCartId​(@PathVariable
                                                                                                             String cartId,
                                                                                                             @ContextOperation(READ)
                                                                                                             com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      • sendRollbackEvent

        @Policy(permissionRoots="SEND_ROLLBACK_EVENT",
                operationTypes=UPDATE)
        @FrameworkPostMapping("/carts/send-rollback-event")
        public void sendRollbackEvent​(@RequestBody
                                      CheckoutRollbackEvent event)
      • sendCheckoutCompletionEvent

        @Policy(permissionRoots="SEND_CHECKOUT_COMPLETION_EVENT",
                operationTypes=UPDATE)
        @FrameworkPostMapping("/carts/send-checkout-completion-event")
        public void sendCheckoutCompletionEvent​(@RequestBody
                                                CheckoutCompletionEvent event)
      • sendCartRejectionEvent

        @Deprecated(forRemoval=true,
                    since="1.8.2")
        @Policy(permissionRoots="SEND_CART_REJECTION_EVENT",
                operationTypes=UPDATE)
        @FrameworkPostMapping("/carts/send-cart-rejection-event")
        public void sendCartRejectionEvent​(@RequestBody
                                           CartRejectionEvent event)
        Deprecated, for removal: This API element is subject to removal in a future version.
        The CartRejectionEvent is now sent in response to the update-cart request instead of requiring a separate request.
      • sendCartFailedPendingPaymentEvent

        @Policy(permissionRoots="SEND_CART_PENDING_PAYMENT_FAILED_EVENT",
                operationTypes=UPDATE)
        @FrameworkPostMapping("/carts/send-cart-pending-payment-failed-event")
        public void sendCartFailedPendingPaymentEvent​(@RequestBody
                                                      CartPendingPaymentFailedEvent event)
      • sendCartFailedPendingPaymentEvent

        @Deprecated(since="1.8.1",
                    forRemoval=true)
        @Policy(permissionRoots="SEND_CART_PENDING_PAYMENT_FAILED_EVENT")
        @FrameworkPostMapping("/carts/{cartId}/send-cart-pending-payment-failed-event")
        public void sendCartFailedPendingPaymentEvent​(@PathVariable("cartId")
                                                      String cartId,
                                                      @RequestBody
                                                      CartPendingPaymentFailedEvent event,
                                                      @ContextOperation(UPDATE)
                                                      com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
        Deprecated, for removal: This API element is subject to removal in a future version.
      • prepareCartFromItemRequest

        protected void prepareCartFromItemRequest​(com.broadleafcommerce.cart.client.domain.Cart loadedCart,
                                                  com.broadleafcommerce.cart.client.domain.CartItem requestedItem)
      • findCartItem

        protected com.broadleafcommerce.cart.client.domain.CartItem findCartItem​(com.broadleafcommerce.cart.client.domain.Cart cart,
                                                                                 String cartItemId)
        Finds a cart item by its ID on a cart.
        Parameters:
        cart - the cart to search through the items of
        cartItemId - the ID of the cart item to search for
        Returns:
        the cart item with the matching ID
        Throws:
        com.broadleafcommerce.data.tracking.core.exception.EntityMissingException - when no such item exists
      • validateTenantOnlyOperation

        protected void validateTenantOnlyOperation​(com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
        Validates that the given ContextInfo is a tenant only operation.

        This is used to ensure an operation can only be performed by tenant context.

        Parameters:
        contextInfo - the ContextInfo to validate against
        Throws:
        com.broadleafcommerce.data.tracking.core.exception.EntityMissingException - if the given ContextInfo is not a tenant-only operation
      • getCartService

        protected CartService<com.broadleafcommerce.cart.client.domain.Cart> getCartService()
      • getCartRequestValidator

        protected CartRequestValidator<com.broadleafcommerce.cart.client.domain.Cart> getCartRequestValidator()
      • getCartItemRequestValidator

        protected CartItemRequestValidator<com.broadleafcommerce.cart.client.domain.CartItem> getCartItemRequestValidator()
      • getPolicyUtils

        @Nullable
        protected com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils getPolicyUtils()
      • setPolicyUtils

        @Autowired(required=false)
        public void setPolicyUtils​(@Nullable
                                   com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils policyUtils)
      • setCartNotificationService

        @Autowired
        public void setCartNotificationService​(CartNotificationService cartNotificationService)
      • getCartActionAuditService

        protected CartActionAuditService<com.broadleafcommerce.cart.client.domain.CartActionAudit> getCartActionAuditService()
      • setCartActionAuditService

        @Autowired
        public void setCartActionAuditService​(CartActionAuditService<com.broadleafcommerce.cart.client.domain.CartActionAudit> cartActionAuditService)
      • setCartActionAuditRequestValidator

        @Deprecated
        @Autowired
        public void setCartActionAuditRequestValidator​(CartActionAuditRequestValidator<com.broadleafcommerce.cart.client.domain.CartActionAudit> cartActionAuditRequestValidator)
        Deprecated.
        No longer used from the endpoint. It is used from the CartActionAuditService instead.