---
schema_version: "1"
id: 97ec7a123976069b44faaed77a9f0f7a143a492a850db95c43992fa4309991c5
title: Shop Product Search (deprecated)
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/commerce-cloud/b2c-commerce/references/generated-api-specs/ocapi-shop-product-search.md
canonical_url: https://developer.salesforce.com/docs/commerce/b2c-commerce/references/ocapi-shop-product-search
source_site: developer.salesforce.com
content_type: documentation
content_hash: 40207449011ba1ef1cec811f8224f0765246abef322a55c269ae901c06cf0c24
products:
  - B2C Commerce
  - Salesforce APIs
---
Shop Product Search (deprecated)

# Shop Product Search (deprecated)

The Shop API endpoints enable developers to build full shopper-experience applications such as storefronts. They are designed for high-scale usage, and include a number of areas such as Baskets & Orders, Customers, Products and Pricing. Shop API endpoints are typically read-only APIs, with the exception of baskets and orders.

**Version:** 25.6

## Servers

*   `https://{host}/s/{siteId}/dw/shop/v25_6`

Protocols: https.

## Security

*   `customers_auth` (basic) User authentication either for a registered or a guest customer (selectable in request body). Access via Base64 encoded customer:password string as 'Authorization: Basic' header.
*   `oauth2_application` (oauth2) Authentication flow with client ID and password with account manager.
    *   OAuth flow application (tokenUrl: https://account.demandware.com:443/dwsso/oauth2/access\_token)
    *   Scope x-info: Scopes are NOT supported. This is just a dummy, because the 'scopes' field is required.
*   `client_id` (apiKey) Add client ID for application identification. Alternative as 'client\_id' query parameter.
    *   API key in header: x-dw-client-id

## Operations

### GET Search Products

`GET /product_search`

Operation ID: `Search Products`. Tags: product\_search. Security: client\_id; customers\_auth.

Provides keyword and refinement search functionality for products. Only returns the product id, link and name in the product search hit. Other search hit properties can be added by using the expand parameter. The search result contains only products that are online and assigned to site catalog.

This resource does not return detailed information about variation products. If a variation product matches the query, basic information for the parent master product is returned. Use the products resource to retrieve more details about a variation product.

This endpoint may return the following faults:

*   400 - InvalidExpandParameterException - Thrown in case a specified expand parameter value is unknown.
*   400 - MalformedPriceRefinementException - Thrown if a price refinement parameter is malformed.

#### Parameters

*   `q` (query, string) The query phrase to search for.  
    Maximum length: 50.
*   `refine` (query, array of string)
    
    Parameter that represents a refinement attribute/value(s) pair. Refinement attribute id and value(s) are separated by '='. Multiple values are supported by a sub-set of refinement attributes and can be provided by separating them using a pipe (URL encoded = "|"). Value ranges can be specified like this: refine=price=(100..500) Multiple refine parameters can be provided by adding an underscore in combination with an integer counter right behind the parameter name and a counter range 1..9. I.e. refine\_1=c\_refinementColor=red|green|blue. The following system refinement attribute ids are supported:
    
    *   cgid: Allows to refine per single category id. Multiple category ids are not supported.
        
    *   price: Allows to refine per single price range. Multiple price ranges are not supported.
        
    *   pmid: Allows to refine per promotion id(s).
        
    *   htype: Allow to refine by including only the provided hit types. Accepted types are 'product', 'master', 'set', 'bundle', 'slicing\_group' (deprecated), 'variation\_group'.
        
    *   orderable\_only: Unavailable products will be excluded from the search results if true is set. Multiple refinement values are not supported.
        
*   `sort` (query, string) The id of the sorting option to sort the search hits.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.
*   `expand` (query, array of string) The expand parameter. A comma separated list with the allowed values ( _availability, images, prices, represented\_products, variations_ )
*   `currency` (query, string) The currency mnemonic specified for price. This parameter is effective only if specified expand parameter value contains prices.
*   `locale` (query, string) The locale context.

#### Responses

*   **400** `InvalidExpandParameterException` - Thrown in case a specified expand parameter value is unknown. or `MalformedPriceRefinementException` - Thrown if a price refinement parameter is malformed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_search_result`.
    

### GET Search Products - Availability

`GET /product_search/availability`

Operation ID: `Search Products - Availability`. Tags: product\_search. Security: client\_id; customers\_auth.

Provides keyword and refinement search functionality for products. Only returns the product id, link, name and availability information in the product search hit.

This resource does not return detailed information about variation products. If a variation product matches the query, basic information for the parent master product is returned. Use the products resource to retrieve more details about a variation product.

This endpoint may return the following faults:

*   400 - MalformedPriceRefinementException - Thrown if a price refinement parameter is malformed.

#### Parameters

*   `q` (query, string) The query phrase to search for.  
    Maximum length: 50.
*   `refine` (query, array of string)
    
    Parameter that represents a refinement attribute/value(s) pair. Refinement attribute id and value(s) are separated by '='. Multiple values are supported by a sub-set of refinement attributes and can be provided by separating them using a pipe (URL encoded = "|"). Value ranges can be specified like this: refine=price=(100..500) Multiple refine parameters can be provided by adding an underscore in combination with an integer counter right behind the parameter name and a counter range 1..9. I.e. refine\_1=c\_refinementColor=red|green|blue. The following system refinement attribute ids are supported:
    
    *   cgid: Allows to refine per single category id. Multiple category ids are not supported.
        
    *   price: Allows to refine per single price range. Multiple price ranges are not supported.
        
    *   pmid: Allows to refine per promotion id(s).
        
    *   orderable\_only: Unavailable products will be excluded from the search results if true is set. Multiple refinement values are not supported.
        
*   `sort` (query, string) The id of the sorting option to sort the search hits.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.
*   `locale` (query, string) The locale context.

#### Responses

*   **400** `MalformedPriceRefinementException` - Thrown if a price refinement parameter is malformed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_search_result`.
    

### GET Search Products - Images

`GET /product_search/images`

Operation ID: `Search Products - Images`. Tags: product\_search. Security: client\_id; customers\_auth.

Provides keyword and refinement search functionality for products. Only returns the product id, link, name and image information in the product search hit.

This resource does not return detailed information about variation products. If a variation product matches the query, basic information for the parent master product is returned. Use the products resource to retrieve more details about a variation product.

This endpoint may return the following faults:

*   400 - MalformedPriceRefinementException - Thrown if a price refinement parameter is malformed.

#### Parameters

*   `q` (query, string) The query phrase to search for.  
    Maximum length: 50.
*   `refine` (query, array of string)
    
    Parameter that represents a refinement attribute/value(s) pair. Refinement attribute id and value(s) are separated by '='. Multiple values are supported by a sub-set of refinement attributes and can be provided by separating them using a pipe (URL encoded = "|"). Value ranges can be specified like this: refine=price=(100..500) Multiple refine parameters can be provided by adding an underscore in combination with an integer counter right behind the parameter name and a counter range 1..9. I.e. refine\_1=c\_refinementColor=red|green|blue. The following system refinement attribute ids are supported:
    
    *   cgid: Allows to refine per single category id. Multiple category ids are not supported.
        
    *   price: Allows to refine per single price range. Multiple price ranges are not supported.
        
    *   pmid: Allows to refine per promotion id(s).
        
    *   orderable\_only: Unavailable products will be excluded from the search results if true is set. Multiple refinement values are not supported.
        
*   `sort` (query, string) The id of the sorting option to sort the search hits.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.
*   `locale` (query, string) The locale context.

#### Responses

*   **400** `MalformedPriceRefinementException` - Thrown if a price refinement parameter is malformed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_search_result`.
    

### GET Search Products - Prices

`GET /product_search/prices`

Operation ID: `Search Products - Prices`. Tags: product\_search. Security: client\_id; customers\_auth.

Provides keyword and refinement search functionality for products. Only returns the product id, link, name and price information in the product search hit.

This resource does not return detailed information about variation products. If a variation product matches the query, basic information for the parent master product is returned. Use the products resource to retrieve more details about a variation product.

This endpoint may return the following faults:

*   400 - MalformedPriceRefinementException - Thrown if a price refinement parameter is malformed.

#### Parameters

*   `q` (query, string) The query phrase to search for.  
    Maximum length: 50.
*   `refine` (query, array of string)
    
    Parameter that represents a refinement attribute/value(s) pair. Refinement attribute id and value(s) are separated by '='. Multiple values are supported by a sub-set of refinement attributes and can be provided by separating them using a pipe (URL encoded = "|"). Value ranges can be specified like this: refine=price=(100..500) Multiple refine parameters can be provided by adding an underscore in combination with an integer counter right behind the parameter name and a counter range 1..9. I.e. refine\_1=c\_refinementColor=red|green|blue. The following system refinement attribute ids are supported:
    
    *   cgid: Allows to refine per single category id. Multiple category ids are not supported.
        
    *   price: Allows to refine per single price range. Multiple price ranges are not supported.
        
    *   pmid: Allows to refine per promotion id(s).
        
    *   orderable\_only: Unavailable products will be excluded from the search results if true is set. Multiple refinement values are not supported.
        
*   `sort` (query, string) The id of the sorting option to sort the search hits.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.
*   `currency` (query, string) The currency mnemonic specified for price.
*   `locale` (query, string) The locale context.

#### Responses

*   **400** `MalformedPriceRefinementException` - Thrown if a price refinement parameter is malformed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_search_result`.
    

### GET Search Products - Represented Products

`GET /product_search/represented_products`

Operation ID: `Search Products - Represented Products`. Tags: product\_search. Security: client\_id; customers\_auth.

Provides keyword and refinement search functionality for products. Only returns the product id, link, name and represented product information in the product search hit.

This resource does not return detailed information about variation products. If a variation product matches the query, basic information for the parent master product is returned. Use the products resource to retrieve more details about a variation product.

This endpoint may return the following faults:

*   400 - MalformedPriceRefinementException - Thrown if a price refinement parameter is malformed.

#### Parameters

*   `q` (query, string) The query phrase to search for.  
    Maximum length: 50.
*   `refine` (query, array of string)
    
    Parameter that represents a refinement attribute/value(s) pair. Refinement attribute id and value(s) are separated by '='. Multiple values are supported by a sub-set of refinement attributes and can be provided by separating them using a pipe (URL encoded = "|"). Value ranges can be specified like this: refine=price=(100..500) Multiple refine parameters can be provided by adding an underscore in combination with an integer counter right behind the parameter name and a counter range 1..9. I.e. refine\_1=c\_refinementColor=red|green|blue. The following system refinement attribute ids are supported:
    
    *   cgid: Allows to refine per single category id. Multiple category ids are not supported.
        
    *   price: Allows to refine per single price range. Multiple price ranges are not supported.
        
    *   pmid: Allows to refine per promotion id(s).
        
    *   orderable\_only: Unavailable products will be excluded from the search results if true is set. Multiple refinement values are not supported.
        
*   `sort` (query, string) The id of the sorting option to sort the search hits.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.
*   `locale` (query, string) The locale context.

#### Responses

*   **400** `MalformedPriceRefinementException` - Thrown if a price refinement parameter is malformed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_search_result`.
    

### GET Search Products - Variations

`GET /product_search/variations`

Operation ID: `Search Products - Variations`. Tags: product\_search. Security: client\_id; customers\_auth.

Provides keyword and refinement search functionality for products. Only returns the product id, name and variation information in the product search hit.

This resource does not return detailed information about variation products. Use the products resource to retrieve more details about a variation product.

This endpoint may return the following faults:

*   400 - MalformedPriceRefinementException - Thrown if a price refinement parameter is malformed.

#### Parameters

*   `q` (query, string) The query phrase to search for.  
    Maximum length: 50.
*   `refine` (query, array of string)
    
    Parameter that represents a refinement attribute/value(s) pair. Refinement attribute id and value(s) are separated by '='. Multiple values are supported by a sub-set of refinement attributes and can be provided by separating them using a pipe (URL encoded = "|"). Value ranges can be specified like this: refine=price=(100..500) Multiple refine parameters can be provided by adding an underscore in combination with an integer counter right behind the parameter name and a counter range 1..9. I.e. refine\_1=c\_refinementColor=red|green|blue. The following system refinement attribute ids are supported:
    
    *   cgid: Allows to refine per single category id. Multiple category ids are not supported.
        
    *   price: Allows to refine per single price range. Multiple price ranges are not supported.
        
    *   pmid: Allows to refine per promotion id(s).
        
    *   orderable\_only: Unavailable products will be excluded from the search results if true is set. Multiple refinement values are not supported.
        
*   `sort` (query, string) The id of the sorting option to sort the search hits.
*   `start` (query, integer (int32)) The result set index to return the first instance for. Default value is 0.  
    Minimum: 0.
*   `count` (query, integer (int32)) The maximum number of instances per request. Default value is 25.  
    Minimum: 1. Maximum: 200.
*   `locale` (query, string) The locale context.

#### Responses

*   **400** `MalformedPriceRefinementException` - Thrown if a price refinement parameter is malformed.
    
    Media type: `application/json, text/xml`. Schema: `fault`.
    
*   **default**
    
    Media type: `application/json, text/xml`. Schema: `product_search_result`.
    

## Schemas

### fault

Document representing a fault message that is returned whenever the HTTP status code is greater than or equal to 400 (which indicates an error).

*   `arguments` (_object_)
    
    A map that provides fault arguments.
    
    Data can be used to provide error messages on the client side.
    
    Additional properties: `object`.
    
*   `cause` (_cause_)
*   `display_message_pattern` (_string_) The localized display message pattern, if the request parameter display\_locale was given
*   `message` (_string_) The message text of the java exception.
*   `stack_trace` (_string_)
*   `type` (_string_) The name of the java exception.

### product\_search\_result

Document representing a product search result.

*   `count` (_integer (int32)_) The number of returned documents.
*   `data` (_array of object_)
*   `fetch_date` (_integer (int32)_)
*   `hits` (_array of product\_search\_hit_) The sorted array of search hits. This array can be empty.
*   `next` (_string_) The URL of the next result page.
*   `previous` (_string_) The URL of the previous result page.
*   `query` (_string_) The query String that was searched for.
*   `refinements` (_array of product\_search\_refinement_) The sorted array of search refinements. This array can be empty.
*   `search_phrase_suggestions` (_suggestion_) The suggestion given by the system for the submitted search phrase.
*   `selected_refinements` (_object_) A map of selected refinement attribute id/value(s) pairs. The sorting order is the same as in request URL.
    
    Additional properties: `string`.
    
*   `selected_sorting_option` (_string_) The id of the applied sorting option.
*   `sorting_options` (_array of product\_search\_sorting\_option_) The sorted array of search sorting options. This array can be empty.
*   `start` (_integer (int32)_) The zero-based index of the first search hit to include in the result.  
    Minimum: 0.
*   `total` (_integer (int32)_) The total number of documents.

_Example_

```
{
  "count": 4,
  "hits": [
    {
      "link": "http://example.com/dw/shop/{version}/products/25772717",
      "price": 99,
      "price_per_unit": 99,
      "product_id": "25772717",
      "product_name": "Zerrick",
      "product_type": {
        "master": true
      },
      "unit_measure": "each",
      "unit_quantity": 1
    },
    {
      "link": "http://example.com/dw/shop/{version}/products/25791388",
      "price": 99,
      "price_per_unit": 99,
      "product_id": "25791388",
      "product_name": "Zacco",
      "product_type": {
        "master": true
      },
      "unit_measure": "each",
      "unit_quantity": 1
    },
    {
      "link": "http://example.com/dw/shop/{version}/products/25772792",
      "price": 79,
      "price_per_unit": 79,
      "product_id": "25772792",
      "product_name": "Aylin",
      "product_type": {
        "master": true
      },
      "unit_measure": "each",
      "unit_quantity": 1
    },
    {
      "link": "http://example.com/dw/shop/{version}/products/25772707",
      "price": 89,
      "price_per_unit": 89,
      "product_id": "25772707",
      "product_name": "Bozwell",
      "product_type": {
        "master": true
      },
      "unit_measure": "each",
      "unit_quantity": 1
    }
  ],
  "query": "shoes",
  "refinements": [
    {
      "attribute_id": "cgid",
      "label": "Category",
      "values": [
        {
          "hit_count": 1,
          "label": "New Arrivals",
          "value": "newarrivals"
        },
        {
          "hit_count": 4,
          "label": "Womens",
          "value": "womens",
          "values": [
            {
              "hit_count": 4,
              "label": "Accessories",
              "value": "womens-accessories",
              "values": [
                {
                  "hit_count": 4,
                  "label": "Shoes",
                  "value": "womens-accessories-shoes"
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "attribute_id": "c_refinementColor",
      "label": "Color",
      "values": [
        {
          "hit_count": 1,
          "label": "Beige",
          "presentation_id": "beige",
          "value": "Beige"
        },
        {
          "hit_count": 4,
          "label": "Black",
          "presentation_id": "black",
          "value": "Black"
        },
        {
          "hit_count": 0,
          "label": "Blue",
          "presentation_id": "blue",
          "value": "Blue"
        },
        {
          "hit_count": 0,
          "label": "Navy",
          "presentation_id": "navy",
          "value": "Navy"
        },
        {
          "hit_count": 1,
          "label": "Brown",
          "presentation_id": "brown",
          "value": "Brown"
        },
        {
          "hit_count": 0,
          "label": "Green",
          "presentation_id": "green",
          "value": "Green"
        },
        {
          "hit_count": 1,
          "label": "Grey",
          "presentation_id": "grey",
          "value": "Grey"
        },
        {
          "hit_count": 0,
          "label": "Orange",
          "presentation_id": "orange",
          "value": "Orange"
        },
        {
          "hit_count": 1,
          "label": "Pink",
          "presentation_id": "pink",
          "value": "Pink"
        },
        {
          "hit_count": 0,
          "label": "Purple",
          "presentation_id": "purple",
          "value": "Purple"
        },
        {
          "hit_count": 0,
          "label": "Red",
          "presentation_id": "red",
          "value": "Red"
        },
        {
          "hit_count": 1,
          "label": "White",
          "presentation_id": "white",
          "value": "White"
        },
        {
          "hit_count": 0,
          "label": "Yellow",
          "presentation_id": "yellow",
          "value": "Yellow"
        },
        {
          "hit_count": 0,
          "label": "Miscellaneous",
          "presentation_id": "miscellaneous",
          "value": "Miscellaneous"
        }
      ]
    },
    {
      "attribute_id": "c_isNew",
      "label": "New Arrival"
    },
    {
      "attribute_id": "c_size",
      "label": "Size",
      "values": [
        {
          "hit_count": 0,
          "label": "OS",
          "value": "OS"
        },
        {
          "hit_count": 4,
          "label": "6",
          "value": "6"
        },
        {
          "hit_count": 4,
          "label": "6.5",
          "value": "6.5"
        },
        {
          "hit_count": 4,
          "label": "7",
          "value": "7"
        },
        {
          "hit_count": 4,
          "label": "7.5",
          "value": "7.5"
        },
        {
          "hit_count": 4,
          "label": "8",
          "value": "8"
        },
        {
          "hit_count": 3,
          "label": "8.5",
          "value": "8.5"
        },
        {
          "hit_count": 3,
          "label": "9",
          "value": "9"
        },
        {
          "hit_count": 4,
          "label": "9.5",
          "value": "9.5"
        },
        {
          "hit_count": 3,
          "label": "10",
          "value": "10"
        },
        {
          "hit_count": 1,
          "label": "11",
          "value": "11"
        }
      ]
    },
    {
      "attribute_id": "price",
      "label": "Price",
      "values": [
        {
          "hit_count": 4,
          "label": "$50 - $17.89",
          "value": "(50..100)"
        }
      ]
    }
  ],
  "search_phrase_suggestions": {
    "suggested_phrases": [
      {
        "exact_match": true,
        "phrase": "shoes"
      }
    ],
    "suggested_terms": [
      {
        "original_term": "shoes",
        "terms": [
          {
            "completed": false,
            "corrected": false,
            "exact_match": true,
            "value": "shoes"
          }
        ]
      }
    ]
  },
  "selected_refinements": {
    "cgid": "womens",
    "price": "(0..500)",
    "c_refinementColor": "Black"
  },
  "selected_sorting_option": "top-sellers",
  "sorting_options": [
    {
      "id": "best-matches",
      "label": "Best Matches"
    },
    {
      "id": "price-low-to-high",
      "label": "Price Low To High"
    },
    {
      "id": "price-high-to-low",
      "label": "Price High to Low"
    },
    {
      "id": "product-name-ascending",
      "label": "Product Name A - Z"
    },
    {
      "id": "product-name-descending",
      "label": "Product Name Z - A"
    },
    {
      "id": "brand",
      "label": "Brand"
    },
    {
      "id": "most-popular",
      "label": "Most Popular"
    },
    {
      "id": "top-sellers",
      "label": "Top Sellers"
    }
  ],
  "start": 0,
  "total": 4
}
```

### cause

*   `cause` (_cause_)
*   `message` (_string_)
*   `type` (_string_)

### product\_search\_hit

Document representing a product search hit.

*   `currency` (_string_) The ISO 4217 mnemonic code of the currency.
*   `hit_type` (_string_) The type information for the search hit.
*   `image` (_image_) The first image of the product hit for the configured viewtype.
*   `link` (_string_) The URL addressing the product.
*   `orderable` (_boolean_) A flag indicating whether the product is orderable.
*   `price` (_number (double)_) The sales price of the product. In case of complex products like master or set this is the minimum price of related child products.
*   `price_max` (_number (double)_) The maximum sales of related child products in case of complex products like master or set.
*   `price_per_unit` (_number (double)_) The sales price per unit of the product. In case of complex products like master or set this is the minimum price per unit of related child products.
*   `price_per_unit_max` (_number (double)_) The maximum sales price per unit of related child products in case of complex products like master or set.
*   `prices` (_object_) The prices map with price book ids and their values.
    
    Additional properties: `number (double)`.
    
*   `product_id` (_string_) The id (SKU) of the product.
*   `product_name` (_string_) The localized name of the product.
*   `product_type` (_product\_type_) The type information for the product.
*   `represented_product` (_product\_ref_) The first represented product.
*   `represented_products` (_array of product\_ref_) All the represented products.
*   `variation_attributes` (_array of variation\_attribute_) The array of represented variation attributes (for the master product only). This array can be empty.

_Example_

```
{
  "link": "http://example.com/dw/shop/{version}/products/25791388?pretty_print=true",
  "product_id": "25791388",
  "product_name": "Zacco",
  "product_type": {
    "item": true
  },
  "represented_product": {
    "id": "25791388",
    "link": "http://example.com/dw/shop/{version}/products/25791388?pretty_print=true"
  },
  "represented_products": [
    {
      "id": "25791388",
      "link": "http://example.com/dw/shop/{version}/products/25791388?pretty_print=true"
    },
    {
      "id": "25772717",
      "link": "http://example.com/dw/shop/{version}/products/25772717?pretty_print=true"
    },
    {
      "id": "25772792",
      "link": "http://example.com/dw/shop/{version}/products/25772792?pretty_print=true"
    },
    {
      "id": "25772707",
      "link": "http://example.com/dw/shop/{version}/products/25772707?pretty_print=true"
    }
  ]
}
```

### product\_search\_refinement

Document representing a product search refinement attribute.

*   `attribute_id` (_string_, required) The id of the search refinement attribute. In the case of an attribute refinement, this is the attribute id. Custom attributes are marked by the prefix "c\_" (for example, "c\_refinementColor"). In the case of a category refinement, the id must be "cgid". In the case of a price refinement, the id must be "price".
*   `label` (_string_) The localized label of the refinement.
*   `values` (_array of product\_search\_refinement\_value_) The sorted array of refinement values. This array can be empty.

### suggestion

Document representing a suggestion.

*   `brands` (_array of string_) The sorted list of suggested brands. This list can be empty.
*   `categories` (_array of suggested\_category_) The sorted list of suggested categories. This list can be empty.
*   `content` (_array of suggested\_content_) The sorted list of suggested content. This list can be empty.
*   `custom_suggestions` (_array of string_) The sorted list of suggested custom suggestions. This list can be empty.
*   `products` (_array of suggested\_product_) The sorted list of suggested products. This list can be empty.
*   `suggested_phrases` (_array of suggested\_phrase_) A list of suggested phrases. This list can be empty.
*   `suggested_terms` (_array of suggested\_terms_) A list of suggested terms. This list can be empty.

_Example_

```
{
  "categories": [
    {
      "id": "mens-clothing-dress-shirts",
      "link": "http://example.com/dw/shop/{version}/categories/mens-clothing-dress-shirts?count=1&q=shi&currency=EUR",
      "name": "Dress Shirts",
      "parent_category_name": "Clothing"
    }
  ],
  "suggested_phrases": [
    {
      "exact_match": false,
      "phrase": "Dress Shirts"
    }
  ],
  "suggested_terms": [
    {
      "original_term": "shi",
      "terms": [
        {
          "completed": true,
          "corrected": false,
          "exact_match": false,
          "value": "shirts"
        }
      ]
    }
  ]
}
```

### product\_search\_sorting\_option

Document representing a product search sorting option.

*   `id` (_string_) The id of the sorting option.
*   `label` (_string_) The localized label of the sorting option.

### image

Document representing a product image.

*   `alt` (_string_) The localized alternative text of the image.
*   `dis_base_link` (_string_) Base URL for dynamic image service address. This is only shown, if the image is stored on the server and DIS is enabled.
*   `link` (_string_, required) The URL of the actual image.  
    Minimum length: 1.
*   `title` (_string_) The localized title of the image.

_Example_

```
{
  "alt": "ALT main swatch",
  "link": "https://example.com/foo/bar/main_swatch.jpg",
  "title": "TITLE main swatch"
}
```

### product\_type

Document representing a product type.

*   `bundle` (_boolean_) A flag indicating whether the product is a bundle.
*   `item` (_boolean_) A flag indicating whether the product is a standard item.
*   `master` (_boolean_) A flag indicating whether the product is a master.
*   `option` (_boolean_) A flag indicating whether the product is an option.
*   `set` (_boolean_) A flag indicating whether the product is a set.
*   `variant` (_boolean_) A flag indicating whether the product is a variant.
*   `variation_group` (_boolean_) A flag indicating whether the product is a variation group.

_Example_

```
{
  "item": true
}
```

### product\_ref

Document representing a product reference.

*   `id` (_string_, required) The ID of the product reference.
*   `link` (_string_, required) The link to the product reference.  
    Maximum length: 100.

_Example_

```
{
  "id": "25791388",
  "link": "http://example.com/dw/shop/{version}/products/25791388?pretty_print=true"
}
```

### variation\_attribute

Document representing a variation attribute.

*   `id` (_string_, required) The id of the variation attribute.  
    Minimum length: 1.
*   `name` (_string_) The localized display name of the variation attribute.
*   `values` (_array of variation\_attribute\_value_) The sorted array of variation values. This array can be empty.

_Example_

```
{
  "id": "memorySize",
  "name": "Memory Size",
  "values": [
    {
      "name": "1 GB",
      "value": "1 GB"
    },
    {
      "name": "2 GB",
      "value": "2 GB"
    },
    {
      "name": "8 GB",
      "value": "8 GB"
    },
    {
      "name": "16 GB",
      "value": "16 GB"
    },
    {
      "name": "32 GB",
      "value": "32 GB"
    },
    {
      "name": "120 GB",
      "value": "120 GB"
    }
  ]
}
```

### product\_search\_refinement\_value

Document representing a product search refinement value.

*   `description` (_string_) The localized description of the refinement value.
*   `hit_count` (_integer (int32)_) The number of search hits when selecting the refinement value. Can be 0.
*   `label` (_string_) The localized label of the refinement value.
*   `presentation_id` (_string_) The optional presentation id associated with the refinement value. The presentation id can be used, for example, to associate an id with an HTML widget.
*   `value` (_string_) The refinement value. In the case of an attribute refinement, this is the bucket, the attribute value, or a value range. In the case of a category refinement, this is the category id. In the case of a price refinement,k this is the price range. Ranges are enclosed by parentheses and separated by ".."; for example, "(100..999)" and "(Aa..Fa)" are valid ranges.
*   `values` (_array of product\_search\_refinement\_value_) The array of hierarchical refinement values. This array can be empty.

### suggested\_category

*   `id` (_string_) The id of the category.
*   `link` (_string_) The URL addressing the category.
*   `name` (_string_) The localized name of the category.
*   `parent_category_name` (_string_) The name of the parent category.

### suggested\_content

*   `id` (_string_) The id of the content.
*   `link` (_string_) The URL addressing the content.
*   `name` (_string_) The localized name of the content.

### suggested\_product

Document representing a product search hit.

*   `currency` (_string_) The ISO 4217 mnemonic code of the currency.
*   `image` (_image_) The first image of the product hit for the configured viewtype.
*   `link` (_string_) The URL addressing the product.
*   `price` (_number (double)_) The sales price of the product. In the case of complex products like a master or a set, this is the minimum price of related child products.
*   `product_id` (_string_) The id (SKU) of the product.
*   `product_name` (_string_) The localized name of the product.

### suggested\_phrase

Document representing a suggested search phrase.

*   `exact_match` (_boolean_) Returns whether this suggested phrase exactly matches the user input search phrase.
*   `phrase` (_string_) Returns the suggested search phrase.

_Example_

```
{
  "exact_match": false,
  "phrase": "Sega"
}
```

### suggested\_terms

Document representing a list of suggested terms for each term of a search phrase.

*   `original_term` (_string_) Returns the original term that the suggested terms relates to.
*   `terms` (_array of suggested\_term_) Returns the suggested terms.

_Example_

```
{
  "original_term": "shi",
  "terms": [
    {
      "completed": false,
      "corrected": true,
      "exact_match": false,
      "value": "sega"
    }
  ]
}
```

### variation\_attribute\_value

Document representing a variation attribute value.

*   `description` (_string_) The localized description of the variation value.
*   `image` (_image_) The first product image for the configured viewtype and this variation value.
*   `image_swatch` (_image_) The first product image for the configured viewtype and this variation value. (typically the swatch image)
*   `name` (_string_) The localized display name of the variation value.
*   `orderable` (_boolean_) A flag indicating whether at least one variant with this variation attribute value is available to sell.
*   `value` (_string_, required) The actual variation value.  
    Minimum length: 1.

### suggested\_term

Document representing a suggested term.

*   `completed` (_boolean_) Returns whether this term value is a completion match.
*   `corrected` (_boolean_) Returns whether this term value is a correction match.
*   `exact_match` (_boolean_) Returns whether this term value is a exact match.
*   `value` (_string_) Returns the term value.

_Example_

```
{
  "completed": false,
  "corrected": true,
  "exact_match": false,
  "value": "sega"
}
```