Mapping of REST services to BOD services

The following sections detail how the REST resource method names relate to specific BOD services.


AssignedCouponHandler

Resource Method Name BOD Service Mapping
getAssignedCouponInfo BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem
applyCoupon BOD: ProcessOrder
Action Code: ApplyCoupon
Action Expression: /Order

BOD:ProcessOrder
Action Code: CalculateInternally
Action Expression: /Order

removeCoupon BOD: ProcessOrder
Action Code: RemoveCoupon
Action Expression: /Order

BOD: ProcessOrder
Action Code: CalculateInternally
Action Expression: /Order


AssignedPromotionCodeHandler

Resource Method Name BOD Service Mapping
getAssignedPromotioncodeInfo BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem
applyPromotioncode BOD: ProcessOrder
Action Code: ApplyPromotionCode
Action Expression: /Order

BOD: ProcessOrder
Action Code: CalculateInternally
Action Expression: /Order

removePromotionCode BOD: ProcessOrder
Action Code: RemovePromotionCode
Action Expression: /Order

BOD: ProcessOrder
Action Code: CalculateInternally
Action Expression: /Order


AssociatedPromotionHandler

Resource Method Name BOD Service Mapping
findPromotionList Not applicable. Calls the CalculationCodeListDataBean data bean.


CartHandler

Resource Method Name BOD Service Mapping
getCart BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem
getUsableShippingInfo BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem

BOD: GetOrder
Access Profile: IBM_UsableShippingInfo /Order[OrderIdentifier[(UniqueID='$OrderID$')]]

getUsablePaymentInfo BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem

BOD: GetOrder
Access Profile: IBM_UsablePaymentInfo
Action Expression: /Order[OrderIdentifier[(UniqueID='$OrderID$')]]

applyCheckoutProfile BOD: GetOrder
Access Profile: IBM_Summary
Action Expression: /Order[OrderStatus[(Status='Q')]]

BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem

BOD: ProcessOrder
Action Code: Checkout
Action Expression: {_ord.usingProfile='true'}/Order

addOrderItem BOD: ChangeOrder
Action Code: Create
Action Expression: /Order/OrderItem
udpateOrderItem BOD: ChangeOrder
Action Code: Update
Action Expression: /Order/OrderItem
cancelOrderInCart BOD: ProcessOrder
Action Code: Cancel
Action Expression: /Order
preCheckout BOD: ProcessOrder
Action Code: Prepare
Action Expression: /Order
checkOut BOD: ProcessOrder
Action Code: Submit
Action Expression: /Order
lockCart BOD: ProcessOrder
Action Code: Lock
Action Expression: /Order
unlockCart BOD: ProcessOrder
Action Code: Unlock
Action Expression: /Order
getAllowableShippingModes Not applicable. Calls an AccessBean to get the allowable shipping modes.


CategoryViewHandler

Resource Method Name BOD Service Mapping
findCategoryByUniqueId BOD: GetCatalogNavigationView
Access Profile: IBM_Store_Details, IBM_findCatalogGroupDetails
Action Expression: /CatalogNavigationView[CatalogGroupView[(UniqueID=$uniqueId$)]]
findCategoryByIdentifier BOD: GetCatalogNavigationView
Access Profile: IBM_Store_Details, IBM_findCatalogGroupDetails
Action Expression: /CatalogNavigationView[CatalogGroupView[(Identifier=$identifier$)]]
findTopCategories BOD: GetCatalogNavigationView
Access Profile: IBM_Store_Summary, IBM_findCatalogGroupSummary
Action Expression: /CatalogNavigationView/CatalogGroupView
findSubCategories BOD: GetCatalogNavigationView
Access Profile: IBM_Store_Summary, IBM_findCatalogGroupSummary
Action Expression: /CatalogNavigationView[CatalogGroupView[(ParentCatalogGroupID=$parentCatalogGroupId$)]]


CategoryViewHandler (Search)

Resource Method Name Search Server Mapping (default search profile)
findCategoryByUniqueId IBM_findCategoryByUniqueIds
findCategoryByUniqueIds IBM_findCategoryByUniqueIds
findCategoryByIdentifier IBM_findCategoryByIdentifier
findTopCategories IBM_findSubCategories
findSubCategories IBM_findSubCategories


CouponHandler

Resource Method Name BOD Service Mapping
getCoupon BOD: GetWalletItem
Access Profile: IBM_Store_Details
Action Expression: /WalletItem[Data[Status='0'] and Type='Coupon' and WalletItemIdentifier/ExternalIdentifier/WalletIdentifier[UniqueID='$uniqueId$']]
deleteCouponById BOD: ProcessWalletItem
Action Code: Delete
Action Expression:/WalletItem


ESpotDataHandler

Resource Method Name BOD Service Mapping
findByName BOD: GetMarketingSpotData
Access Profile: IBM_Store_All
Action Expression: {_wcf.ap=$accessProfile$
findByNameWithCategory BOD: GetMarketingSpotData
Access Profile: IBM_Store_All
Action Expression: {_wcf.ap=$accessProfile$
findByNameWithProduct BOD: GetMarketingSpotData
Access Profile: IBM_Store_All
Action Expression: {_wcf.ap=$accessProfile$


EventHandler

Resource Method Name BOD Service Mapping
triggerMarketing BOD: ProcessMarketingTrigger
Action Code: Evaluate
Action Expression: {_mkt.triggerParameters='DM_ReqCmd=$commandName$&nvp1=value1&nvp1=value2_mkt.endTriggerParameters'}/MarketingTrigger


GeoNodeHandler

Resource Method Name BOD Service Mapping
findTopGeoNodes (site level search) BOD: GetGeoNode
Access Profile: IBM_Store_All
Action Expression: /GeoNode[@topGeoNode='true']
findTopGeoNodes (store level search) BOD: GetGeoNode
Access Profile: IBM_Store_All
Action Expression: /GeoNode[@topGeoNode='true' and StoreIdentifier[UniqueID=$storeId$]]
findGeoByParentGeoId BOD: GetGeoNode
Access Profile: IBM_Store_All
Action Expression: /GeoNode[ParentGeoNodeIdentifier[UniqueID=$parentUniqueId$]]


GuestIdentityHandler

Resource Method Name BOD Service Mapping
login BOD: ProcessPerson
Action Code: CreateGuest

Command Interface: com.ibm.commerce.member.server.commands.LoginServiceCmd

logout BOD: ProcessPerson
Action Code: Logout


InventoryHandler

Resource Method Name BOD Service Mapping
getInventoryAvailabilityByProductId BOD: GetInventoryAvailability
Access Profile: IBM_Store_Details
Action expression: 1. /InventoryAvailability[InventoryAvailabilityIdentifier/ExternalIdentifier[CatalogEntryIdentifier[(UniqueID=$uniqueId$)] and OnlineStoreIdentifier[(UniqueID=$uniqueId$)]]]


LoginIdentityHandler

Resource Method Name BOD Service Mapping
login BOD: ProcessPerson
Action Code: AuthenticatePassword
logout BOD: ProcessPerson
Action Code: Logout


LTPAIdentityHandler

Resource Method Name BOD Service Mapping
authenticate BOD: ProcessPerson
Action Code: AuthenticateLTPA
logout BOD: ProcessPerson
Action Code: Logout


OrderHandler

Resource Method Name BOD Service Mapping
findOrderHistory BOD: GetOrder
Access Profile: IBM_Summary
Action Expression: /Order[OrderStatus[(status='$OrderStatus$')]]
findByOrderId BOD: GetOrder
Access Profile: IBM_Details
Action Expression: /Order[OrderIdentifier[(UniqueID='$orderID$')]]
findByStatus BOD: GetOrder
Access Profile: IBM_Summary
Action Expression: /Order[OrderStatus[(status='$OrderStatus$')]]


PaymentInstructionHandler

Resource Method Name BOD Service Mapping
getPaymentInfo BOD: GetOrder
Access Profile: IBM_Details
Action Expression: {ibmord.isCurrentShoppingCart='true'}/Order/OrderItem
addPaymentInstruction BOD: ChangeOrder
Action Code: Create
ActionExpression: /Order/OrderPaymentInfo/PaymentInstruction
updatePaymentInstruction BOD: ChangeOrder
Action Code: Update
ActionExpression: /Order/OrderPaymentInfo/PaymentInstruction
deletePaymentInstruction BOD: ChangeOrder
Action Code: Delete
ActionExpression: /Order/OrderPaymentInfo/PaymentInstruction
deleteAllPaymentInstructions BOD: ChangeOrder
Action Code: Delete
ActionExpression: /Order/OrderPaymentInfo/PaymentInstruction


PersonHandler

Resource Method Name BOD Service Mapping
findPersonBySelf BOD: GetPerson
Access Profile: IBM_All
ActionExpression: {self=true}/Person
registerPerson BOD: ProcessPerson
Action Code: Register
ActionExpression: /Person

BOD: ProcessPerson
Action Code: AuthenticatePassword

updatePerson BOD: ChangePerson
Action Code: Update
ActionExpression: /Person
deleteContextAttributeForPerson BOD: ChangePerson
Action Code: Delete
ActionExpression: /Person/ContextAttribute


PersonCheckoutProfileHandler

Resource Method Name BOD Service Mapping
getCheckoutProfile BOD: GetPerson
Access Profile: IBM_CheckoutProfile
Action Expression: {self=true}/Person
updateCheckoutProfile BOD: ChangePerson
Action Code: Update
Action Expression: /Person/CheckoutProfile


PersonContactHandler

Resource Method Name BOD Service Mapping
getAllPersonContact BOD: GetPerson
Access Profile: IBM_ALL
Action Expression: {self=true}/Person
findPersonContactById BOD: GetPerson
Access Profile: IBM_ALL
Action Expression: {self=true}/Person
findPersonContactByNickName BOD: GetPerson
Access Profile: IBM_ALL
Action Expression: {self=true}/Person
addPersonContact BOD: ChangePerson
Action Code: Create
Action Expression: /Person/AddressBook/Contact
updatePersonContact BOD: ChangePerson
Action Code: Update
Action Expression: /Person/AddressBook/Contact
deletePersonContact BOD: ChangePerson
Action Code: Delete
Action Expression: /Person/AddressBook/Contact


PreviewTokenHandler

Resource Method Name BOD Service Mapping
genPreviewToken BOD: ProcessPerson
Action Code:CreatePreviewToken
Action Expression: /Person


PriceHandler

Resource Method Name BOD Service Mapping
findPricesByQuery BOD: GetEntitledPrice
Access Profile: IBM_Store_EntitledPrice_All, IBM_Store_EntitledPrice_RangePrice_All
Action Expression: /EntitledPrice


ProductViewHandler

Resource Method Name BOD Service Mapping
findProductsBySearchTerm BOD: GetCatalogNavigationView
Access Profile: IBM_Store_CatalogEntrySearch, IBM_findCatalogEntryByNameAndShortDescription
Action Expression: /CatalogNavigationView
findProductById BOD: GetCatalogNavigationView
Access Profile: IBM_Store_CatalogEntrySearch, IBM_findCatalogEntryAll
Action Expression: /CatalogNavigationView[CatalogEntryView[(UniqueID=$uniqueId$)]]
findProductsByIds BOD: GetCatalogNavigationView
Access Profile: IBM_Store_CatalogEntrySearch, IBM_findCatalogEntryAll
Action Expression: /CatalogNavigationView[CatalogEntryView[(UniqueID=$uniqueId1$ or UniqueID=$uniqueId2$)]]
findProductByPartNumber BOD: GetCatalogNavigationView
Access Profile: IBM_Store_CatalogEntrySearch, IBM_findCatalogEntryAll
Action Expression: /CatalogNavigationView[CatalogEntryView[(PartNumber=$partNumber$)]]
findProductsByCategory BOD: GetCatalogNavigationView
Access Profile: IBM_Store_Details, IBM_findCatalogEntryByNameAndShortDescription
Action Expression: /CatalogNavigationView[CatalogEntryView[ParentCatalogGroupID=$parentCatalogGroupId$ and (catalogEntryTypeCode='ProductBean' or catalogEntryTypeCode='BundleBean' or catalogEntryTypeCode='PackageBean')]]


ProductViewHandler (Search)

Resource Method Name Search Server Mapping (default search profile)
findProductsBySearchTerm IBM_findProductsBySearchTerm
findProductById IBM_findProductByIds_Details
findProductsByIds IBM_findProductByIds_Details
findProductByPartNumber IBM_findProductByPartNumber_Details
findProductsByCategory IBM_findProductsByCategory


PromotionHandler

Resource Method Name BOD Service Mapping
getPromotionsByQuery BOD: GetPromotion
Access Profile: IBM_Admin_Details
Action Expression: /Promotion
getPromotionsByQuery?q=byName BOD: GetPromotion
Access Profile: IBM_Admin_Details
Action Expression: /Promotion[search(contains(AdministrativeName, $qName$))]
getPromotionByID BOD: GetPromotion
Access Profile: IBM_Admin_Details
Action Expression: /Promotion[PromotionIdentifier[(UniqueID='$promotionId$')]]


SegmentHandler

Resource Method Name BOD Service Mapping
checkIsInSegmentByUserId BOD: GetMemberGroup
Access Profile: IBM_Admin_Details
Action Expression: /MemberGroup[MemberGroupIdentifier[UniqueID='$memberGroupID$'] and IncludedPerson[UniqueID='$personID$']]
getCustomerSegment BOD: GetMemberGroup
Access Profile: IBM_Admin_Details
Action Expression:
ByName: /MemberGroup[search(contains(MemberGroupIdentifier[ExternalIdentifier[Name="$name$" and Usage="GeneralPurpose"]]
ByUserId: /MemberGroup[IncludedPerson[UniqueID="$UserID$"] and Usage="-1"]
ByPersonalizationId: /MemberGroup[IncludedPerson[UniqueID="$personID$"] and Usage="-1"]
ByStore: /MemberGroup[Usage='GeneralPurpose']
getCustomerSegmentById BOD: GetMemberGroup
Access Profile: IBM_Admin_Details
Action Expression: /MemberGroup[MemberGroupIdentifier[(UniqueID='$memberGroupID$')]]


ShippingInfoHandler

Resource Method Name BOD Service Mapping
getShippingInfo BOD: GetOrder
Access Profile: IBM_Details
Action Expression:{ibmord.isCurrentShoppingCart='true'}/Order/OrderItem
updateOrderShippingInfo BOD: ChangeOrder
Action Code: Update
Action Expression: /Order/OrderItem/OrderItemShippingInfo


SiteContentHandler (Search)

Resource Method Name Search Server Mapping (default search profile)
findWebContentsBySearchTerm IBM_findWebContentsBySearchTerm
findKeywordSuggestionsByTerm Not applicable.
findAllCategorySuggestions IBM_findNavigationSuggestion_Categories
findAllBrandSuggestions IBM_findNavigationSuggestion_Brands
findAllWebContentSuggestions Not applicable.


SpotHandler

Resource Method Name BOD Service Mapping
findSpotsByQuery?q=byType BOD: GetMarketingSpot
Access Profile: IBM_Admin_Details
Action Expression: /MarketingSpot[Usage='$qType$']
findSpotsByQuery?q=byTypeAndName BOD: GetMarketingSpot
Access Profile: IBM_Admin_Details
Action Expression: /MarketingSpot[Usage='$qType$' and search(contains(MarketingSpotIdentifier/ExternalIdentifier/Name, '$qName$') or contains(Description, '$qName$'))]
findSpotByID BOD: GetMarketingSpot
Access Profile: IBM_Admin_Details
Action Expression: /MarketingSpot[MarketingSpotIdentifier[(UniqueID='$spotId$')]]


StoreLocatorHandler

Resource Method Name BOD Service Mapping
findGeoNodeByGeoLocation (site level search) BOD: GetGeoNode
Access Profile: IBM_Store_All
Action Expression: /GeoNode[@type=$type$ and search(contains(Description/Name,$Name$))]

BOD: GetPhysicalStore
Access Profile: IBM_Store_Details
Action Expression: /PhysicalStore[LocationInfo[GeoNodeIdentifier[UniqueID=$uniqueId$]]]

findGeoNodeByGeoLocation (store level search) BOD: GetGeoNode
Access Profile: IBM_Store_All
Action Expression: /GeoNode[@type=$type$ and StoreIdentifier[UniqueID=$storeId$] and search(contains(Description/Name,$Name$))]

BOD: GetPhysicalStore
Access Profile: IBM_Store_Details
Action Expression: /PhysicalStore[LocationInfo[GeoNodeIdentifier[UniqueID=$uniqueId$]]]

findGeoNodeByGeoId BOD: GetPhysicalStore
Access Profile: IBM_Store_Details
Action Expression: /PhysicalStore[LocationInfo[GeoNodeIdentifier[UniqueID=$uniqueId$]]]
findByStoreUniqueId BOD: GetPhysicalStore
Access Profile: IBM_Store_Details
Action Expression: /PhysicalStore[PhysicalStoreIdentifier[(UniqueID=$uniqueId$)]]
findStores BOD: GetPhysicalStore
Access Profile: IBM_Store_Details
Action Expression: {_sto.radiusValue=$value$;_sto.radiusUom=$uom$;_sto.maxStores=$maxStores$}/PhysicalStore[LocationInfo[GeoCode[Latitude=$latitude$ and Longitude=$longitude$]] and StoreIdentifier[UniqueID=$storeId$]]


WishlistHandler

Resource Method Name BOD Service Mapping
findWishlist BOD: GetPerson
Access Profile: IBM_All
Action Expression: {self=true}/Person

BOD: GetGiftList
Access Profile: IBM_Store_GiftListSummaryAndItems
Action Expression: /GiftList[Registrant[PersonIdentifier[UniqueID=]] and Registry=]

findWishlistByUserId_default BOD: GetPerson
Access Profile: IBM_All
Action Expression: {self=true}/Person

BOD: GetGiftList
Access Profile: IBM_Store_GiftListSummaryAndItems
Action Expression: /GiftList[Registrant[PersonIdentifier[UniqueID=]] and Registry= and (State=)]

findWishlistByExternalId BOD: GetGiftList
Access Profile: IBM_Store_GiftListSummaryAndItems
Action Expression: GiftList[GiftListIdentifier[GiftListExternalIdentifier[(ExternalIdentifier=)]]]

BOD: GetGiftList
Access Profile: IBM_Store_GiftListSummaryAndItems
Action Expression: /GiftList[AccessSpecifier[GuestAccessKey= or RegistryAccessKey=] and GiftListIdentifier[GiftListExternalIdentifier[ExternalIdentifier=]]]

createWishlist BOD: ProcessGiftList
Action Code: Create
Action Expression: /GiftList[1]
updateWishlist (when addItem=true) BOD: ChangeGiftList
Action Code: Add
Action Expression: /GiftList[] /GiftList[]/Item[]
updateWishlist BOD: ChangeGiftList
Action Code: Change
Action Expression: /GiftList[] /GiftList[]/Item[] /GiftList[]/Description
deleteWishlist BOD: ProcessGiftList
Action Code: Delete
Action Expression: /GiftList[1]