Linked Items enables any Custom Item in CPQ to automatically add additional Items to a Quote/Order, removing the need to specify every Item individually using the CPQ catalog.
Linked Items can either be Standard CPQ Items or Custom CPQ Items.
There is no limit to the number of Linked Items that can be added using this process.
Adding Order Items using Linked Items creates a connection between the Items, where the main Custom Item is the parent of all the Items that were automatically added.
First, you need to specify which Standard and Custom CPQ Items should be available to the Parent Custom Item as Linked Items.
This is done by editing the Parent Custom Item from:
Catalog Administration > Items > <CustomItemName>
Using the arrows, move Items from the list box on the left to the one on the right to make them available to your Custom Item.
You can search for a specific Item SKU using the ‘SKU Search’ text box.
The following templates have been updated for DriveWorks 21 to fully support the use of Linked Items.
If you have already implemented any of these templates in previous versions of DriveWorks and now wish to use Linked Items, you should create new versions.
Using this template is only required for Linked Items if you need to customize the ‘basket’ of your embedded CPQ orders.
See CPQ Embedded Order for more information.
This template has a dual purpose and is required by both your Parent Custom Item and any Linked Custom Items you wish to create.
See CPQ Custom Item Flow for more information.
This template has a dual purpose and is required by both your Parent Custom Item and any Linked Custom Items you wish to create. Import the ‘CPQ-CustomItem’ Form Template into your Custom Item Project in your Form Navigation. Most of the required functionality is included in the template, however some additional functionality must be added to your Project.
Depending on whether you are going to be using Standard Linked Items, Custom Linked Items, or both, please refer to the relevant sections below.
See CPQ Custom Item for more information.
To enable your Parent Custom Item to create Linked Standard Items, you need to implement the following functionality.
Create an ‘Export to Calculation Table’ document in Documents-Data with the following information:
Name: InsertStandardLinkedItem
Table: LinkedItemsToAdd
Fields: Add the fields in the following table:
Field Name | Field Type | Is Captured |
---|---|---|
Id | Normal | No |
ItemId | Control | Yes |
LinkedItemId | Normal | Yes |
PriceId | Normal | No |
Price | Normal | No |
PriceListItemId | Normal | No |
Description | Normal | No |
Quantity | Normal | Yes |
DiscountAmount | Normal | Yes |
ParentItemId | Normal | No |
SpecificationId | Normal | No |
Add one row to the table and create the following rules for the cells.
Rules:
Column | Rule |
---|---|
ItemId | DWVariableInsertStandardLinkedItemItemId |
LinkedItemId | DWVariableInsertStandardLinkedItemLinkedItemId |
Quantity | DWVariableInsertStandardLinkedItemQuantity |
DiscountAmount | DWVariableInsertStandardLinkedItemDiscountAmount |
Add a new specification Property with the following information.
Name: LinkedItemDataToAdd
Rule: DWVariableCSVLinkedItemsDataToAdd
To enable your Parent Custom Item to create Linked Custom Items, you need to implement the following functionality.
The Child Specification List added by the template requires modification to add other Custom Items as Linked Items.
Control Name: LinkedChildSpecList
Control Property to modify: Projects
Constant: OrderId Rule: DWVariableOrderId
Constant: OrderRevision Rule: DWVariableOrderRevision
Continuously synchronize with embedded specifications:FALSE
Disable ‘Embed child specifications’ in your Parent Custom Item Project.
The Custom Item template creates a new form in your Project called ‘LinkedItems’.
This form contains all the controls required to Add, Edit and Delete Linked Order Items.
There are two options when it comes to how these controls are used within your Project:
Regardless of the method you choose, these controls are required for any Linked Item functionality to behave correctly. The purpose of each control is explained below:
Control Name | Type | Description |
---|---|---|
SelectedStandardItem | Combo Box | Contains a list of available Standard Item SKUs. The selected SKU specifies which Standard Item is to be added and linked. |
LinkedStandardItemsToAdd | Data Table | Displays both existing Linked Standard Items and any which you are adding. You can drive the selected row using the ‘Default Row Index’ control property. |
LinkedStandardItemDiscount | Numeric Text Box | Specifies the discount for the SKU to be added to the Order. |
LinkedStandardItemQuantity | Spin Button | Specifies the quantity for the SKU to be added to the Order. |
AddStandardLinkedItem | Macro Button | Adds the SKU/Quantity/Discount to an array of data which specifies the Item which will be added to the Order. This data will be shown in the LinkedStandardItemsToAdd Data table. If a previously added SKU is specified by SelectedStandardItem, this macro button triggers an update to the existing row. |
DeleteStandardLinkedItem | Macro Button | Removes data from LinkedStandardItemsToAdd based on the selected row in the table. |
Control Name | Type | Description |
---|---|---|
SelectedCustomItem | Combo Box | Contains a list of available Custom Item SKUs. The selected SKU specifies which Custom Item is to be hosted. |
LinkedChildSpecList | Child Specification List | A hidden control which enables Linked Custom Items to be added as Child Specifications. See Child Specification List (for Parent only) for more information on how this control must be set up. |
LinkedChildSpecTable | Data Table | Displays existing Linked Custom Items. You can drive the selected row using the ‘Default Row Index’ control property. |
LinkedChildSpecificationHost | Specification Host | Hosts the Child Specification that is either started or edited. |
StartChild | Macro Button | Hosts the Project associated with the SKU specified by SelectedCustomItem. |
EditChild | Macro Button | Hosts an existing Child Specification based on the SpecificationId field for the selected row in the Data Table LinkedChildSpecTable. |
DeleteChild | Macro Button | Deletes a Child Specification based on the SpecificationId field for the selected row in the Data Table LinkedChildSpecTable. |
Editing an Order Item that is linked to a Parent will instead select and edit that Parent Order Item.
If you need to edit your Linked Order Items, then they should be edited from the Parent Custom Item.
Linked Order Items cannot be deleted individually from the main Order Items List.
To delete specific Linked Order Items, you must use the delete functionality in your Parent Custom Item Project.
When deleting the Parent Order Item, you can use a CPQ ‘Orders’ setting Delete Linked Order Items when Parent Order Item is Deleted) to control what happens to the Linked Order Items: