Finding cross-selling opportunities is a crucial task that challenges many companies. The R/3 Sales and Distribution (SD) module provides a comprehensive cross-selling functionality that can help any business boost its sales.
Key Concept
Cross-selling is a consumer sales promotion technique through which a company attempts to sell a product to a customer that is related to another product that the customer already bought or uses. Cross-selling can also make it more convenient for the customer to shop for related items. The cross-selling functionality in R/3 prompts a dialog box upon sales document entry, displaying a list of items that the user can suggest to a customer. You can set it up so that a dialog box is triggered automatically by an addition of a new line or manually via a functional button at the bottom of the sales document entry screen. The list of items that is displayed in the dialog box can be determined via "fixed" allocations, whereby a set of master data condition records is maintained linking relevant products, and through the use of product proposal functionality that uses customer order history and general buying patterns.
Step 1. Configure the condition technique. Those already familiar with the inner workings of the SAP proprietary concept known as "condition technique" should find the steps detailed below quite familiar. Although the term is most often used in relation to pricing functionality within R/3, it is also utilized in a variety of other areas, including output determination, material determination, and cross-selling. Refer to the article "Condition Technique: Meet Complex SC Pricing Requirements More Easily" by Mitresh Kundalia in the SCM hub of SAPexperts for a more detailed explanation of how the condition technique works.
In reference to the cross-selling functionality of R/3, the condition technique can be used for the maintenance of "fixed" rules. For example, whenever a customer buys a CD player he or she should also be offered the option to purchase a pack of batteries.
Note
Steps such as the maintenance of condition tables and access sequences require cross-client changes, which means that you have to perform them in your primary development client from the start.
Follow the IMG menu path Sales and Distribution>Basic Functions>Cross Selling>Define Determination Procedure For Cross Selling or simply use transaction codes OV40 through OV47 to access the individual configuration steps directly. Start by defining all the necessary condition tables. While creating a new condition table, make sure to assign it a number that is within the customer number range 501 through 999. Figure 1 provides an example of a custom condition table 510 that has two fields as part of the key, Sales organization and Material. Proceed to the maintenance of the field catalog (transaction code OV40), if the field that you would like to use as part of the condition table key is not in the list of available fields.

Figure 1
Create a Condition Table
Once all the necessary condition tables have been defined, create an access sequence (transaction code OV41). Use a four-character/-digit abbreviation that starts with either a Y or a Z for the name. Assign all the relevant condition tables to the newly- created access sequence, putting the more specific condition tables above the less specific ones. Figure 2 shows an example of a custom access sequence Z001.

Figure 2
Maintain an Access sequence
Once the access sequence has been created, maintain the custom condition type. Use transaction code OV42 for quicker access. The configuration here is very basic. Give the new condition type a name within a customer namespace (starting with either a Y or a Z), provide a helpful description, and assign the relevant access sequence that this condition type should use. Refer to Figure 3 for an example of a condition type ZS01.

Figure 3
Define a condition type
Lastly, proceed to the definition of the procedure by using transaction code OV43. Following the same logic, create a new procedure by providing a description and a name within the customer namespace, and assign all of the relevant condition types. Figure 4 demonstrates an example of a custom procedure ZS0001.

Figure 4
Maintain a Procedure
Step 2. Create a product proposal. Some of the features of the dynamic product proposal functionality can be incorporated into the cross-selling configuration as well. In a nutshell, various function modules can be used to pull historical sales data in R/3 and come up with a list of possible cross-selling opportunities. For example, we can use product proposals to map the now-famous "Customers who bought this item were also interested in…" business process.
Note
It is important to differentiate between dynamic product proposal and cross-selling functionalities. Dynamic product proposal functionality is based on the customer and can be activated immediately after the sold-to number is entered and processed within a sales order. For example, the sales personnel can be presented with a list of items that the customer has purchased in the past. Cross-selling functionality, on the other hand, is based on material and is triggered right after a particular material is entered and processed as a line item. Keep this in mind while designing a cross-selling solution in R/3.
Follow IMG menu path Sales and Distribution>Basic Functions>Dynamic Product Proposal>Define Product Proposal Procedure and Determine Access Sequences. I'll use the standard product proposal procedure CSPV1. Figure 5 displays the configuration behind it.

Figure 5
Define a Product proposal procedure
Function module SD_DPP_CROSS_ SELLING is used to come up with a list of the most popular item combinations. For example, you can determine that when customers bought a personal computer they also bought a monitor 85 percent of the time. Note the FM attributes assignment of CROS. This refers to an identifier that was assigned to a particular listing that was generated through the companion sales analysis functionality in R/3.
To generate a list through the companion sales analysis, proceed to transaction code SDVK. The name of the program is SDCRSL01. Once the report is executed and completed successfully, it generates a list of companion sales items. Refer to Figure 6 for an example of the selection criteria for this report.

Figure 6
Companion Sales Analysis selection criteria
As mentioned before, the Identifier field in the selection criteria corresponds to the FM attributes assignment in the configuration of the product proposal access sequence and is physically saved with the results of the companion sales analysis. This is how the product proposal access sequence knows which results to look at to produce a list of possible cross-selling opportunities. The companion sales analysis report should be executed periodically to update the listings that are used by the product proposal functionality.
Note
Due to the type and amount of data that the companion sales analysis is reading, this report can experience extensive runtimes. Consider running the report in the background.
The results of a typical companion sales analysis run are displayed in Figure 7. Generally speaking, the report reads sales documents (table VBAK) and corresponding line items (table VBAP) and determines the combinations of materials that show up in a single sales document together most frequently. The Sup. (%) column displays the percentage of time that a particular combination appeared in a sales document as compared to all sales documents that were captured during the analysis based on the initial selection criteria. The Conf. (%) column displays the percentage of time that the second material was also requested whenever the first material was purchased. For example, Figure 7 provides the information that the Headphones and CD Player combination existed in 50 percent of all orders analyzed. It also shows that whenever headphones were purchased, a CD player was also purchased on the same order 100 percent of the time.

Figure 7
Results of the Companion Sales Analysis
Step 3. Maintain the configuration of the cross-selling profile. If necessary, you can specify the cross-selling functionality for the customer or sales document type. Several keys must be defined that will be used later during cross-selling profile determination. Follow the IMG menu path Sales and Distribution>Basic Functions>Cross Selling>Maintain Customer/Document Procedures For Cross Selling. If necessary, define a number of valid keys for customers and sales document types. Sales document types can then be assigned to the relevant keys in the same place in the IMG. The customer key is assigned to each individual sold-to party in customer master data.
To define and assign a cross-selling profile, proceed to IMG menu path Sales and Distribution>Basic Functions> Cross Selling>Define and Assign Cross-Selling Profile. Figure 8 shows an example of a custom cross-selling profile. Start by giving the new profile a name within the customer namespace (starting with a Z or Y) and an informative description. The Product proposal procedure assignment allows the use of the companion sales analysis. The Cross-selling procedure assignment allows the use of the "fixed" rules, where the cross-selling combinations are physically maintained in condition records. You can use the Pricing procedure assignment to use a different pricing procedure on the items that were added to the sales document as a result of the cross-selling functionality. Use the next two indicators to determine how you want the cross-selling pop-up window to be displayed in a sales document and whether availability (available-to-promise [ATP]) should be considered during the cross-selling execution.

Figure 8
Define a Cross-selling profile
Once the cross-selling profile has been defined, proceed to the assignment configuration step at the same location on the IMG menu path. Figure 9 provides an example of an assignment.

Figure 9
Sample Cross-selling profile assignment
Step 4. Put cross-selling into action. To maintain "fixed" rules for cross-selling items, proceed to the maintenance of cross-selling condition records by using either SAP Easy Access menu path SAP menu>Logistics>Sales and Distribution> Products>Cross selling>Create or use transaction code VB41. Figure 10 demonstrates a possible entry in one of the condition tables: A customer will be offered batteries whenever a CD player is purchased. The UoM column can be used to force a particular unit of measure on the material that is being added to the sales document as a result of the cross-selling functionality. You can use the Cross-Selling Delivery Control column to determine whether the delivery of the added item is possible without the delivery of the original item.

Figure 10
Maintain a Cross-selling condition record
To see it all come together, create a sales order and enter the CD Player material number as one of the line items. Upon pressing Enter, you should be presented with a pop-up window similar to the one shown in Figure 11.

Figure 11
aCross-selling functionality in action
Headphones are proposed as a result of the product proposal functionality through the use of companion sales analysis, while Batteries are suggested as a result of the condition record that was maintained manually. The user can then propose the items to the customer and either enter the necessary order quantity for each of the proposed items or cancel the cross-selling proposition altogether.
Anton Karnaukhov
Anton Karnaukhov is a senior IT manager at Pacific Coast Companies, Inc., in Sacramento, California. He earned an MBA degree at Heriot-Watt University and a BS/BA degree with a specialization in computer information systems at Western Carolina University. Anton has more than eight years of SAP implementation and development experience focusing on business intelligence and logistics modules in the manufacturing and resale industries.
You may contact the author at anton.karnaukhov@paccoast.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.