SYSTEMS INTEGRATION SAP & hybris Integration: Technical Considerations, Tips, and Best Practices John Brumbaugh Director of Commerce Delivery Edited by: Randy Kohl Senior Content & Digital Strategist SAP & hybris Integration: Technical Considerations, Tips, and Best Practices Table of Contents Overview .......................................................................................................................................... 3 Integrations Overview .................................................................................................................. 3 Asynchronous vs. Synchronous Integrations ......................................................................... 3 hybris Data Hub ............................................................................................................................ 4 hybris ImpEx.................................................................................................................................... 5 Product Management ................................................................................................................... 5 Pricing Data ..................................................................................................................................... 5 Configure, Price, and Quote ....................................................................................................... 6 Inventory (Stock) Management ................................................................................................ 7 Order Submission .......................................................................................................................... 7 Order Status Updates ................................................................................................................... 7 Conclusion ...................................................................................................................................... 8 Overview Many companies have spent years implementing and enhancing their SAP ERP systems to fit their custom business needs. Now, they are looking to extend those capabilities to add customer self-service and transactional ecommerce functionality. There are of course different enterprise-class commerce platforms available to help extend site functionality into these other channels, including the hybris commerce platform. As part of the SAP ecosystem, hybris is particularly well-positioned to help extend your ERP investment, but before moving forward with a hybris implementation, the first step is to plan out the integrations between hybris, SAP, and the other third-party systems within your application infrastructure. We’ve put together this document to outline some of the many technical considerations involved in this type of implementation, as well as offer guidance based on our own experience integrating these two powerful systems. Integrations Overview The typical commerce application architecture consists of four tiers: 1. The front-end (i.e. the customer view or presentation layer) 2. The commerce API layer 3. The ERP 4. External single-purpose applications The front-end and commerce API layers typically reside within the commerce platform in hybris. hybris includes capabilities to provide multiple front-ends to the commerce infrastructure, leveraging hybris’ OCC (Omni Commerce Connect) layer and building native interfaces for each device through their native Android and iOS APIs. There are many different ways to integrate the commerce API and the front-end, but we’ll table that discussion for another paper. Here, we’ll focus on the integrations between the commerce API layer, the ERP, and external single-purpose applications. These integrations lay the groundwork for the frontend integration. Integration between the commerce layer and external, single-purpose applications allows the commerce layer to easily display product, inventory, pricing, customer, and order data. The two approaches for this are asynchronous and synchronous integration. Determining which method to use for specific data points is an important decision, one that will ultimately impact the final commerce solution in a number of ways. Asynchronous vs. Synchronous Integrations The big question in any commerce platform integration is what data residing in SAP needs to be presented to customers in real-time versus what can be loaded asynchronously on a set schedule. Table 1 - Data Point Potential Integration Methods Data Point Product Data Pricing Data Inventory (Stock) Customer Data Order Status Data Order Submission Synchronous X X X X Asynchronous X X X X X X As you can see, many data point integrations can be either synchronous or asynchronous. These decisions impact everything about your commerce system, from application performance and scalability to customer satisfaction and functionality, so it must be a strategic decision that’s agreed to across all affected parts of the organization. Leveraging real-time, or synchronous, connections requires the SAP ERP system to remain responsive to customers at any time they would need access, including nights and weekends, which are typically prime maintenance windows, as well as be able to handle the load caused by exposing ERP data and capabilities to customers. hybris Data Hub Since the SAP acquisition of hybris, there have been numerous releases that target ways to leverage SAP infrastructure within hybris. One of the first was the hybris Data Hub. Based on Spring Integration technologies, thus vendor independent, the Data Hub is hybris’ preferred approach to asynchronously transfer data from one system into another. Leveraging the Data Hub requires IT organizations or their technology partners to build out their own data translations for different file types, but the framework that’s in place allows business or technology users to see the data in the middle state between the third party system and hybris to correct any data errors before they are introduced to the commerce platform. To simplify the integration between SAP and hybris, hybris has built pre-integrated connectors, allowing the data to flow from SAP directly through the Data Hub and into hybris. These connectors ease the integration between the systems, specifically for Product Master Data and Customer Master Data. The Data Hub leverages the SAP standard IDOC format to transfer data from SAP into hybris. Table 2 - SAP IDOC to hybris Translation SAP IDOC MATMAS LOISTD CHRMAS CLSMAS CLFMAS DEBMAS ADRMAS ADR3MAS COND_A04 hybris Item Type Product StockLevel • • • • • • • • • • • • • • Category Product Feature FeatureValue FeatureAssignment Category Customer B2BUnit B2BUnit Address B2BUnit Address PriceRow DiscountRow Description Product Data Stock / Inventory Information Product Attribution and Metadata Classification Hierarchy Classification Data Customer Data Customer Address Data Customer Address Data Customer-Specific Pricing (Pricing Conditions) Depending on the number of customizations within your SAP implementation, the Data Hub translations may need to be modified. But since this is starting with a solid base, the Data Hub will lessen development costs and time to market for asynchronous integrations between SAP and hybris. hybris ImpEx In addition to the Data Hub, hybris provides a CSV-based file format import mechanism called ImpEx. ImpEx allows IT organizations to load data into the hybris system through either the hybris “Hot Folder” mechanism or within the hybris Administration Console. Hot Folders immediately process data files and load the content into hybris. Leveraging the hot folder requires the technology organization to build an XML configuration file that translates the data from the CSV file into hybris equivalents. Each individual item type will need one or more translations, so leveraging the ImpEx format requires the IT organization to map data within hybris to load data from external systems for every different item type needed. The ImpEx file format contains three commands: INSERT, INSERT_UPDATE, and DELETE. The INSERT command will insert data into the hybris system only if that item doesn’t already exist based on its unique code. The INSERT_UPDATE command is an “upsert”, meaning the system will either update the current item, or create a new one depending on whether or not the data exists in the system. The DELETE command will remove the specific item defined in the file. Product Management The hybris platform provides a full Product Information Management (PIM) solution through their Product Cockpit. Known as PCM, or Product Content Management, this is an optional addition to the base hybris commerce platform. Most enterprises have already spent considerable time and resources structuring their product, attribution, and classification data within their ERP, so hybris provides multiple ways to load data into their system, the ImpEx file format or the hybris Data Hub. PIM can play an important role as part of a broader Master Data Management (MDM) strategy, which can drive organizational efficiency and improve the customer experience. For more information on this topic, download our paper on Leveraging PIM to Support Your MDM Strategy and read our case study on agricultural equipment manufacturer AGCO. Pricing Data One of the major differences between B2B and B2C commerce is how pricing data is handled. In the B2C world, it is standard to see one base price for all customers, with pricing changes being the result of promotions or sales. Within B2B, often customers have unique negotiated prices based on numerous different business factors. These pricing conditions are typically written and developed within the ERP, and need to be presented to customers consistently through online and offline channels. So, what determines which pricing method to use? In B2C scenarios, it’s more efficient to load prices into the commerce platform (i.e. hybris) where promotion management is stronger and more flexible than in the ERP. When a promotional price is needed, the commerce platform will calculate the price, assuming the predefined conditions are met based on customer or current shopping cart data, and pass it back to the ERP as metadata with the order. In B2B scenarios, a lot of time and money has already been spent customizing the ERP to make sure prices are handled correctly for all customer orders. Every organization has spent time building custom pricing conditions that dictate prices to individual customers, but now organizations need to allocate more resources to ensure consistent customer pricing is presented regardless of channel. The determination of whether to use asynchronous or synchronous pricing comes down to two key questions: How often do prices change? and How difficult is it to export prices from the customized SAP implementation to hybris? If an organization’s prices don’t change often and it is relatively easy to run and export pricing conditions, we would recommend using an asynchronous integration to load prices into hybris. Prices in hybris can be loaded against customers, customer groups, or just the products themselves. Having the prices solely within hybris reduces the load on the ERP, the need to maintain 24/7 ERP availability, and increases page load speed, which positively impacts customer experience and conversion. If an organization has complex pricing conditions and they cannot be easily exported from SAP, a real-time (synchronous) integration is necessary. The trade-off in this scenario is the ERP will need to be able to withstand the additional load caused by customers coming to your commerce site and accessing pricing. In the past, relatively lengthy ERP response times were acceptable. However, integrating a customer-facing commerce solution like hybris requires exceptionally fast response times, in the sub-two-second range, in order to meet customer expectations. So what do customers with complex pricing rules do? Many SAP customers leverage the SAP Internet Pricing Configurator to display pricing to customers and customer service representatives across applications like SAP ECC, SAP CRM, and even hybris. Other options include not displaying prices until the product is added to the cart (which we would only recommend in select scenarios), and then running a synchronous call back to the ERP to run an Order Simulate, which will execute the order calculations within the ERP and provide them back to the commerce system through a web service call. Configure, Price, and Quote Historically, one of the more difficult things to integrate from the ERP into the customer-facing web site has been the ability to create custom configurations for products, price them appropriately, and then notify the warehouse/plant what parts need to be combined together to build the final product. Probably the most high-profile consumer site that leverages this functionality is Apple.com, which allows customers to configure MacBooks, iPhones, iPads, etc. before purchase. To help businesses bring these capabilities to their customers through the hybris commerce suite, hybris and SAP released a module called SAP Configure, Price, and Quote. This module leverages the SAP Solution Sales Configuration (SSC) plug-in for hybris, which integrates SAP Variant Configuration into the hybris B2B Accelerator. The SAP CPQ module provides new, customizable CPQ WCMS components, an SAP-to-hybris Data Loader, which can be triggered directly from the hybris Management Console and used to load product model data from an existing SAP Knowledge Base, including customizing data required for pricing, and the ability to add the customer’s final selections to the cart, which can then be placed within an order or quote. Inventory (Stock) Management After pricing, displaying inventory (stock) data through the website is the most complex decision from both an integration and user experience perspective. From a user experience perspective, the decision focuses on where you first need to display inventory information to the customer, if at all. If displaying inventory, this is typically done on the product detail page. But from a system architecture perspective, what are the inflection points that can drive the decision in one direction or another? The major inflection point is how the available to purchase (ATP) number for the product is determined and the number of warehouses (or stores) from which the product could be shipped. If the ATP calculation is extremely complex and requires a lot of time, it is best to push this to the end of the ordering process (i.e. the shopping cart) and not display this information up front. Additionally, if the business exchanges inventory between warehouses or stores, it’s also best to push the in stock calculation to the end of the ordering process. If inventory (stock) numbers will not be shown on the product detail page, the most common place to leverage inventory data within the ordering process is during order creation. Within the cart, many businesses choose to display whether a product is available or backordered, but not provide details regarding how many individual units are in stock. It is a common business practice to notify the customer before an order is submitted, if it cannot be fulfilled in a timely manner. So, hybris will make a call to SAP to determine (1) if the product is available and (2) if not, the estimated shipping date. The estimated shipping date should not be calculated within the commerce system. hybris should be fronting the data from the ERP and the WMS. Order Submission The final step in the ordering process is the submission of the order from hybris to SAP. If a real-time integration for pricing or inventory data has been created, it is a best practice to also submit the order from hybris to SAP in real-time. Otherwise, it is best to submit orders to SAP asynchronously. An asynchronous order submission doesn’t mean that the order will not get to the ERP in a timely manner, but it does allow for the hybris system to take the order and respond to the customer a lot quicker. Within the hybris system, a cron job can be scheduled to run every minute (or less) to check for newly submitted orders, and then submit them to SAP through either a file-based replication or a direct web service call. This also provides the ability to create a “buyer’s remorse” period, or a short window of time in which the order can be cancelled before it is sent to SAP, at which point it becomes much more difficult to cancel, without customer service agent assistance. Order Status Updates After the customer has placed an order, getting detailed order information is the most common customer need. In B2C scenarios, customers are often trying to learn where the product is in the shipping process, or obtain their tracking number to determine the delivery date. B2B customers also want this information, but additionally they want to know whether or not their product has been allocated for shipment, if it’s been assembled, or if there is a hold in the process for some reason. All of these different statuses used to require the customer to call a customer service agent, but that is no longer the case. hybris enables the display of order status information from SAP, within the Order History section. As products move through the various plants and warehouses, they all have internal statuses saved within the ERP or WMS and most of those statuses don’t mean anything to customers. Since customers wouldn’t understand the internal status notifications, the first decision that needs to be made is what order statuses should be shown to customers. From there, it becomes a technology decision to determine the best way to deliver status information from the back-end to the front-end. There are two frequently used options: a real-time web service call from hybris to SAP or a batch data-load with replication of data from SAP to hybris. There are trade-offs to both approaches. In the synchronous real-time exchange of information, hybris is reliant on ERP availability whenever a customer checks order status. Whereas in the data replication model, there is a chance the data can become out of sync. The decision point on this normally comes down to how soon after an order status change do customers need to be notified, and what system is best to push either email or mobile notifications. If push notifications are required, it is probably best to replicate the data, because that will provide control over all customer-facing data within a single system. However, if push notifications aren’t required, real-time web services should be used to provide order status to customers. This provides transparency, which improves customer satisfaction and reduces the load on customer service agents. Conclusion SAP and hybris form a powerful combination, enabling organizations to create robust digital commerce experiences that simplify existing commerce channels, unlock efficiencies, and open up new opportunities for growth. To make this happen, the systems need to be tightly integrated, and to a large extent these integration decisions need to be driven at an organizational level to determine what makes the most business sense. Among the key things to consider are making use of existing datasets whenever possible to avoid duplication of effort and unnecessary complexity, and leveraging the strengths of each system to form the best possible business and customer experience. Of course, the technical considerations involved in integrating SAP and hybris are many, and this paper only serves as the tip of the iceberg. Still, we hope you found the information contained here a valuable starting point toward a deeper discussion within your organization. Should this spark additional questions, please don’t hesitate to contact us at hybris@gorillagroup.com.