Class ProductsController


  • @Controller
    @RequestMapping("/{baseSiteId}/products")
    public class ProductsController
    extends BaseController
    Web Services Controller to expose the functionality of the ProductFacade and SearchFacade.
    • Constructor Detail

      • ProductsController

        public ProductsController()
    • Method Detail

      • extractOptions

        protected static java.util.Set<ProductOption> extractOptions​(java.lang.String options)
      • getProducts

        @RequestMapping(value="/search",
                        method=GET)
        @ResponseBody
        public ProductSearchPageWsDTO getProducts​(@RequestParam(required=false)
                                                  java.lang.String query,
                                                  @RequestParam(defaultValue="0")
                                                  int currentPage,
                                                  @RequestParam(defaultValue="20")
                                                  int pageSize,
                                                  @RequestParam(required=false)
                                                  java.lang.String sort,
                                                  @RequestParam(required=false)
                                                  java.lang.String searchQueryContext,
                                                  @RequestParam(defaultValue="DEFAULT")
                                                  java.lang.String fields,
                                                  javax.servlet.http.HttpServletResponse response)
      • countProducts

        @RequestMapping(value="/search",
                        method=HEAD)
        public void countProducts​(@RequestParam(required=false)
                                  java.lang.String query,
                                  javax.servlet.http.HttpServletResponse response)
      • getProduct

        @RequestMapping(value="/{productCode}",
                        method=GET)
        @Cacheable(value="productCache",
                   key="T(de.hybris.platform.commercewebservicescommons.cache.CommerceCacheKeyGenerator).generateKey(true,true,#productCode,#fields)")
        @ResponseBody
        public ProductWsDTO getProduct​(@PathVariable
                                       java.lang.String productCode,
                                       @RequestParam(defaultValue="DEFAULT")
                                       java.lang.String fields)
      • getLocationProductStock

        @RequestMapping(value="/{productCode}/stock",
                        method=GET)
        @ResponseBody
        public StoreFinderStockSearchPageWsDTO getLocationProductStock​(@PathVariable
                                                                       java.lang.String productCode,
                                                                       @RequestParam(required=false)
                                                                       java.lang.String location,
                                                                       @RequestParam(required=false)
                                                                       java.lang.Double latitude,
                                                                       @RequestParam(required=false)
                                                                       java.lang.Double longitude,
                                                                       @RequestParam(required=false,defaultValue="0")
                                                                       int currentPage,
                                                                       @RequestParam(required=false,defaultValue="20")
                                                                       int pageSize,
                                                                       @RequestParam(defaultValue="DEFAULT")
                                                                       java.lang.String fields,
                                                                       javax.servlet.http.HttpServletResponse response)
      • countProductStockByLocation

        @RequestMapping(value="/{productCode}/stock",
                        method=HEAD)
        public void countProductStockByLocation​(@PathVariable
                                                java.lang.String productCode,
                                                @RequestParam(required=false)
                                                java.lang.String location,
                                                @RequestParam(required=false)
                                                java.lang.Double latitude,
                                                @RequestParam(required=false)
                                                java.lang.Double longitude,
                                                javax.servlet.http.HttpServletResponse response)
      • doSearchProductStockByLocation

        protected StoreFinderStockSearchPageData doSearchProductStockByLocation​(java.lang.String productCode,
                                                                                java.lang.String location,
                                                                                java.lang.Double latitude,
                                                                                java.lang.Double longitude,
                                                                                int currentPage,
                                                                                int pageSize)
      • getProductReviews

        @RequestMapping(value="/{productCode}/reviews",
                        method=GET)
        @ResponseBody
        public ReviewListWsDTO getProductReviews​(@PathVariable
                                                 java.lang.String productCode,
                                                 @RequestParam(required=false)
                                                 java.lang.Integer maxCount,
                                                 @RequestParam(defaultValue="DEFAULT")
                                                 java.lang.String fields)
      • createProductReview

        @RequestMapping(value="/{productCode}/reviews",
                        method=POST)
        @ResponseStatus(CREATED)
        @ResponseBody
        public ReviewWsDTO createProductReview​(@PathVariable
                                               java.lang.String productCode,
                                               @RequestParam(defaultValue="DEFAULT")
                                               java.lang.String fields,
                                               javax.servlet.http.HttpServletRequest request)
                                        throws WebserviceValidationException
        Throws:
        WebserviceValidationException
      • createProductReview

        @RequestMapping(value="/{productCode}/reviews",
                        method=POST,
                        consumes={"application/json","application/xml"})
        @ResponseStatus(CREATED)
        @ResponseBody
        public ReviewWsDTO createProductReview​(@PathVariable
                                               java.lang.String productCode,
                                               @RequestBody
                                               ReviewWsDTO review,
                                               @RequestParam(defaultValue="DEFAULT")
                                               java.lang.String fields)
                                        throws WebserviceValidationException
        Throws:
        WebserviceValidationException
      • getProductReferences

        @RequestMapping(value="/{productCode}/references",
                        method=GET)
        @ResponseBody
        public ProductReferenceListWsDTO getProductReferences​(@PathVariable
                                                              java.lang.String productCode,
                                                              @RequestParam(required=false,defaultValue="2147483647")
                                                              int pageSize,
                                                              @RequestParam(required=false)
                                                              java.lang.String referenceType,
                                                              @RequestParam(defaultValue="DEFAULT")
                                                              java.lang.String fields)
      • createPageableData

        protected PageableData createPageableData​(int currentPage,
                                                  int pageSize,
                                                  java.lang.String sort)
      • createGeoPoint

        protected GeoPoint createGeoPoint​(java.lang.Double latitude,
                                          java.lang.Double longitude)
      • getSuggestions

        @RequestMapping(value="/suggestions",
                        method=GET)
        @ResponseBody
        public SuggestionListWsDTO getSuggestions​(@RequestParam
                                                  java.lang.String term,
                                                  @RequestParam(defaultValue="10")
                                                  int max,
                                                  @RequestParam(defaultValue="DEFAULT")
                                                  java.lang.String fields)
      • filterExpressUpdateQueue

        protected void filterExpressUpdateQueue​(java.util.List<ProductExpressUpdateElementData> products,
                                                java.util.List<java.lang.String> catalogInfo)