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).
- Start by comparing the SiteGenesis application against your application to identify the storefront changes needed.
-
Modify the
account-landing
content asset (or your application's equivalent) to include an Add to Gift Registry or Add to Wish list link. -
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
andaddToWishList.
product.xml
Specifies action: addtogiftregistry
andaddtowishlist.
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
andWishlist-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 typeWish 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. -
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. -
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. -
Add this script:
scripts/account/wishlist/SetShippingAdress.ds
. -
Use these API classes:
-
ProductList
-
ProductListItem
-
ProductListItemPurchase
-
ProductListMgr
-
ProductListRegistrant
-