---
  host: "localhost"
  basePath: "/wcs/resources"
  schemes: 
    - "https"
  swagger: "2.0"
  info: 
    version: "WC.TOOLKIT Enterprise Version : 9 Fix Pack : 0"
    title: "WebSphere Commerce V9 - Location Based Services API"
    description: "These services provide classes related to locational data, including the store locator feature. In a B2C store, shoppers use the the store locator feature to locate a nearby store, where a list of nearby stores is given based on the the location entered by the shopper. In a B2B store, the store locator displays countries that stores are located in."
  tags: 
    - 
      name: "country"
      description: "This class provides RESTful services to get countries or regions and states or provinces information."
    - 
      name: "storelocator"
      description: "This class provides RESTful services to get store locator details. It performs the service by delegating to the PhysicalStore and GeoNode BOD services."
    - 
      name: "geonode"
      description: "This class provides RESTful services to get geo node details. It performs the service by delegating to the GeoNode BOD service."
  paths: 
    /store/{storeId}/country/country_state_name: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateName"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            enum: 
              - "IBM_countryStateName"
            name: "profileName"
            required: false
            in: "query"
            type: "string"
            description: "Profile name. Profiles determine the subset of data to be returned by a query.  Default profile name = IBM_countryStateName"
          - 
            required: false
            type: "string"
            description: "The country or region abbreviation code"
            in: "query"
            name: "countryCode"
          - 
            required: false
            type: "string"
            description: "The state or province abbreviation code."
            in: "query"
            name: "stateCode"
        tags: 
          - "country"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Retrieve the display name of a country and/or a state."
        operationId: "findCountryStateName"
    /store/{storeId}/storelocator/latitude/{latitude}/longitude/{longitude}: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/storelocator-storelocator"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            required: true
            type: "string"
            description: "The latitude."
            in: "path"
            name: "latitude"
          - 
            required: true
            type: "string"
            description: "The longitude."
            in: "path"
            name: "longitude"
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
          - 
            required: false
            type: "string"
            description: "The maximum number of stores to return."
            in: "query"
            name: "maxItems"
          - 
            required: false
            type: "string"
            description: "The radius unit of measure."
            in: "query"
            name: "radiusUOM"
          - 
            required: false
            type: "string"
            description: "The physcal store attribute name that describes whether the store is a beauty center."
            in: "query"
            name: "BeautyCenter"
          - 
            required: false
            type: "string"
            description: "The physical store attribute name to describe the type of the store."
            in: "query"
            name: "Type"
          - 
            required: false
            type: "string"
            description: "The radius."
            in: "query"
            name: "radius"
          - 
            enum: 
              - "true"
              - "false"
            name: "siteLevelStoreSearch"
            required: false
            in: "query"
            type: "string"
            description: "If it is 'true', a site level physical search will be performed.  Otherwise, the physical store search will be performed at the web store level. By default, it is 'true'."
        tags: 
          - "storelocator"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets store location information by specified coordinates."
        operationId: "findStores"
    /store/{storeId}/storelocator/byStoreIds: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/storelocator-storelocator"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            description: "A list of physical store unique identifiers."
            items: 
              type: "string"
            required: true
            in: "query"
            type: "array"
            name: "physicalStoreId"
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
          - 
            description: "Page number, starting at 1. Valid values include positive integers of 1 and above. The \"pageSize\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageNumber"
          - 
            description: "Page size. Used to limit the amount of data returned by a query. Valid values include positive integers of 1 and above. The \"pageNumber\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageSize"
        tags: 
          - "storelocator"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets store location information by one to n store unique IDs."
        operationId: "findByStoreUniqueIds"
    /store/{storeId}/storelocator/byGeoNode/{geoId}: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/storelocator-storelocator"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            required: true
            type: "string"
            description: "The geo node unique identifier."
            in: "path"
            name: "geoId"
          - 
            description: "Page number, starting at 1. Valid values include positive integers of 1 and above. The \"pageSize\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageNumber"
          - 
            description: "Page size. Used to limit the amount of data returned by a query. Valid values include positive integers of 1 and above. The \"pageNumber\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageSize"
          - 
            required: false
            type: "string"
            description: "The physcal store attribute name that describes whether the store is a beauty center."
            in: "query"
            name: "BeautyCenter"
          - 
            required: false
            type: "string"
            description: "The physical store attribute name to describe the type of the store."
            in: "query"
            name: "Type"
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
          - 
            enum: 
              - "true"
              - "false"
            name: "siteLevelStoreSearch"
            required: false
            in: "query"
            type: "string"
            description: "If it is 'true', a site level physical search will be performed.  Otherwise, the physical store search will be performed at the web store level. By default, it is 'true'."
        tags: 
          - "storelocator"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets store location information by a geo node unique ID."
        operationId: "findGeoNodeByGeoId"
    /store/{storeId}/country/country_state_list: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateList_Summary"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            enum: 
              - "IBM_countryStateList_Summary"
            name: "profileName"
            required: false
            in: "query"
            type: "string"
            description: "Profile name. Profiles determine the subset of data to be returned by a query.  Default profile name = IBM_countryStateList_Summary"
          - 
            required: false
            type: "string"
            description: "The country or region abbreviation code"
            in: "query"
            name: "countryCode"
        tags: 
          - "country"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Retrieve a list of countries/region and corresponding states/provinces."
        operationId: "findCountryStateList"
    /store/{storeId}/geonode/byParentGeoNode/{parentgeoid}: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/geonode-geonode"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            required: true
            type: "string"
            description: "The parent geo node identifier."
            in: "path"
            name: "parentgeoid"
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
        tags: 
          - "geonode"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets the geo nodes by the parent geo node unique ID."
        operationId: "findGeoByParentGeoId"
        description: "The response schema will flatten the result if a single object is returned in the list."
    /store/{storeId}/geonode: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/Empty"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            enum: 
              - "byGeoNodeTypeAndName"
            name: "q"
            required: true
            in: "query"
            type: "string"
            description: "The query name."
        tags: 
          - "geonode"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Find geo nodes based on query name. See each query for details on input and output."
        operationId: "findByQuery"
    /store/{storeId}/storelocator/byStoreId/{uniqueId}: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/storelocator-storelocator"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            required: true
            type: "string"
            description: "The unique identifier."
            in: "path"
            name: "uniqueId"
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
          - 
            description: "Page number, starting at 1. Valid values include positive integers of 1 and above. The \"pageSize\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageNumber"
          - 
            description: "Page size. Used to limit the amount of data returned by a query. Valid values include positive integers of 1 and above. The \"pageNumber\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageSize"
        tags: 
          - "storelocator"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets store location information by a store unique ID."
        operationId: "findByStoreUniqueId"
    /store/{storeId}/storelocator/byLocation: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/storelocator-storelocator"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          404: 
            description: "No physical store is found for the criteria provided."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
          - 
            required: false
            type: "string"
            description: "The city."
            in: "query"
            name: "city"
          - 
            required: false
            type: "string"
            description: "The state."
            in: "query"
            name: "state"
          - 
            required: false
            type: "string"
            description: "The province."
            in: "query"
            name: "prov"
          - 
            required: false
            type: "string"
            description: "The country."
            in: "query"
            name: "country"
          - 
            required: false
            type: "string"
            description: "The radius unit of measure."
            in: "query"
            name: "radiusUOM"
          - 
            required: false
            type: "string"
            description: "The physcal store attribute name that describes whether the store is a beauty center."
            in: "query"
            name: "BeautyCenter"
          - 
            required: false
            type: "string"
            description: "The physical store attribute name to describe the type of the store."
            in: "query"
            name: "Type"
          - 
            required: false
            type: "string"
            description: "The radius."
            in: "query"
            name: "radius"
          - 
            description: "Page number, starting at 1. Valid values include positive integers of 1 and above. The \"pageSize\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageNumber"
          - 
            description: "Page size. Used to limit the amount of data returned by a query. Valid values include positive integers of 1 and above. The \"pageNumber\" must be specified for paging to work."
            format: "int32"
            required: false
            in: "query"
            type: "integer"
            name: "pageSize"
          - 
            enum: 
              - "true"
              - "false"
            name: "siteLevelStoreSearch"
            required: false
            in: "query"
            type: "string"
            description: "If it is 'true', a site level physical search will be performed.  Otherwise, the physical store search will be performed at the web store level. By default, it is 'true'."
        tags: 
          - "storelocator"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets store location information by a specified location."
        operationId: "findGeoNodeByGeoLocation"
    /store/{storeId}/geonode/byTopGeoNode: 
      get: 
        responses: 
          200: 
            description: "The requested completed successfully."
            schema: 
              $ref: "#/definitions/geonode-geonode"
          400: 
            description: "Bad request. Some of the inputs provided to the request aren't valid."
          401: 
            description: "Not authenticated. The user session isn't valid."
          403: 
            description: "The user isn't authorized to perform the specified request."
          500: 
            description: "Internal server error. Additional details will be contained on the server logs."
        parameters: 
          - 
            enum: 
              - "0"
              - "10001"
              - "10501"
              - "11001"
              - "1"
              - "11501"
              - "2"
            name: "storeId"
            required: true
            in: "path"
            type: "string"
            description: "The store identifier."
          - 
            enum: 
              - "xml"
              - "json"
            name: "responseFormat"
            required: false
            in: "query"
            type: "string"
            description: "The response format. If the request has an input body, that body must also use the format specified in \"responseFormat\". Valid values include \"json\" and \"xml\" without the quotes. If the responseFormat isn't specified, the \"accept\" HTTP header shall be used to determine the format of the response. If the \"accept\" HTTP header isn't specified as well, the default response format shall be in json."
        tags: 
          - "geonode"
        produces: 
          - "application/json"
          - "application/xml"
          - "application/xhtml+xml"
          - "application/atom+xml"
        summary: "Gets the top geo nodes for the site."
        operationId: "findTopGeoNodes"
        description: "The response schema will flatten the result if a single object is returned in the list."
  definitions: 
    storelocator-storelocator_item.Attribute: 
      properties: 
        displayValue: 
          type: "string"
        displayName: 
          type: "string"
        name: 
          type: "string"
        value: 
          type: "string"
    storelocator-storelocator_item.userDataField: 
      required: 
        - "key"
      properties: 
        value: 
          type: "string"
        key: 
          type: "string"
    storelocator-storelocator: 
      properties: 
        recordSetCount: 
          type: "string"
          format: "int64"
        recordSetComplete: 
          type: "string"
        recordSetTotal: 
          type: "string"
          format: "int64"
        recordSetStartNumber: 
          type: "string"
          format: "int64"
        PhysicalStore: 
          items: 
            $ref: "#/definitions/storelocator-storelocator_item"
          type: "array"
    com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateList_Summary: 
      properties: 
        countryCodeStates: 
          items: 
            $ref: "#/definitions/com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateList_Summary.countryCodeStates"
          type: "array"
        countries: 
          $ref: "#/definitions/com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateList_Summary.countries"
    com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateList_Summary.countryCodeStates: 
      properties: 
        code: 
          type: "string"
        displayName: 
          type: "string"
    geonode-geonode_item.userDataField: 
      required: 
        - "key"
      properties: 
        value: 
          type: "string"
        key: 
          type: "string"
    geonode-geonode: 
      properties: 
        GeoNode: 
          items: 
            $ref: "#/definitions/geonode-geonode_item"
          type: "array"
        recordSetComplete: 
          type: "string"
        recordSetStartNumber: 
          type: "string"
          format: "int64"
        recordSetCount: 
          type: "string"
          format: "int64"
        recordSetTotal: 
          type: "string"
          format: "int64"
    com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateName: 
      properties: 
        stateDisplayName: 
          type: "string"
        countryDisplayName: 
          type: "string"
    geonode-geonode_item: 
      properties: 
        userDataField: 
          items: 
            $ref: "#/definitions/geonode-geonode_item.userDataField"
          type: "array"
        type: 
          type: "string"
        Description: 
          items: 
            $ref: "#/definitions/geonode-geonode_item.Description"
          type: "array"
        uniqueID: 
          type: "string"
        name: 
          type: "string"
    geonode-geonode_item.Description: 
      properties: 
        shortDescription: 
          type: "string"
    com.ibm.commerce.user.beans.CountryStateListDataBean_IBM_countryStateList_Summary.countries: {}
    storelocator-storelocator_item: 
      required: 
        - "telephone1"
      properties: 
        distance: 
          type: "string"
          format: "double"
        Description: 
          items: 
            $ref: "#/definitions/storelocator-storelocator_item.Description"
          type: "array"
        telephone1: 
          type: "string"
        city: 
          type: "string"
        Attribute: 
          items: 
            $ref: "#/definitions/storelocator-storelocator_item.Attribute"
          type: "array"
        storeName: 
          type: "string"
        longitude: 
          type: "string"
          format: "double"
        postalCode: 
          type: "string"
        stateOrProvinceName: 
          type: "string"
        uniqueID: 
          type: "string"
        country: 
          type: "string"
        latitude: 
          type: "string"
          format: "double"
        userDataField: 
          items: 
            $ref: "#/definitions/storelocator-storelocator_item.userDataField"
          type: "array"
        addressLine: 
          items: 
            type: "string"
          type: "array"
    storelocator-storelocator_item.Description: 
      properties: 
        displayStoreName: 
          type: "string"
        thumbnail: 
          type: "string"
        fullImage: 
          type: "string"
    Empty: 
      description: "Empty model. Used as default value when no model is specified."

