The store locator data is stored in the location repository, /atg/commerce/locations/LocationRepository. The indexing process is configured through the /atg/commerce/search/StoreLocationOutputConfig component and other related components. These components are configured to create Endeca data, dimension value, and schema records, which are submitted to Oracle Endeca Commerce for indexing.

The XML definition file of the StoreLocationOutputConfig component in Commerce Reference Store looks like this:

<item item-descriptor-name="location" is-document="true">

  <title property-name="locationId"/>
  <properties>
    <property name="$docId" type="string" output-name="record.spec"/>
    <property name="$repositoryId" type="string" output-name="store.repositoryId"
      filter="unique"/>
    <property name="store.type" is-dimension="true" default-value="store"
      type="string" property-accessor="null" is-non-repository-property="true"/>
    <property name="name" type="string" output-name="store.name"/>
    <property name="city" is-dimension="true" type="string"
      output-name="store.city"/>
    <property name="stateAddress" is-dimension="true" type="string"
      output-name="store.state" text-searchable="true"/>
    <property name="geocode" type="geocode" output-name="store.geocode"/>
  </properties>

  <item property-name="sites">
    <properties>
      <property name="id" is-dimension="true" type="string"
        output-name="store.siteId"/>
      <property name="$itemDescriptor.itemDescriptorName" suppress="true"/>
      <property name="$repository.repositoryName" suppress="true"/>
      <property name="$repositoryId" suppress="true"/>
    </properties>
  </item>
</item>

The store.city, store.state, store.type, and store.siteId output properties are specified as Endeca dimensions, so they can be used for filtering in the store locator. In addition, the store.geocode output property, while not actually a dimension, is used in the store locator to enable selection of stores based on distance from the customer.

In addition to the StoreLocationOutputConfig, the indexing components associated with the location repository include:

Commerce Reference Store also configures the /atg/commerce/endeca/index/ProductCatalogSimpleIndexingAdmin component to invoke these components when an indexing job is triggered, along with the components for indexing the product catalog. See the ATG-Endeca Integration Guide for more information about the indexing classes and components.

The following example shows a record generated for a store in the location repository:

<RECORD>
  <PROP NAME="record.spec">
    <PVAL>
      store-CRSStore-Encino104
    </PVAL>
  </PROP>
  <PROP NAME="store.repositoryId">
    <PVAL>
      CRSStore-Encino104
    </PVAL>
  </PROP>
  <PROP NAME="store.type">
    <PVAL>
      store
    </PVAL>
  </PROP>
  <PROP NAME="store.name">
    <PVAL>
      CRS Store - Encino #104
    </PVAL>
  </PROP>
  <PROP NAME="store.city">
    <PVAL>
      Encino
    </PVAL>
  </PROP>
  <PROP NAME="store.state">
    <PVAL>
      CA
    </PVAL>
  </PROP>
  <PROP NAME="store.geocode">
    <PVAL>
      34.1548005,-118.4765695
    </PVAL>
  </PROP>
  <PROP NAME="url">
    <PVAL>
      atgrep:/LocationRepository/store/CRSStore-Encino104
    </PVAL>
  </PROP>
  <PROP NAME="baseUrl">
    <PVAL>
      atgrep:/LocationRepository/store/CRSStore-Encino104
    </PVAL>
  </PROP>
  <PROP NAME="repositoryName">
    <PVAL>
      LocationRepository
    </PVAL>
  </PROP>
  <PROP NAME="type">
    <PVAL>
      store
    </PVAL>
  </PROP>
  <PROP NAME="store.siteId">
    <PVAL>
      storeSiteUS
    </PVAL>
  </PROP>
</RECORD>

Copyright © 1997, 2014 Oracle and/or its affiliates. All rights reserved. Legal Notices