Chapter 5 : Commerce
The Commerce module contains many crucial functionalities around search, pricing, cart features & checkout types, promotions, and coupons. This chapter will explore these features in detail.
Search and Navigation
Flexible and generic search options are utilized in backoffice. The Solr facet search is utilized to optimize search performance for customers by accessing an indexed reference of the data. Each have their own purpose and offerings.
More on Solr
- SAP Commerce Cloud Accelerator comes with Solr integration by default.
- Solr is a standalone enterprise search server with webservices like API.
- “Solr Facet Search” comes with Search & Navigation and:
- Support multi-catalog, multi-language, multi-currencies
- Can be configured
- Provide advanced full-text search capabilities
- Is optimized for high volume web traffic.
Search & navigation not only integrates with Solr but adds commerce features such as:
- Keyword redirects allow words typed in a storefront search box to bring the customer to a specific page. For example, searching for cart will direct the user to the cart webpage rather than products named cart.
- Synonyms allow employees to define lists of words that should be considered equivalent.
- Stop words prevent certain words from being included in a search. (Articles or offensive words)
- All of these support multiple languages and are a part of the facet Search configuration in back office.
This search indexing process can be accessed in Backoffice (admin) under Facet Search Configuration. From there, you can configure the Solr server, catalog version, languages, index types, and more. The indexed properties configuration tab allows you to specify each property’s transformation and indexing. A useful option is to set the facet to consider the percent value of an item’s core attributes completion to determine if the product is included in the index. Fer example, you could set for a catalog to only include in the index search those items that are above 70% core attributes completed.
To manually trigger the ETL process for indexing, select the index button. From there you can perform a full indexing, update those that have been changed, or delete the entire index. The hot index allows you to select a specific product to index.
The indexed data is used in search and on the category menus, displaying superficial qualities of a product. When the customer views the product page, the data itself is queried to return the detailed information.
In SmartEdit, you can use the personalization view to select a target group’s commerce customization. From here, you can select the search profile to apply to the group. After creating a search profile, modifying its facets, boosting products, or excluding them in the adaptive search cockpit.
In Backoffice, you can manipulate adaptive search profiles under the Adaptive Search cockpit. Here, you can preview what is returned in a search and manipulate what will be returned by creating a search profile.
The search profile can be modified more granularity here, but can be modified to some degree in the admin cockpit under search profile activation set. In the adaptive search cockpit, you can:
- Define facets and categorizing them as default, promoted, or excluded from facets list.
- Boost or bury individual items.
- Configuring boost rules in order to promote multiple items at the same time.
- Create simple and category aware search profiles.
- Simple Search Profile: allows defining configurations that are category-independent. No matter which category you select, the facet/boost configuration stays global.
- Category Aware Search Profile: allows defining a facet/boost configuration for a selected category. You can set different facet/boost settings for each of the categories.
A product can be boosted, applying a search engine priority increase product or set of products.
- Boost Items – An individual item can be boosted with promote or removed with exclude.
- Promoting Items – A set of items based on many facets or properties can be boosted with boost rules – Can be applied globally or by category, changing the weight of a set of items.
- Multiple boost rules can be applied.
- Boost rules depend on attribute values.
- Out of the Box, boost rules are only effective when searching by relevance.
A facet is a way to distinguish a feature for purposes of navigation. They are displayed along the side of a navigation page.
- Ranges can be applied to facets, such as price ranges.
- You can determine the order of displayed facets in adaptive search by overriding a facet under that search profile and manipulating the weight of the facet. You can also exclude facets and facet properties.
- Facet inheritance is flexible.
- Marking a facet or list item as promoted moves it to the top, overriding all weight.
- You can modify a facet to allow multiselect AND, multiselect OR, or refine. These will change the way that customers can utilize the facets.
- Refine – Only one value can be selected from this facet filter. The products displayed will qualify for the selected value.
- Multiselect AND – Multiple values can be selected in this facet filter. The products displayed must qualify for ALL of the selected values.
- Multiselect OR – Multiple values can be selected in this facet filter. The products displayed will qualify for at least one of the selected facet values of this facet filter.
- Set the indexed properties facet setting to true to make it useful as a facet. This is done in Backoffice Administration view.
- Facets are a complex feature of E-Commerce. For a deeper understanding, learn more.
Activating a search profile
After creating a search profile, it must be activated from the backoffice administration cockpit.
It can be activated globally under search profile activation sets. In this view, each shop can be selected and configured. Under the details section of a shop’s configuration, the new search profile can be set.
A serach profile can also be activated as a customization, affecting a target user, usergroup, or daterange for example. This can be done from the SmartEdit view.
Solr operation modes
SEO (Search Engine Optimization)
Search engine optimization promotes products in your store on external search engines such as google or Bing.
- SEO enabled by the WCMS module
- Descriptions, keywords, metatags, and attributes contribute to high ranking.
- SEO URLS are generated using Spring.
- Resolver classes build internal links
- Controllers parse the URL for rendering
- Site maps generator configuration available
- Customize robots.txt (What google reads to direct Google’s crawl on your site)
A PriceFactory is responsible for calculating product and cart/order prices with respect to taxes and discounts
- SAP Commerce Cloud ships with a generic price factory suitable for most pricing requirements. It’s called europe1, but despite its name, it can be used to price items in any currency and country.
- Price calculations are called rows. They can be found in Backoffice under Prices/price row
- Choose the best matching price depending on channel, scale, customer, and product, etc.
- Products might have multiple rows, but only one is shown to the customer, which is determined by the priceFactory.
- Tax Calculations accumulate all applicable taxes
- Discount Calculation Calculate and subtract all applicable discounts from subtotal.
Price priority hierarchy
- Explicit prices that match the currency of the customer’s location take priority.
- If no explicit price matches the currency of the customer’s location, the set base currency price supersedes prices that are not of the base currency. If no base currency price exists and no currency matching price exists, the product will have no price and cannot be purchased, even if prices of non-base currency exist.
- Price conversions are stored in the currency types based upon the system’s set base currency.
- Prices can be adjusted by scale, meaning the more a person purchases, the cheaper each item becomes.
- Channels are set to mobile, desktop, app, etc. At each pricing priority, match the channel if provided. If no channel matches, use row with null channel. If no channel provided, match only rows with no channel. It is important to have a null channel to fall back on just in case the channel is not detected properly.
Cart & Checkout
Carts are, by default, persisted for anonymous and logged in customers, meaning their selected items will remain in cart even after they leave the store. This is known as persistence and restoration.
- They are cookie based for anonymous users.
- Explicit authentication for registered users.
- Configurable cart merging and restoration strategies:
- Users can save and name carts and later restore them for purchase
- Cart export to csv files. Can import csv carts as well.
- Pricing and promotions are supported by price factory.
- Discounts, taxes, and delivery cost calculation, coupons and promotions
- Multiple fulfillment strategies are supported out of box.
- Standard shipping
- Buy online, pick up in store
- Multiple checkout templates are available B2C. (Customize checkout requires technical team)
Promotions and Coupons
The promotion module is based on the Rule Engine technology and offers
- Out of the box promotion templates (Buy X Get Y Free and more)
- An intuitive User Interface – a promotion rules builder in the Backoffice
- Combined rules and promotion group
- The ability to create, customize and halt promotions
A promotion is a single customer sales promotion that contains a set of conditions for activation and a set of actions that define the effect of the promotion. Promotions need not actively be redeemed by the customer.
Under promotion rules in Backoffice, you can create a promotion and then apply conditions using drag & drop functionality. Each condition can be AND or OR. You can nest conditions as well. Actions are the result of qualifying for the conditions. Actions also use drag and drop functionality. Business users can do this with all existing conditions. Technical teams can create new conditions for business users to use.
Promotion rules are evaluated according to the following criteria:
- Store or Website – Promotions must belong to the store or website in question
- Promotion rule priority – weighted priority value of a promotion
- Exclusiveness of promotion group – If one exclusive in a group is activated, others will not be
The promotion Engine allows the planning of a list of promotions to be activated at a specific time, as part of a campaign:
- Promotion rules can be grouped into promotion plans
- These promotions can be activated or deactivated at will
- The plan can also contain CMS Campaign Restrictions that will be activated with promotions
- This allows Promotion Plans to coordinate the activation of promotions and the modification of components and pages on a website.
Coupons are code vouchers that apply an action. For each coupon, a promotion rule will need to be created. The promotion rule will have a coupon code condition.
- Contains a single invariable code
- Can be redeemed multiple times (as determined by business)
- Coupon codes are programmatically generated with a given prefix in a given format.
- Each code generated can be used only once
Coupons can be integrated with 3rd parties with Coupon Web Services.
- Allows authorized external systems to administer coupons that can be redeemed on the storefront.
- External systems now have the facilities to create, edit, view, validate, and redeem the coupons without requiring user interaction through business tools.
The organization management features of SAP Commerce B2B Accelerator allows companies to self-service purchasing made through a merchant’s B2B Accelerator web site.
Companies can create multiple organizations (or units as they are called in B2B Accelerator), which are then associated with users, usergroups, order thresholds, budgets, and cost centers.
The following list outlines the purpose of each entity within the organization:
- Unit: The most basic building block of the organization is the unit. This represents a structure within the organization such as a department or a location. Units inherit from their parent units.
- User: Users are assigned to units and must have at least one of the following four roles:
- B2B Administrator: To be able to administer the organization structure a user must have the B2B Administrator role. The B2B Administrator is only permitted to administrate the organization structure equal-to or below the B2B Administrator’s position in the hierarchy.
- B2B Manager: To view the reports of the organization’s expenditure, a user must have the B2B Manager role. The B2B Manager is only permitted to view reports for the organization structure equal-to or below the B2B Manager’s position in the hierarchy.
- B2B Approver: To provide customer approval for an order, a user must have the B2B Approver role. In addition, the user must also have rights that define the monetary limits to which the user can approve. The position of the B2B Approver in the hierarchy is used by the customer approval process when finding the least senior B2B approver permitted to approve an order.
- B2B Customer: Only users with the B2B Customer role are permitted to place orders. B2B Customers can create orders of any value. If the order value is within the user’s order threshold, the order is placed immediately. If the order value exceeds the user’s order threshold, the order is assigned to an approver for review and approval. If approved, the order is placed. Note that the order may also require approval by the account manager.
- Cost Center: To simplify the organization’s task of recharging of orders to departments, the B2B administrator assigns cost centers to units. Cost centers that are direct ancestors of the B2B customer are made available to the customer at checkout.
- Budget: The organization assigns budgets to units to limit their expenditure. Placed orders that exceed the budget are sent to the B2B approver for customer approval before being sent to the merchant.
- Credit Limit: Credit limits are managed by the merchant (and not the B2B administrator) to limit their credit exposure to the customer organization. Credit limits can be assigned to any unit.
For more information on B2B organizations, see B2B Commerce Module
The Subscriptions module is designed to address the needs of subscription-based sales. SAP Commerce enables you to manage frequency, length, renewals, and other attributes unique to subscription business models. Powerful tools allow business users to easily set up subscription-based pricing models, pricing periods, subscription terms, and conditions, entitlements and metering, and more, supporting innovation and fast time to market.
There are a few features related to subscription products:
- Entitlements: An entitlement defines what is the value that a customer receives with a subscription product.
- Subscription Terms: They specify what are terms of a subscription and length of a customer’s commitment. You can also define the conditions of renewal of a subscription or whether a customer is eligible to cancel the commitment and under which conditions. Subscription terms are related to Billing Cycle Plan where you can specify what is the frequency of payments, of what cycle type they are and what is the cycle day, that is, the day when a customer is to pay for the subscription.
- Price Plan: It defines what are the periodic charges depending on length of the commitment.
The subscriptions module provides versitile functionality, including price tiering for metered products. To learn about implimenting this and other included features of the subscription module, see this documentation.
The Configurable Bundle module enables defining template bundles of products offered together as a package. The bundling feature allows you to define different pricing for a product depending on if it is sold individually or in a bundle.
Cart Page Sorting
All the bundles and standalone products appear in the cart entries list in a consistent way:
- Latest added standalone product goes on top of the cart, and the latest added bundle product goes on top of the relative component.
- Quantity changes do not affect the order in the cart.
- Within a bundle, components are sorted in the same order as the leaf components of the bundle template.
- Within a component, products display starting from the latest addition.
- Empty bundles go on top.
The customer can remove the whole bundle or any product within a component, but they cannot remove components separately.
To add more products to a component, the customer can click the component’s Edit button to open a product selection page for the component. On a product selection page, the customer can Select a product to add it to the component.
You can set multiple levels for a bundle template in Backoffice, but the cart page in the storefront shows only root and leaf items.
Marking Erroneous Bundles
Components that have a product count below the minimum have a red-marked label, and an error message displays for them. Also, bundles can have required components that you have to add to the bundles to make them valid. For example, you cannot buy the Internet package without a phone price plan. To be able to check out, add a phone price plan to a cart.
The Bundle Carousel component is displayed on the Product Details Page and shows a customer that the chosen product can be a part of a configurable bundle.
For example: EOS450D + 18-55 IS Kit. Under the photo of the product, you can find Buy this item in a bundle Bundle Carousel with proposed bundles configurations.
The Bundle Carousel component contains a productID parameter. Every component shows:
- name of the root bundleTemplate -package
- name of the leaf
- Start Bundle button
The Start Bundle button leads to the bundle-specific editEntryGroup page for that very leaf component. The Start Bundle button is disabled, when a product is out of stock.
The Bundle Carousel is added automatically to Product Details Page, when you add a product to the bundle in Product Cockpit.
The Cart Entry Merge feature joins two cart entries with the same product into one entry, so the cart is kept clean.
Cart Entry Grouping functionality enables you to join the multiple cart entries into a single package and operate with it as with a unified entity.
You can remove a cart entry from a group through native functionality of a cart page. Click X on the right side of the entry.
For every leaf group, a min and max number of entries can be defined. You cannot navigate to a checkout until all groups are valid. The validation updates an entry addition and removal.