Build Your Own Cash Sales Application with SAP Build Leveraging SAP S/4HANA Cloud Extensibility
Background
Customers find sometimes missing functionality or processes in their SAP S/4HANA Cloud for Sales. Instead of creating a customer improvement request, it might be easier and faster to use extensibility to adapt your SAP S/4HANA Cloud solution to your individual business needs.
SAP Build and developer extensibility are great ways to build comprehensive extensions with only little technical skills.
In this blog, we will introduce you to an SAP Build use case for Cash Sales apps. SAP will provide you with an SAP Build template as a quick start, so that you don’t need to build your apps from scratch and only need to do customizations if your business requires them.
Note that SAP does not provide any support or maintenance for this template.
I hope you enjoy the blog and learn how easy it can be to build a complex process with SAP’s extensibility on specific capabilities.
Prerequisites
This is what you need to get started:
About Cash Sales
What is Cash Sales
The purpose of cash sales is to facilitate the selling and invoicing processes, especially for businesses that deal with sales transactions in stores. It allows companies to process cash sales transactions and generate invoices quickly and efficiently.
The template provided by SAP includes the Create Cash Sales Orders app (also referenced as the checkout app) and the Configure Default Settings app (also referenced as the settings app). Store Associates can use the Create Cash Sales Orders app to create sales orders. To ensure a smooth sales process, key users or store managers need to make some configurations in the Configure Default Settings app beforehand. We are calling the two provided apps in total the Cash Sales Apps. The configured default settings will be stored in the Persistency Layer – Default Settings.
The following images are the screenshots of the Cash Sales Apps UI examples provided in the template.
Figure 1: Main Screen of the Create Cash Sales Orders app.
Figure 2: Main Screen of the Configuration Defaults Settings app
Figure 3: Store details screen of the Configuration Defaults Settings app
Key Benefits and Values
The Cash Sales apps offer the following benefits and values:
- Faster transaction processing: Cash Sales helps businesses expedite the sales process by providing a user-friendly interface for store managers and associates to process sales and generate invoices quickly.
- Increased accuracy: By automating sales and invoicing processes, Cash Sales reduces the likelihood of human error in data entry and calculation, ensuring accurate invoices and reducing the risk of disputes or customer dissatisfaction.
- Real-time inventory updates: Cash Sales integrates with the company's inventory management system via outbound delivery, providing real-time updates on available stock.
- Enhanced customer 360° view: Cash Sales allows businesses to maintain a comprehensive customer database in the ERP backend. It also enables businesses to track customer preferences, payment history, and past purchases, leading to better customer relationships.
- Returns: In the store you can receive products from customers they want to return. The system will create a return order to manage the approval process and the refund of the customer request for the returned product.
Key Features
You can use the Create Cash Sales Orders app to do the following:
- Create sales orders: You can create a sales order for a one-time customer or a regular customer.
- Display sales orders, billing documents, or returns orders: You can display a sales order, billing document, or returns order by navigating to related apps through the Create Cash Sales Orders app, where you can search for the document, you want to display.
- Change sales orders: You can change a sales order by navigating to a related app through the Create Cash Sales Orders app, where you can search for the sales order, you want to change. Once you are in the sales order, you can change to edit mode.
- Create business partners (regular customers): You can create a new customer account by navigating to the Manage Customer Master app through the Create Cash Sales Orders app.
- Sell to one-time customers: You can enter one-time customers and their address directly in the Create Cash Sales Orders app.
- Check out with Invoice, Cash, or Payment Cards (via SAP Digital Payments): The desired payment method is chosen when invoking the checkout.
- Add serial numbers to a sold product: If a product has an appropriate serial number profile assigned in the product master data, one or more serial numbers can be recorded so that this information may be associated with the customer for future warranty or recall handling.
- Place a discount on certain products: You can manually place a discount (by percentage or amount) on certain items (if configured in the configure defaults settings app).
- Apps run on SAP Business Technology Platform and can handle high volumes of cash sales orders, making it suitable for businesses of all sizes.
Prepare Specific Master Data and Business Configuration for Cash Sales in SAP S/4HANA Cloud.
- You have at least scope item “Sell from Stock (BD9)” configured end-to-end plus the required downstream processes in finance.
- Required Authorization Settings for the User in the store of the Create Cash Sales Orders app:
- Authorization of the Role “Internal Sales Representative”
- Authorization of the Role “Shipping Specialist”
- Authorization of the Role “Billing Clerk”
- Restrict the above authorizations per store to the required organizational elements such as Sales Organization, Distribution Channel, Division, Plant, Shipping Point, Sales Group, Sales Office, Company Code, and others.
- For the restrictions look at the catalogs named in the communication arrangement
- Required organizational setup and master data:
- Evaluate whether you want to use a new distribution channel for your sales area focusing on store operation.
- Create a specific business partner for your one-time customers (CPD Accounts) if you want to allow your business to use this option. You can create for each store an individual one-customer if you need location specific settings or want to do specific analytics.
- Each store must be represented by a plant. You need to set them up and configure the plants for proper inventory management and ATP (Available to Promise) check.
- Create shipping points for each new plant that allows picking on storage location level directly in the outbound delivery (warehouse management is not supported for the Cash Sales apps).
- Taxation:
- Check that local taxation rules for the stores are set up properly in your SAP S/4HANA Cloud system. (e.g. Jurisdiction codes for US sales taxation, e.g. including integration to a taxation solution of a SAP Partner).
- Taxation in many countries is based on the address where the sales transaction is fulfilled. In a classical sales transaction, the tax destination country and/or tax jurisdiction code is derived from address to where the goods are shipped. This is not the case if goods are sold in a store. In a store transaction the store address is relevant for the taxation. You need to create for each of your stores a business partners representing the store’s ship-to address. Furthermore, you will have to store the business partner that contains the store’s address in the respective section of the Configure Default Settings app. During checkout, this business partner will be used as the ship-to partner in the sales order at checkout. To ensure the proper taxation handling, it overrides any ship-to partners that might be stored in the business partner that is representing your customer account in the sales order at checkout.
- Sales Pricing:
- Decide if and which discounting options you want to offer in the create cash sales order app. If you want to provide the option, check that the required condition types are part of your pricing procedure.
If you are using the standard pricing procedure for materials, you can maintain them in the configure default settings app. The maintenance of the condition types is optional. Depending on the maintained price and discounting options the create cash sales order app will hide or display columns in the list of sold products: - SAP pre-delivered sales pricing condition types that can be used
- PPR0: List/Store Price (must have in the Configure Default Settings app – price cannot be overwritten)
- PMP0: Manual Price: (Allow manual override of the list price)
- DRQ1: Absolute Discount for one sales unit
- DRN1: Percentage Discount:
- You can use other SAP pre-delivered or own condition types (if maintained in the pricing procedure of all sales areas using Cash Sales) as well (e.g. DRV1-Fixed Amount, PNP0 (Manual Net Price after Discounts). Use the SSCUI “Set condition types for pricing in sales (101120)” for this purpose if required.
- Customer specific sales condition types
- In case you create your own condition type you can improve the usability of the Create Cash Sales Orders app for the users by setting the “Plus/Minus” field in the configuration of the new condition type to “X – Negative”. This helps avoiding unintended surcharges when providing discounts in a sales order in the Create Cash Sales Orders app without entering the “-” character as the negative indicator for a discount.
- Sales Processing:
- If you are selling serialized products make sure that the serial number profile that is assigned to a serialized product is at least configured for usage in the outbound delivery.
- Billing Processing:
- Prepare automatic billing document printing in output management. If your store only has a single printer, the billing document (customer receipt) can be printed automatically with each transaction. Otherwise, the printout will need to be triggered manually at check-out.
- Create your own specific payment terms that will be used for cash and credit card checkout. The payment terms should be configured in the same way than SAP’s pre-delivered payment term “Pay Immediately w/o Deduction”. They should have a description so that on the printout of the it gets clear that the due amount was already paid (e.g. “Paid in Cash”, “Paid with Credit Card”). As a reference you can copy SAP’s pre-delivered Payment Term “0001” and update the fields “Sales Text” and “Own Explanation”.
- (Petty) Cash Account Determination:
- Prepare a petty cash account in finance if you allow cash as a payment method (e.g. 1001000 in Chart of Accounts YCOA).
- Create a specific payment term to indicate such transactions in the Create Cash Sales Orders app. This special payment term for the checkout with the payment method cash must be stored in the default settings app upfront.
- Configure the automatic account determination for cash settlement.
Set Up the Cash Sales Apps
Important SAP Build Capabilities
You can set up your own Cash Sales apps using SAP Build Apps in an easy and fast way, and then integrate it with SAP S/4HANA Cloud seamlessly. The advantages of using SAP Build Apps to implement your Cash Sales apps include the following:
- Enhanced user experience: SAP Build Apps provides a user-friendly interface that allows business users, with few coding skills, to easily modify, customize, and extend applications.
- Rapid application development: With SAP Build Apps, businesses can rapidly adapt and iterate on their application prototypes, reducing time-to-market and gaining a competitive advantage.
- Seamless integration: SAP products are designed to work seamlessly with each other. When integrated, the data from the Create Cash Sales Orders app can flow directly into SAP S/4HANA Cloud, eliminating the need for manual data entry or data synchronization.
- Scalability and flexibility: SAP Build Apps allows businesses to design and consume applications that can be easily adapted and customized to meet specific business requirements. Additionally, SAP Build
Import destinations into SAP BTP subaccount
Make use of preconfigured destinations incl. relevant settings. However, the URL needs to be set accordingly to your relevant system.
- Log on to the SAP BTP Cockpit Using an SAP BTP Account. You need to select one of the following URLs depending on your geographical location.
Follow this link For more information regarding subaccount login
- Navigate to Connectivity -> Destinations.
- Choose “Import Destination”
- Create destinations for each web services that you will use. For custom OData services for billing document create basic HTTP destinations. For the other web services, create OAuth2SAMLBearerAssertion HTTP destinations.
- Import all needed APIs:
- Update the URL of the destinations for each API to your SAP S/4HANA Public Cloud Backend system.
How to Set Up the Cash Sales Apps from the Template Provided in SAP Build
Once you have met the prerequisites described above, you can set up the Cash Sales apps on your device.
Set up integration with SAP S/4HANA Cloud by following the instructions in the Integration Set Up Guide.
Import of projects
- Download the Project MTAR as mentioned in the “Prerequisites Section” on top of the document.
- Go to SAP Build Lobby from the SAP BTP subaccount page (Services-> Instance & Subscriptions)
- Choose the import icon
next to the create button. - Choose browse file and double click on the projects “Persistency Layer-Default Setting App”, “[Latest] Default Settings”, and “[Latest] 2405 -Main App-UI Setting”.
- Choose the row with the project name and import.
Now, the project files in SAP Build are ready to configure further.
Testing the App in Preview Mode.
Call the Preview Mode by assessing the template via the SAP Build Apps - Lobby. Open "Create Cash Sales Order V1.x". Press the "Launch Icon" in the header. Open the "Preview Portal" and on next screen "Open Web Preview".
If the template was successfully setup in the previous steps you will see "Create Cash Sales Order V1.x" and the "Configure Default Settings V1.x" apps. You can start testing before you build and deploy in the next step.
Build and Deploy
- Go to launch tab on the top navigation bar in Build Apps Frontend project.
- Open build service.
- Create configuration for a web build (choose a target platform: SAP Build Work Zone)
- Add a name for your configuration and click on create button.
- Click on the 3 dots under the configuration you just created. Then, click on the Build.
- Build version number: 1.0.0 Runtime Version: Latest. Then, Build.
- Check the status of the build under Build history table. Build should not take more than 25 min.
- Once the status is delivered, click on it, and deploy.
- Choose the relevant endpoint and authorize. Your app is deployed.
Here is more info about Build and Deploy Web Applications in SAP Build Apps
How to Create a Tile for the Cash Sales Apps in the Fiori Launchpad
After you have deployed the web application to the SAP Build Workzone, you can add this application to Fiori Launchpad by creating a tile. Please find the step-by-step guide for:
Customize the Cash Sales Template
Adding your company’s logo - Adjust the Create Cash Sales Order App
- Within the lobby open your “Create Cash Sales Order” app to update the settings
- You will get forwarded to the design time of build apps (choose the resolution for web / Fullscreen)
- Choose the “Logo” image and upload your logo by choosing the below highlighted icon
Save your updates.