Product Association Feed Details

The Product Association Feed Integration serves as the automated mechanism through which Digital River adds, modifies, and deletes product associations in an Association Group.

The following list describes when you cannot create an association.

  • The owning product is not deployed. You can only create associations (via the feed) when the owning product is in a deployed state.
  • The associated product is not deployed. You cannot create an association group when the product you want to associate with the owning product is not deployed.

    Note:

    If you create an association group that also includes deployed products in the association, the created association group will not include the undeployed products. The locale of the owning product in the feed is not a valid locale for that product.

  • The locale of the owning product in the feed is not a valid locale for that product.

The following table describes the request and response types for exporting and importing product association details.

Task
Request Type
Response Type
View the existing product association details by exporting the product association details
ProductAssociationFeedExportRequest
ProductAssociationFeedExportResponse
Import product association details by adding, modifying or removing the product association details
ProductAssociationFeedImportRequest
ProductAssociationFeedImportResponse

Association Type

A Product Association Type defines the behavior for a product association of that type. Behavior defined by the type includes but may not be limited to the following:

  • Enforcement of cardinality between parent and child products; for example, one-to-one (1:1)  or one-to-many (1:M).
  • State-dependent behavior, including whether the association may be displayed on a shopper site, whether products can be added to the association, and whether the association name may be modified.
  • State transition rules.

Category (Product Association Type Category)

Each Product Association Type is associated with a collection of one or more Categories specific to that type. The Categories are company-specific and must be created prior to creation of specific Product Associations. Examples of Categories that might be created for a Related Items Type include "Related Trial Ware" and "Related Products".

Each Category appears as a separate panel or container in an admin interface. Associations of that Type and Category will be managed entirely within that panel.

Also, the Product Association Type and Category combine to allow site designers to display certain association Groups at certain locations on the shopper site. See Product Association Tag for more information.

Association Group

A Product Association Group defines a relationship between a single Parent Product and a collection of Child Products. The Group links the Parent Product with the Child Products. In addition, the Group inherits behavior defined by the Product Association Type, and to a lesser extent by the Category within that type. Groups can be sorted within a Category.

Group Name

You can give the Product Association Group a localized Group Name. When you create a localized Group Name you must:

  • Associate each Group Name with a specific Locale. 
  • Define one Group Name as the default. 

You can add additional Group Names for other locales. A Client may ask for the name of a Group by Locale. If a localized name matches the Locale in the request, that name is provided; otherwise, the default name is provided. Group Name may be optional for some Product Association Types.

Parent Product

The Parent Product is the Key Product in an Association Group. The Parent Product drives maintenance and display of Product Associations. You cannot remove Parent Product from a Group.

Associated Product (Child Product)

A Group contains a collection of Associated Products with relative sort order. You can add or remove Associated Products from a Group, providing the group's state allows it.

Product Association Tag

The Product Association Tag is a display API that provides Product Association Group information that you can use in shopper side views.

Product Association Feed Real-time Scenario

You can send a productAssociationFeedImportRequest and productAssociationFeedImportResponse expect a  in real time.

Product Association Feed Asynchronous Scenario

You can send a productAssociationFeedImportRequest and expect a productAssociationFeedImportResponse at a later point.

Adding Associated Product and Associations Request Example

<ProductAssociationFeedImportRequest xmlns="http://integration.digitalriver.com/ProductAssociationFeed">
  <companyID>mycompany</companyID>
  <reportingLevel>all</reportingLevel>
  <lenientCommit>true</lenientCommit>
  <productAssociation>
    <action>add</action>
    <associationInfo>
      <categoryName>Related Products</categoryName>
      <parentProduct>
        <externalReferenceID>111111</externalReferenceID>
        <companyID>mycompany</companyID>
        <locale>en_US</locale>
      </parentProduct>
    </associationInfo>
    <groupData>
      <groupDataInfo>
        <groupName>Inkjet Ink/Print Cartridge</groupName>
        <locale>en_US</locale>
        <isDefault>1</isDefault>
      </groupDataInfo>
    </groupData>
    <associatedProduct>
      <action>add</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>222222</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>1</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
    <associatedProduct>
      <action>add</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>333333</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>2</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
  </productAssociation>
</ProductAssociationFeedImportRequest>

Adding Associated Product and Associations Response Example

The following example shows the response for every request related to adding a product association:

<?xml version="1.0" encoding="utf-8"?>
<ProductAssociationFeedImportResponse xmlns="http://integration.digitalriver.com/ProductAssociationFeed">
	<companyID>mycompany</companyID>
	<importResult>
		<actionResult>
			<action>add
		<action>
			<resultCode>1
		</resultCode>
			<message>Product Association created.
		</message>
		</actionResult>
		<associationInfo>
			<categoryName>Related Products</categoryName>
			<parentProduct>
				<externalReferenceID>111111</externalReferenceID>
				<companyID>mycompany</companyID>
				<locale>en_US</locale>
			</parentProduct>
		</associationInfo>
		<groupData>
			<groupDataInfo>
				<groupName>Inkjet Ink/Print Cartridge</groupName>
				<locale>en_US</locale>
				<isDefault>1</isDefault>
			</groupDataInfo>
		</groupData>
		<associatedProduct>
			<action>add</action>
			<associatedProductInfo>
				<productKey>
					<externalReferenceID>222222</externalReferenceID>
					<companyID>mycompany</companyID>
					<locale>en_US</locale>
				</productKey>
				<sortOrder>1</sortOrder>
			</associatedProductInfo>
		</associatedProduct>
	</importResult>
</ProductAssociationFeedImportResponse>

Modifying Associated Product and Associations Request Example

<?xml version="1.0" encoding="utf-8"?>
<ProductAssociationFeedImportRequest xmlns="http://integration.digitalriver.com/ProductAssociationFeed">
  <companyID>mycompany</companyID>
  <reportingLevel>all</reportingLevel>
  <lenientCommit>true</lenientCommit>
  <productAssociation>
    <action>update</action>
    <associationInfo>
      <associationID>12345</associationID>
      <categoryName>Related Products</categoryName>
      <parentProduct>
        <externalReferenceID>111111</externalReferenceID>
        <companyID>mycompany</companyID>
        <locale>en_US</locale>
      </parentProduct>
    </associationInfo>
	<groupData>
      <groupDataInfo>
        <groupName>Inkjet Ink/Print Cartridge</groupName>
        <locale>en_US</locale>
        <isDefault>1</isDefault>
      </groupDataInfo>
    </groupData>
	<associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>222222</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>1</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
    <associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>333333</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>2</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
  </productAssociation>
</ProductAssociationFeedImportRequest>

Modifying Associated Product and Associations Response Example

The following example shows the response for every request related to modifying a product association:

<?xml version="1.0" encoding="utf-8"?>
<ProductAssociationFeedImportResponse xmlns="http://integration.digitalriver.com/ProductAssociationFeed">
	<companyID>mycompany</companyID>
	<importResult>
		<actionResult>
			<action>update
		<action>
			<resultCode>1
		</resultCode>
			<message>Product Association updated
		</message>
		</actionResult>
		 <associationInfo>
      <associationID>12345</associationID>
      <categoryName>Related Products</categoryName>
      <parentProduct>
        <externalReferenceID>111111</externalReferenceID>
        <companyID>mycompany</companyID>
        <locale>en_US</locale>
      </parentProduct>
    </associationInfo>
	<groupData>
      <groupDataInfo>
        <groupName>Inkjet Ink/Print Cartridge</groupName>
        <locale>en_US</locale>
        <isDefault>1</isDefault>
      </groupDataInfo>
    </groupData>
	<associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>222222</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>1</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
    <associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>333333</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>2</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
	</importResult>
</ProductAssociationFeedImportResponse>

Deleting Associated Product and Associations Request Example

<?xml version="1.0" encoding="utf-8"?>
<ProductAssociationFeedImportRequest xmlns="http://integration.digitalriver.com/ProductAssociationFeed">
	<companyID>mycompany</companyID>
	<reportingLevel>all</reportingLevel>
	<lenientCommit>true</lenientCommit>
	<productAssociation>
		<action>delete</action>
		<associationInfo>
			<associationID>12345</associationID>
			<categoryName>Related Products</categoryName>
			<parentProduct>
				<externalReferenceID>111111</externalReferenceID>
				<companyID>mycompany</companyID>
				<locale>en_US</locale>
			</parentProduct>
		</associationInfo>
		<groupData>
      <groupDataInfo>
        <groupName>Inkjet Ink/Print Cartridge</groupName>
        <locale>en_US</locale>
        <isDefault>1</isDefault>
      </groupDataInfo>
    </groupData>
	<associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>222222</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>1</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
	</productAssociation>
</ProductAssociationFeedImportRequest>

Deleting Associated Product and Associations Response Example

The following example shows the response for every request related to deleting a product association:

<?xml version="1.0" encoding="utf-8"?>
<ProductAssociationFeedImportResponse xmlns="http://integration.digitalriver.com/ProductAssociationFeed">
	<companyID>mycompany</companyID>
	<importResult>
		<actionResult>
			<action>delete
		<action>
			<resultCode>1
		</resultCode>
			<message>Product Association deleted.
		</message>
		</actionResult>
		 <associationInfo>
			<associationID>12345</associationID>
			<categoryName>Related Products</categoryName>
			<parentProduct>
				<externalReferenceID>111111</externalReferenceID>
				<companyID>mycompany</companyID>
				<locale>en_US</locale>
			</parentProduct>
		</associationInfo>
	<groupData>
      <groupDataInfo>
        <groupName>Inkjet Ink/Print Cartridge</groupName>
        <locale>en_US</locale>
        <isDefault>1</isDefault>
      </groupDataInfo>
    </groupData>
	<associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>222222</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>1</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
    <associatedProduct>
      <action>update</action>
      <associatedProductInfo>
        <productKey>
          <externalReferenceID>333333</externalReferenceID>
          <companyID>mycompany</companyID>
          <locale>en_US</locale>
        </productKey>
        <sortOrder>2</sortOrder>
      </associatedProductInfo>
    </associatedProduct>
	</importResult>
</ProductAssociationFeedImportResponse>

The Action Result denotes whether or no the action succeeded. The possible results are as follows:

  • SUCCESSFUL
  • FAILED

If the request failed, the following table describes the possible response codes associated with the failure:

Response Code
Error Name
Message
100
ERR_INVALID_ACTION
Unrecognized action. Association group was not created.
110
ERR_NO_GROUP_FOUND
Product does not contain association.
120
ERR_INVALID_CATEGORY
Company has no category and Product Association was not created (updated or deleted).
130
ERR_ASSOCIATION_PARTIAL
Association was created, but errors occurred.
140
ERR_NOT_CREATED
Errors occurred, association was not created.
200
ERR_GROUPDATA_ADD
Error in adding groupData 
210
ERR_NO_GROUPDATA_FOUND
The association does not contain locale
220
ERR_GROUP_NOT_EDITABLE
Association cannot be modified: Group is not tied to the latest parent version.
230
ERR_NO_MODIFICATION
Errors occurred, association was not modified.
300
ERR_CHILD_ADD
Could not add associated product: product could not be found.
310
ERR_NO_CHILD_FOUND
Association does not contain child product.
320
ERR_INVALID_CHILD
Child product can not be found. Child was not removed/updated.
400
ERR_INVALID_PARENT
Parent product can not be found. Product Association was not added/modified/deleted.