Chapter 1 : The Basics – What is Hybris?
Hybris is an ecommerce solution software that effectively meets the demands of modern Business to Business (B2B) and Business to Customer (B2C) commerce using Omni-Commerce. Omni-Commerce encompasses multiple payment options, seamless refund processing, with agile and dynamic transactions where customers research the product before finding a distributor.
The Origin of Hybris
Hybris is a German company that sells enterprise Omnichannel and product content management (PCM) software. It is now a subsidiary of SAP SE.
Hybris was founded in Zug, Switzerland, in 1997 by Carsten Thoma, Moritz Zimmermann, Klaas Hermanns, Christian Flaccus and Andreas Bucksteeg. It subsequently moved its headquarters to Munich, Germany. In 2011 private equity firm HGGC acquired a majority stake in hybris and merged Canadian software company iCongo into hybris.
SAP SE acquired hybris on August 1, 2013 for $1.5 billion. In 2018, hybris was integrated into the SAP Customer Experience division. Hybris customers have included General Electric, ABB, West Marine, COS, Thomson Reuters, 3M, Toys “R” Us, P&G, Levi’s, Nikon and Johnson & Johnson.
- Hybris is open source, mobile friendly, and supports integration.
- Hybris is built on Spring Framework and takes advantage of these Spring Framework features.
- Dependency Injection (Inversion of Control)
- Aspect Oriented Programming
- Spring MVC
- Spring Security
- Hybris is not a tool, nor is it a framework. It is a platform. Here is why.
- We can build complete end-to-end solutions using Hybris.
- It has application servers, databases, backoffice UIs, and more.
- It handles Inventory management, promotions, checkout, catalogs, product import, and more.
Hybris is not one product but a product family. The Hybris family of products include Hybris Marketing, Product for Services (C4C), Hybris for Billing, and Hybris SAP Commerce. This course will focus on the Hybris SAP Commerce product.
SAP Commerce is a collection of Java modules. These modules contain several extensions to complete a set of common functionalities.
- Platform Module contains 50-70 extensions
- Commerce Module contains 50-60 extensions (price, promotions, coupons, etc)
- Product Content Management Module (PCM)
- Channel Module / Customer Management System (CMS)
- Order management module (OM)
- On top of these are accelerators. The most common modules are B2C and B2B
- Every accelerator is delivered with source code that acts as a template.
- It comes with sample data, functioning store fronts, and best practices which speeds up your implementation even more.
- The standard use case of an accelerator may already fulfill a reasonable percentage of your requirements. Otherwise, they can be customized to any degree.
- The accelerator design is Omni-Channel from the ground up. It ensures that the customer is connected across all touchpoints.
- All shared functionality has been moved into a core library (core lib acc) which is required for the other more focused accelerators.
- After selecting an accelerator template as a starting point, you can add new functionality to the accelerators by adding various localextensions.xml file
- Rebuild and restart the SAP Commerce Cloud server to update the system
- Multiple B2C and B2B instances can be run on the same server. Their storefronts and catalogs can be managed seperately inside the Cockpits and Backoffice.
B2C Accelerator features
B2C functionality discussed here is shared in all other accelerators. Other accelerators include additional functionality.
- Price, stock totals (real, fake, hidden, quantified, etc), add to cart
- Buy online and pick up in store (BOPIS)
- Checkout, express checkout, and guest checkout
- HOP (redirect to alternative payment processing (paypal for example))
- Search Engine Optimization (SEO)
- Shipping methods
- Cancel order
- Customize product
- Support ticket
- Write review, show reviews.
- Share products on facebook, twitter, etc.
- Manual suggested list (out of the box available), SAP marketing cloud Context driven services compatible
- Potential promotions
B2B Accelerator features
- Organization management
- Spend control
- Customer account management
- Volume and customer group pricing
- Order replenishment
- Order approval
- B2B specific checkout
- B2B advanced product search
- Future stock availability
- PunchOut functionality
- Allows B2B customers to peruse a supplier’s online catalog and save their items and cart as a requisition in their own procurement system.
- After the purchase is approved, the actual order is sent back to the B2B site for processing.
- In order to create and assign PunchOut credentials, B2B customers must already exist in the B2B Accelerator.
- Early Login (with Secure Portal Addon)
- Only registered users can browse a B2B site with Secure Portal Addon
- New registrations are approved by merchant (b2bregistrationapprovergroup)
- Early Login must be enabled per site in Backoffice (Required authentication checkbox)
- If Secure Portal is enabled, you can still skip the
- It is possible to customize password requirements using regular expression.
Mobile Accelerator features
The mobile website is no longer popular due to the already responsive HTML5 website that adapts well to mobile phones
- Mobile Support
- Mobile portal
- Mobile device detection
- Content management via WCMS Cockpit
- Ready to use templates
- Location based services
- SMS services
- Generation of 2D Barcodes
- Building Native App
- Fully integrated SDK for Android and iOS
- B2B and B2C Mobile App SDK
- Authenticated login using OAuth 2.0
- Product search
- List and grid views
- Single-step checkout
- In-app data validation
- Store locator
- Order history and details
- Barcode scanning
- Fully integrated SDK for Android and iOS
- Product import & enrichment (1 offer = 1 product, no offer model)
- CMS custom landing page (-department store)
- Order management (Consignment)
- Vendor user Management
- Vendor product approval
- Vendor content page approval
Project Delivery Framework
No two projects will ever be the same. Therefore, they will need to be managed differently. The scope, size, and duration of these projects will also vary significantly from project-to-project and business-to-business. Some projects are so large with so many dependencies and work-streams, they often need to be managed as programs. Others, however, are fairly small and self-contained.
There is a commonality, however, how all these projects hang together along with a set of practices that can be applied. Together these form the Project Delivery Framework.
There are a set of fundamental principles and practices that need to be understood for an SAP Commerce Cloud project before going into the detail of how each phase works. These are important across all phases.
- Variable Scope – Features can easily be swapped in or out, with a focus on delivering the highest value features first. If the unexpected occurs, low-value features can be deterred to the next release. This ensures the current release is delivered on time, on budget, and with high quality.
- Time-Boxing – Time-boxing ensures that time control is baked into everyone’s mindset from day one. It’s important that nothing is allowed to extend outside its time frame.
- Iterative Development (sprints) – The Realize phase consists of iterations called sprints. This is a Scrum term meaning mini analysis, design, build, and test activity cycles that are typically fixed at 2-3 week durations.
- Just-in-Time Requirement Analysis – In a nutshell, it is the process of discovering requirements as you go. Rather than being completed up-front then updated throughout the project with change requests, they are completed iteratively using a just-in-time approach during the project.
- Acceptance Criteria – These are agreed and signed off by the customer. The functional acceptance criteria are defined and signed off sprint-by-sprint. The non-functional acceptance criteria are defined and signed off during the Explore phase, then amended through change control during the Realize phase if needed. These acceptance criteria are then used as the basis for the customer’s user acceptance testing.
- Lightweight Change Control – Using an Agile approach that allows for flexible requirements during an ongoing project enables change to be embraced rather than resisted.
- Quality Baked-in – All testing activities must be identified from the start, responsibilities assigned and planned alongside all other critical path activities. These will cover all aspects of testing including functional, non-functional, exploratory, system integration, cross-browser, and cross-device testing.
- Empowered Customer Representatives – Fast, effective and efficient collaboration and decision-making are essential to the success of the project. Because requirements are elaborated just-in-time, there is a high level of communication required at all stages of the project.
- Cross-Functional Collaboration – Cross-functional collaboration is expected through the streams; project management, business, technical and quality management. Each of these streams has a corresponding owner on the project team and the customer side. This improves communication with the customer and underlines the importance of each of these perspectives.
- Continued Improvements – Retrospectives are a vital part of the project and occur at the end of every sprint, release, and project. This process of continuous improvement becomes embedded in the mindsets of the whole project team. Not only does this improve the ways of working but is also very motivational as it empowers the team to make positive change.
- Creative Design – Often there is a separate organization or design team responsible for designing and creating the user experience and creative designs for the user interfaces. The project team is responsible for taking these designs and integrating them with the back-end development to meet the overall requirements. Collaboration with customer, design team, and project team is crutial.
- Transparent Reporting – It’s essential that these real-time progress reports be shared with the customer and that the customer is educated so they can fully understand them. This builds trust from the start and avoids surprises later. If something is going off track early, it’s far better to tackle this together with the customer at the first signs, than hiding and hoping it improves.
The project delivery framework for SAP Commerce Cloud has been adapted and aligned with SAP Activate Methodology. Each of the phases is summarized for quick reference purposes. The five phases and high-level stream view is presented below.
- Prepare Phase – The where, why, how, and what of the project, including scoping, architecture, planning and costs.
- Explore and Realize Phases – The building of the solution, whether iteratively (for example, Sprints) or broken down into sequential design, build, and test sub-phases.
- Deploy Phase – The preparation and delivery of the solution into the live production environment.
- Run – This starts with the first deployment to production. It is a continuous work stream providing support and live operations management.
Releases and Iteration
A large project is often broken down into slices or increments called a ‘release’. The size of a release can vary depending on the context. An example would be breaking down a 12-month project into 2-4 smaller releases of relatively equal duration, with each release containing all the project phases.
The set of sequential phases would then start again with the next release. The initial up-front phase that assesses the project feasibility, business case, high-level scoping, and more, is often not required as the outputs of the previous Prepare phase are still valid.
Smaller releases can help to reduce project risk, improve time to market and give more immediate visibility to the business and end users. However, they need to be balanced with the overheads involved when starting and ending each release.