Child pages
  • WIP: Headless Commerce Requirement Specification

Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

Skip to end of metadata
Go to start of metadata

Purpose

The purpose of this document is to describe the standard eCommerce feature set. So that it can be used as a reference document while developing an eCommerce solution. It will force us to be specific about what to achieve. It will also help to get everyone on the same page when a team is working on the implementation.

Introduction

Here we are focussed on Business-to-Consumer (B2C) commerce, where consumers visit the website/mobile apps, select/search the catalog, avail offers, select shipping/pickup options, do the payment, and places the order. For a smooth experience, the consumer can create an account, manage profile (password, contact information, shipping defaults, payment information), participate in surveys, and enjoy loyalty programs benefits.

Consumers having an account can log in and can see order history, can track the order and modify/cancel the order to a certain extent before it’s processing gets started.

Vision

This eCommerce feature set can be used to define the scope while developing headless commerce APIs.

Features

Customer

Registration

It is always easy to provide a unified shopping experience, deliver seamless transactions, and personalized experiences if the shoppers have registered themselves and created an account on the eCommerce site. The Registered account gives customers an interactive experience. So while having guest checkout (used majorly by the first time users) feature to register(it should be voluntary) a user in an encouraging way helps.

There should be a feature for the shopper registration. The registration form should have as minimal fields as possible and they should be logically grouped. The registration should be voluntary. The shopper should have the option to the anonymous/guest checkout. If the registration process is combined with the checkout process then break up the process in the clearly labeled steps.

Moreover describe the benefits of registration if possible to encourage the account creation e.g. loyalty program, order history, coupons, wishlist/shopping list, reviews, easier ordering for returning customers,  etc. An email should be sent on successful registration.

Login

This feature allows a registered user to log on to the website. After the login user can be able to see his profile detail, order history can change the password and many more.

  1. Log in via username and password - User registered on the website can use the username and password (set during registration) to log in. Allowing login from both registered email and mobile number will ease the process.
  2. OTP login - Where OTP will be sent to the entered/registered email or phone number to continue login.
  3. Social Login - It helps to sign-up on a third-party platform using their existing login information from social media networks like Facebook, hence avoiding the need to create a new account.

Logout

It enables the user to log out of the website. No user-specific detail should appear now.

Reset Password

If somehow the user forgot his password then there should be a way by which the user can reset the password on its own without contacting the customer support team.

To reset the password user should be asked to provide his registered email and in the process, a reset password mail should be sent to that email with a link to reset the password. When the user clicks that link from his mailbox he should be redirected back to the website to proceed ahead with the reset password. The reset password link should be valid for a particular time period to avoid any issues.

Profile

For the registered user, there should be one page where he can see his account information along with other activities. The following information can be included on the profile page -

Change Password

The users should be able to change the password from his profile page after logging into the website. He should be simply asked to enter the current password and new password with the password hint to change the password. An email should be sent to the user on the successful operation to intimate the customer about the password change.

Personal Information

The user's personal information should be displayed on the profile page. Personal information should include name, gender, birthdate, etc. Users should also be allowed to update this information.

Contact Information And Defaults

The user's contact information should be displayed on the profile page. User contact information includes postal addresses, phones, and emails for different purposes. All the previously added postal addresses (shipping, billing, etc), phone(primary, shipping, billing, etc), and email should be displayed.

Postal Address

The user should be able to add the new postal addresses and can also be able to remove/expire any postal address. For the shipping destination address, the user can be able to mark the default address if there is more than one shipping destination address. 
There should be a way to record address line 1, address line 2, zip/postal code, city, state, country, and purpose(billing, shipping, etc) while adding a new postal address.

Phone Number

The user should be able to add the new phone numbers and can also be able to remove/expire any phone number. There should be a way to record country code, area code, contact number, extension, and purpose separately while adding new phone numbers.

Email Address

The user should be able to add the new email addresses and can also be able to remove/expire any email.

Payment Method Information

User's previously used/saved payment methods should be included here. Users should be able to manage payment methods. Users can add new payment methods, can remove/expire payment methods, and can also mark as default. 

Credit card

One of the most common payment methods used is the Credit card. The user should be able to add/save valid credit cards along with the billing address. This will ease the checkout process where users can select previously used/saved credit cards for the payment. The user can add, remove/expire, and update credit cards. The user should be able to mark credit cards as default (if there is more than one) that should come selected in the checkout process.

Gift Card

The user can add, remove/expire, and update gift cards. The User should be able to mark the gift card as default.

EFT Account

The user should be able to add/save a valid EFT account along with the billing address. The user should be able to mark the EFT account as default.

Shipment Method Defaults

To further ease out the checkout process for the registered user default shipping methods can also be set based on the default shipping address. The default shipping address and default shipping method should come selected in the checkout process to make the process easier and fast.

Loyalty Programs

To increase customer retention, purchase frequency, and engagement of the existing customer  Reward/Loyalty programs on an eCommerce platform are becoming very popular. Information on all such programs specific to the logged-in users should be listed on the user profile. The user should know their rewards earned so far. Show a clear path to higher tiers and rewards. How to redeem/use rewards etc. When these earned points/rewards are going to expire if not redeemed will also be included.

Subscriptions

The user should be able to see their subscriptions if they subscribed to any newsletters. There can be different newsletters e.g. new product arrivals, product tips newsletter. There should also be an option to unsubscribe.

Surveys

To improve the services and shopping experience user's feedback is very important. All modern eCommerce systems are now more focused in this direction. They are conducting quick surveys and also connect with different other ways to get feedback. Generally, these survey links are sent on the registered email. The User should be able to see these surveys and can also participate in the surveys which are intended for him from the profile page as well.

Communications

This includes all the email/SMS communication sent to the customer. It can be related to order notifications or can be other feedback related notifications. It is always helpful to keep track of these system notifications.

Order History

The user should be able to see order history with the current status. Full detail of any order from history should also be accessible. There should be an option to track the active order with a timeline.  There should be an option to cancel the complete order or the partial order(few items) if the order processing is not started yet.

Return

The User should also be able to initiate the partial as well as full return.

Catalog

Product Navigation

Maybe the most significant part of an online store is its navigation system. Users should have the ability to browse among different categories and products quickly through an intuitive navigation system. The categories of the products that are listed on the site should be well organized and give users the ability to swiftly navigate between different product categories.

Searching, Sorting, Filtering

Search
The ability to search an eCommerce website is very important because many online buyers have specific items that they are looking for. The search capabilities enable users to find the desired products quickly from the available catalog. The search should be powered with autocomplete suggestions. Autocomplete suggestions help to narrow down our search, minimize the risk of misspellings, and speed up the entire search process leading to accurate results in less time. It provides accurate and fast suggestions that let the user find a product of their choice instantly. It provides a genuine boost to the conversion rates because people can search and find the exact product they need with minimal effort.

Filters or Faceted Search
A handy set of filters allows you to minimize the distress of decisions and helps shoppers when they search for the right product. It's a great way to provide valuable information about your product in an easy to browse format which makes it easy for the shoppers to browse, filter, and shop based on their specific choices. It presents your catalog in the most relevant way before your shoppers. 

For example, shoppers can filter products by the following options-

  1. Style
  2. Color
  3. Size
  4. Price
  5. Brand

Sorting
The User should be able to sort the products based on different methods. Some of the methods are-

  1. By relevance
  2. By Price Low to High
  3. By Price High to Low
  4. New Arrivals

The better the top products, the greater the site's sales. At the same time, if the products on top of the list do not appeal to users, they will not be willing to see the rest of the products. Product sorting determines what products should be put on top or at the end of the list. Therefore, a default sorting method is necessary for putting the best products on top of the list.

Feature Products

The homepage is the most visited place in an eCommerce system. It's the page where the shoppers start looking at the storefront. There should be an option to feature products on homepage. Featured products drive attention to specific items in your store and assist you to reach so many goals.

Featured products can be - 

  1. Best selling products
  2. Products from different categories to showcase your assortment.
  3. New Arrivals
  4. Best Deals

Feature Categories

Similar to featuring products there should be an option to feature the categories on the home page. It drives attention to specific categories in your store.

The feature categories can be-

  1. Popular Categories
  2. Season Specific Categories
  3. Categories offering discounts

Cross-Selling

There should be a way to cross-sell products on the eCommerce platform.

Cross-Selling is a sales tactic aimed at generating more sales by suggesting additional, related, or complimentary items to a buyer who's already committed to making a purchase. You "Customer also bought" or "Frequently bought together" products can be seen on almost every eCommerce storefront. It's also about offering a valuable service to shoppers by helping them discover other products they might want or need and providing a positive shopping experience. This is why cross-selling for e-commerce is an effective, profit-increasing tool for every online seller.

Benefits of cross-selling-

  1. Larger order size and profits
  2. Increased customer value
  3. Improved customer experience

Best practices include-

  1. Recommend the accessory required for proper operation or use of the product purchased.
  2. Bundle related products so the customer doesn't need to look for necessary components or accessories.
  3. Offer a discounted price on a bundled product offer to encourage immediate purchase with temporary price savings.

Upselling

There should be a way to upsell products. Implementing product upsell in the eCommerce system increases sales and deepens your relationship with your customers.

Upselling is simply the act of offering your customers a better (more expensive) item when they add a product to their cart or reach the checkout page. Upselling is the practice of encouraging customers to purchase a comparable higher-end product than the one in question. Upselling often employs comparison charts to market higher-end products to customers. Showing visitors that other versions or models may better fulfill their needs. So for example, if a customer is buying a laptop and you're using visual prompts on the product page or during checkout to entice her to also purchase a 5-year warranty, that's upselling.

Compare Products

There should be a way to compare products on an eCommerce platform. Many customers want to view products side by side, compare them across multiple data points, and pick the best for their needs.

Category Page

Unless a visitor to your site enters through a specific product page through a search, they will typically come through a product category page first. Every category page should provide whatever information about the products is necessary to entice visitors to click-through to the products themselves. The category page should consist following-

Products
Products should be listed with the default sorting option. Product information should be concise and should include product name, short description, the price, the discounted price, bank offers, rating, and review counts.

Pagination
Top products based on the default sorting option and page size should come first and then the remaining products using pagination.

Filters
Users should be able to filter the products within the category.

Sorting
Default sorting should be there. There should be different sorting options to ease out the selection. Common sorting options are -

  1. By relevance
  2. By Price Low to High
  3. By Price High to Low
  4. New Arrivals

Subcategories
There should be the subcategories tree to further narrow down the result and navigate to the selected subcategory page if possible.

View Product Detail
The user should be able to navigate to the product detail page.

Add to Wishlist
The user should be able to add the product to the wishlist.

Add To Compare
The user should be able to add products for the comparison.

Product Detail Page

The product detail page should give complete information about the product and leads toward the checkout. The information should be well structured and should be presented really well to increase the conversion. Information/actions on the product detail page should comprise-

Product Information
This should include product name, description, price, offer price

Product Images
This should include the main image as well as alternate images.  

Product Videos
The practice of including video elements in the digital assets strategy has risen so dramatically that videos have become an essential part of the product detail page.

Variant Selection
Users should be able to select different variants.

Product Ratings and Reviews
All the product reviews with ratings should be listed. The user who purchased the product can only share his review.

Question Answer
All the previously asked questions and answers should be listed. There can also be some predefined questions and answers to make proper clarity to the user. There should be support where users can ask queries around the product.

Delivery and Installation
Option to check if the product can be delivered to his place by entering his pin code and the approximate delivery time. Information about the installation service if provided should be there.

Bank and Exchange offers
All the available bank and exchange offers should be listed.

Cross-Sell and upsell products
Associated cross-sell and upsell products should be listed.

Recommended Products
Recommended products should be there.

Add To Wishlist
Users should be able to add a particular product to the Wishlist.

Add To Cart
Users should be able to add a particular product to the shopping cart.

Buy Now
Users should be able to check out the product directly.

Seller Page

All the products of a particular seller should be accessible to users. Product detail should be similar to the category page.  There should be filters to refine the products list offered by a particular seller.

Tag Cloud

Users should be allowed to add tags for a particular product. Efficient search always increases sales and product tags and improves search by providing additional ways to identify products. The process of tagging products consists of assigning keywords or phrases to products that they are easier to find within your e-commerce.

Special Offers

Users should be able to check the available promotions and discounts offered.

Product Referral / Tell a Friend

Users should be able to recommend the product to their friends. There should be a support to send an email/SMS notification with the product detail page link. There can be referral strategies for an eCommerce system. Referral strategy or incentivizing your current customers helps you encourage your satisfied customers to take action and recommend products to friends who might be looking for similar products.


Shopping List

Shopping lists are collections of desired products saved by customers to their user account, signifying interest without immediate intent to purchase. So this allows shoppers to create personalized collections of products they want to buy and save them in their user account for future reference. It's an easy way to remind themselves of a product and help merchants Shopping lists gives customers an easy way to remind themselves of a product and helps merchants measure product interest.

Create

Users should be able to create as many shopping lists as they want. There can be different types of shopping lists- Wishlist, Automatic re-orders, Frequent  Purchases, etc.

Edit

The user should be able to update the shopping list name, type, status (active or not), etc.

Shopping List Items

Add

The user should be able to add products to the selected shopping list.

List

The User should be able to see all the items added in a  particular shopping list. Item detail should consist - Product Name, Product Image, Unit Price, Quantity and Total Price

Update

The user should be able to update the quantities of the added product. 

Remove

The user should be able to remove the selected item from the shopping list.

Add To Cart 

The user should be able to add products from the shopping list to the shopping cart.

Shopping Cart & Checkout

Cart

The Shopping Cart in eCommerce assists the shoppers in their purchasing.

Cart Items

Add

The user should be able to add products into the cart.

List

The user should be able to see all the items added in the cart. Item detail should consist - Product Name, Product Image, Unit Price, Quantity, and Total Price.

Update

The user should be able to update quantities.

Remove

The user should be able to remove items from the cart.

Recalculate Cart

The cart should be recalculated after any update, especially when promotions are applied or applied promotion is changed.

Empty Cart

The user should be able to remove all the added items from the cart.

Save for later

During the shopping, if the user changed his mind after adding the product into the cart, then there should be an option to save the product for the later reference. In its simplest users should be able to move products from cart to shopping list. Users should be able to access the saved products. This feature helps users to easily bookmark the products and helps merchants to minimize cart abandonment to some extent.

Promotion / Coupon Codes

List

There should be some way to check the available public promotion codes with its detail.

Apply

Users should be able to apply the valid promotion code.

Update

Users should be able to change the applied promotion.

Remove

Users should be able to remove the applied promotion.

Shipping Address

Select

All the previously added shipping addresses of the logged-in user should be listed so that users can select. It will ease out the process.

Add

The user should be able to add new shipping addresses.

Update

The user should be able to update the selected shipping address.

Split Shipment By User

A split shipment is when a single order containing multiple products is sent in separate shipments. If the customer needs to send different items to different locations he/she may want to split up a single large order into separate shipments. Customers can place a separate order in such a scenario but it may be easier for customers to purchase gifts in a single order especially during the holidays. This feature will allow users to divide the products from the order into different ship groups. Select shipping address, shipping methods, shipping instructions, gift message if it is a gift for each shipment.

Shipping Methods

Shipping methods with the shipping charges and the estimated delivery date should be listed so that the user can select the appropriate one. To charge customers the exact shipping amount the shipping rates should be pulled in real-time from the carrier based on the delivery address and preferences.

Split Shipment User Preferences(for backend)

Sometimes eCommerce companies split the deliveries to accelerate the delivery or may be due to their own advantages. Some of the reasons for this can be - 

  1. The products ordered are currently in different warehouses.
  2. Items won't fit in a single package.
  3. Items shipped by different companies.

Though it's a common process nowadays it can lead to higher shipping costs for the customer, so there should be an option so that he/she can set his preference whether he/she wants to allow split shipment or not. The preferences can be-

  1. Ship all items together
  2. Ship items when available


Shipping Instructions

Users should be able to enter special instructions regarding the shipment.

Gift

There should be an option to mark if the purchased product (the shipment ) is a gift. This will allow users to mention gift messages. There can be gift wrap that can be chosen by the customer or it can be the default.  

Payment Options and Methods

Multiple payment options should be offered to customers while making payments. Payment methods can be - 

  1. Credit Card
  2. Debit Card
  3. Internet Banking
  4. Paypal
  5. Worldpay
  6. COD
  7. Gift Cards
  8. EFT Account


Add

The user should be able to add credit cards, gift cards, and EFT accounts.

Update

The user should be able to update credit cards, gift cards, and EFT accounts.

Split Payment with Gift Card

This feature will allow users to pay with both Gift cards and other forms of payment(credit card, debit card, etc).

Single Use Credit Card/ Gift Card / EFT Account

This feature won’t force customers to first add a payment method (credit card, gift card, EFT account) then choose one of them to proceed ahead. Though the saving payment methods ease the process for returning customers, there might be users who don’t want to save their cards. So there should be an option to proceed without saving/adding cards etc during the checkout where the user can enter information regarding the payment method for the single purpose only without saving cards.

Review and Submit Order

This will allow the user to review the complete order detail before submitting it. 
Order detail should consists-

  1. Order Information
  2. Payment Information
  3. Shipping Information
  4. Order Items
  5. Subtotal
  6. Promotion applied
  7. Shipping & Handling Charges
  8. Sales Tax
  9. Grand Total

Order Confirmation

Once the order gets placed successfully, the order confirmation page should appear. It should consist of complete order detail with Order ID.

Miscellaneous

Contact Us

There should be a contact us form which enables the user to contact the eCommerce company for their queries if required.

Conclusion


  • No labels

3 Comments

  1. Ravi lodhi This looks like a great start. Though I think that it is more of "Headless Commerce Requirement Specification" (may be we could relabel) it. I think it would be great to hava a separate "OOTB OFBiz eCommerce Feature Set" document for reference to be able to define API roadmap and quick start implementation. WDYT?

    1. Mridul Pathak  Thanks for reviewing and providing your valuable suggestions. Agreed, this document is more leaned towards the general eCommerce requirement specifications. I will relabel this document as you mentioned and will create a separate document to list the OOTB eCommerce feature set. It will definitely help in defining the API roadmap to quick-start implementation.

  2. Mridul Pathak I have prepared the WIP: OOTB OFBiz eCommerce Feature Set document and started defining WIP: Headless Commerce (OFBiz) - API Roadmap using the same. Please review the documents and provide your valuable suggestions.

    Thanks!