1. Product catalogs

Product collection enhancements

The ProductCollections feature has been enhanced with new functionality to support additional use cases beyond private product lists. These enhancements include new endpoints and an AccessLevel property that provides greater flexibility in implementing ProductCollections in your marketplace.

Implementation scenarios

Marketplace insights

Marketplace Owners and Suppliers can now view ProductCollections with the ProductCollectionReader role to understand which products customers are saving to their collections.

Shared household lists

Enable customers to create grocery lists and invite household members to view and manage them.

Holiday wishlists

Allow customers to create Sharable holiday wish lists that family members can view.

Access level property

The AccessLevel property defines who can view and interact with a product collection:

Private collections

  • Default access level
  • Collection owners control access
  • Owners can grant access through ProductCollectionInvitations
  • Limited to users within the same buyer organization

Public collections

  • Accessible to all users in the buyer organization
  • Includes anonymous (unregistered) users
  • Available through GET v1/me/productcollections
  • Maintains organization boundaries

Shareable collections

  • Accessible by collection ID
  • Available to all users in the buyer organization
  • Includes anonymous (unregistered) users
  • Access via GET v1/me/productcollections/{productCollectionID}
  • Maintains organization boundaries

ProductCollectionReader role

This new role provides different capabilities based on user type:

Marketplace owner access

  • View collections across the marketplace
  • Access all buyer user collections
  • Complete visibility of collection contents

Supplier access

  • View collections for authorized buyers
  • See entries for owned/authorized products
  • Limited to relevant product visibility

Buyer user access

  • View collections within their organization
  • See entries based on product visibility
  • Follow standard visibility rules

Associated endpoints

The ProductCollectionReader role enables access regardless of AccessLevel, within defined limitations:

http
GET v1/buyers/{buyerID}/productcollections
GET v1/buyers/{buyerID}/productcollections/{productCollectionID}
GET v1/buyers/{buyerID}/productcollections/{productCollectionID}/products

ProductCollectionInvitation resource

This new resource enables collection owners to grant access to their private collections:

json
{
  "ProductCollectionInvitation": {
    "ID": "",
    "Name": "",
    "Admin": false,
    "Accepted": false,
    "ExpirationDate": "",
    "xp": {}
  }
}

Properties

  • ID: System-generated identifier for accepting/declining invitations
  • ExpirationDate: Defaults to 30 days, maximum 365 days
  • Admin: When true, allows invitee to manage collection entries
  • xp: Stores invitation-related information (name, email, etc.)

Implementation notes

  • Each user needs a separate invitation
  • Invitations can only be accepted once
  • System validates organization membership
  • Use pre-webhooks for additional validation
  • Extended properties do not affect access control

Associated endpoints

All endpoints require only the Shopper role:

http
POST v1/me/productcollections/{productCollectionID}/invitations
DELETE v1/me/productcollections/{productCollectionID}/invitations/{invitationID}
GET v1/me/productcollections/{productCollectionID}/invitations
POST v1/me/productcollections/{productCollectionID}/invitations/accept/{invitationID}
POST v1/me/productcollections/{productCollectionID}/invitations/decline/{invitationID}

Endpoint behaviors

  • POST: Creates new invitation
  • DELETE: Revokes access or prevents acceptance
  • GET: Lists all invitations
  • Accept/Decline: Limited to registered users in organization

Message senders

Built-in notifications

Two new message sender types:

  • ProductCollectionInvitationAccepted
  • ProductCollectionInvitationDeclined

These notify collection owners when invitations are accepted or declined.

Custom notifications

  • No built-in sender for new invitations
  • Use webhooks for custom invitation emails
  • Implement validation as needed
  • Configure based on business requirements
If you have suggestions for improving this article, let us know!