SiteGenesis Gift Registry and Wish List Features

If you want to add gift registry functionality to an existing site, you need to understand how this functionality works within the SiteGenesis application, specifically with gift registry and wish list specific templates and pipelines.

Products are added to a wish list or gift registry on the product details page and the Quickview page (see the SiteGenesis Wireframes).

  1. Start by comparing the SiteGenesis application against your application to identify the storefront changes needed.
  2. Modify the account-landing content asset (or your application's equivalent) to include an Add to Gift Registry or Add to Wish list link.
  3. Modify your existing files so they perform like SiteGenesis relative to the following files, which are located in the SiteGenesis Storefront Core cartridge, unless indicated otherwise:
    Option Description
    Form definitions  
    cart.xml Specifies action: addToGiftRegistry and addToWishList.
    product.xml Specifies action: addtogiftregistry and addtowishlist.
    productlists.dita Contains the form for the gift registry.
    profile.xml Registers a customer.
    sendtofriend.xml Contains the form for sending an email to a friend.
    Pipelines  
    Cart.xml Handles GiftRegistry-ReplaceProductListItem and Wishlist-ReplaceProductListItem in the AddProduct Start node (from gift registry or wish list page). This is used only for the simple UI.
    GiftRegistry.xml Contains workflows that enable customers to create and maintain one or more gift registries.
    GiftRegistryCustomer.xml Renders a public gift registry, which can be accessed by people other than the owner.
    Wishlist.xml Contains workflows that enable a customers to create and maintain a wish list.
    ProductList.xml Provides utility workflows associated with product lists such as a wish list or a gift registry
    Script  
    productlist/GenerateShipmentName.ds Generates a shipment name for a shipment representing a product list. Generally, a product list of type Gift Registry is given a name when the registry is created. However, a product list of type Wish List is not always given a name. Also, there might be more than one product list with the same name, though they represent two different owners. For example, you could have two different gift registries called 'My Wedding'. To generate a name, this script uses the list name first, then the list name and the owner's name if there is already a shipment using that name, and finally the owner's name and the type of product list if the product list doesn't have a name. This script also assigns the ID to the list as its name if the list doesn't have a name.
    Static Files path: static/default
    css/style.css Provides styling for gift registry and wish list search.
    css/style-responsive.css Provides styling for gift registry and wish list search for responsive design.
    app.js Binds handlers to AddtoCartDisabled, AddtoCartEnabled events for disabling/enabling wishlist/gift registry links (located in the SiteGenesis Storefront cartridge).
    Templates  
    checkout/cart/cart.isml Processes a gift registry shipment.
    components/header/header.isml Links to the gift registry and wish list from the header.
    product/compare/compareshow.isml Provides Add products to the gift registry and Add products to the wish list buttons within product compare.
    product/components/displayliproduct.isml Shows the gift registry or wish list customer if the list item is in the gift registry.
    product/product.isml Provides an Add to Registry button to the product detail page. Performs a remote include of the Product-Detail, and must reside in that related template.
    Resource files path: templates/resources
    account.properties Contains messages specific for ISML files in the templates/default/account directory.
    components.properties Contains messages specific for ISML files in the templates/default/components directory.
    forms.properties Contains messages specific for ISML files in the forms directory.
    product.properties Contains messages specific for ISML files in the templates/default/product directory.
  4. Add the SiteGenesis gift registry files.
    Option Description
    Form definitions  
    forms/default/giftregistry.xml Metadata for the gift registry form.
    Pipelines  
    GiftRegistry.xml Contains a set of workflows that let you create and maintain one or more gift registries.
    GiftRegistryCustomer.xml Renders a public gift registry, which can be accessed by people other than the owner.
    Scripts path: scripts/account/giftregistry
    AssignEventAddresses.ds Assigns the addresses used for the gift registry event. There are two addresses: the address to use before the event occurs and the address to use after the event occurs. You can create new addresses. This script uses form object definitions and form value definitions defined in the giftregistry.xml form.
    AssignPostEventShippingAddress.ds Assigns the form values of the address before event to the address after event. This script uses form object definitions and form value definitions defined in the giftregistry.xml form.
    CopyAddressFormFields.ds Copies the gift registry event address form fields, clears the form, and copies the values back to the form. This is done to maintain the state of the form when creating a new gift registry and the customer clicks the Previous button.
    InitializeAddressOptionsd.ds Initializes the selected radio buttons for the addresses used for the event's before and after shipping addresses.
    UpdaterRegistryAddress.ds Ensures that shipments representing gift registries have an address in place. Because a gift registry shipping address can change based on the date of the gift registry event, this ensures that the address that appears on the summary page is the up-to-date address.
    Templates path: account/giftregistry
    addresses.isml Provides the second step of the gift registry creation logic: participant addresses, and provides address-related gift registry actions such as address changes.
    eventparticipation.isml Provides the first step of the gift registry creation logic: event participants.
    giftregistryconfirmation.isml Provides the third step of the gift registry creation logic: the final confirmation.
    giftregistrylanding.isml Creates the gift registry landing page, which provides search and account create facilities.
    giftregistryresults.isml Shows the results of the gift registry search.
    giftregistrysearch.isml Shows the form to search the gift registry.
    navigation.isml Shows the form navigation buttons for the gift registry.
    pt_giftregistry.isml Provides the page type (decorator template) file for gift registry display.
    purchases.isml Shows the gift registry purchases form.
    refreshregistry.isml Intentionally empty.
    registry.isml Renders the gift registry form and provides basic actions such as item updates and publishing.
    registrycustomer.isml Renders a public gift registry, which can be accessed by people other than the owner.
    registrylist.isml Shows the current gift registries and enables the creation of a new registry.
    registryselect.isml Selects a gift registry from a list of gift registries, for example, found by the registry search.
  5. Add the SiteGenesis wish list files:
    Option Description
    Form definitions  
    wishlist.xml Metadata for the wish list form.
    Pipelines  
    Wishlist.xml Contains a set of workflows that let you create and maintain a customer's wish list.
    Templates path: account/wishlist
    pt_wishlist.isml Provides the page type (decorator template) file for the wish list display.
    refreshwishlist.isml Empty file.
    wishlist.isml Renders the wish list page.
    wishlistlanding.isml Contains the login form specific for the wish list.
    wishlistresults.isml Shows the wish list search results.
    wishlistsearch.isml Shows the form to search the wish list.
  6. Add this script: scripts/account/wishlist/SetShippingAdress.ds.
  7. Use these API classes:
    • ProductList
    • ProductListItem
    • ProductListItemPurchase
    • ProductListMgr
    • ProductListRegistrant