Linked Items enable 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.
Firstly, make sure all items (whether they are parent Items or future Linked Items) are added to your DriveApp as regular Standard/Custom Items.
Secondly, 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 parent Custom Item.
You can search for a specific Item SKU using the 'SKU Search' text box.
The following templates are required to fully support the use of Linked Items.
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.
If you implemented the CPQ Embed Order Project Template in a version prior to 21.0, you will need to copy your implementation into the new version of the template in order to use Linked Items.
This template has a dual purpose and is required by both your Parent Custom Item and any Custom Linked 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.
If you implemented the CPQ Custom Item Form Template in a version prior to 21.0, you will need to copy your implementation into a Project containing the new version of the template in order to use Linked Items.
Alternatively, if you implemented Linked Items in a previous version of DriveWorks, you will need to follow the Steps in this Help File to convert to using the new methods of using Linked Items implemented in DriveWorks 22.
Once you have all the correct functionality in your Project, you will need to follow the steps below to correctly configure your Items as a Parent Linked Item.
To enable your Parent Custom Item to create Linked Standard Items, you need to implement the following functionality.
Create the following three Export to Calculation Table documents (in Documents-Data) with the following information:
Document 1
Field Name | Field Type | Is Captured |
---|---|---|
Id | Normal | Yes |
ItemId | Control | Yes |
LinkedItemId | Normal | Yes |
PriceId | Normal | No |
Price | Normal | No |
PriceListItemId | Normal | No |
Description | Normal | No |
Quantity | Normal | Yes |
DiscountAmount | Normal | Yes |
SpecificationId | Normal | No |
ParentOrderItemId | Normal | No |
OrderItemId | Normal | No |
Add one row to the table and create the following rules for the cells.
Column | Rule |
---|---|
Id | DWVariableStoreStandardLinkedItemIdExisting |
ItemId | DWVariableStoreStandardLinkedItemItemId |
LinkedItemId | DWVariableStoreStandardLinkedItemLinkedItemId |
Quantity | DWVariableStoreStandardLinkedItemQuantity |
DiscountAmount | DWVariableStoreStandardLinkedItemDiscountAmount |
Document 2
Field Name | Field Type | Is Captured |
---|---|---|
Id | Control | Yes |
ItemId | Normal | Yes |
LinkedItemId | Normal | Yes |
PriceId | Normal | No |
Price | Normal | Yes |
PriceListItemId | Normal | No |
Description | Normal | Yes |
Quantity | Normal | Yes |
DiscountAmount | Normal | Yes |
SpecificationId | Normal | Yes |
ParentOrderItemId | Normal | No |
OrderItemId | Normal | Yes |
Add one row to the table and create the following rules for the cells.
Column | Rule |
---|---|
Id | DWVariableStoreLinkedCustomItemId |
ItemId | DWVariableStoreLinkedCustomItemItemId |
LinkedItemId | DWVariableStoreLinkedCustomItemLinkedItemId |
Price | DWVariableStoreLinkedCustomItemPrice |
Description | DWVariableStoreLinkedCustomItemDescription |
Quantity | DWVariableStoreLinkedCustomItemQuantity |
DiscountAmount | DWVariableStoreLinkedCustomItemDiscount |
SpecificationId | DWVariableStoreLinkedCustomItemSpecificationId |
OrderItemId | DWVariableStoreLinkedCustomItemOrderItemId |
Document 3
Field Name | Field Type | Is Captured |
---|---|---|
Id | Control | Yes |
ItemId | Normal | No |
LinkedItemId | Normal | No |
PriceId | Normal | No |
Price | Normal | No |
PriceListItemId | Normal | No |
Description | Normal | No |
Quantity | Normal | No |
DiscountAmount | Normal | No |
SpecificationId | Normal | Yes |
ParentOrderItemId | Normal | No |
OrderItemId | Normal | Yes |
Add one row to the table and create the following rules for the cells.
Column | Rule |
---|---|
Id | ListGetItem(DWCurrentMacroArgument,1) |
SpecificationId | ListGetItem(DWCurrentMacroArgument,2) |
OrderItemId | ListGetItem(DWCurrentMacroArgument,3) |
Add a new Specification Property with the following information.
To enable your Parent Custom Item to create Custom Linked Items, you need to implement the following functionality in each of the Custom Item Projects that will be a Linked Item.
Add a new specification Property with the following information.
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 |
---|---|---|
LinkedSpecificationHost | Specification Host | Hosts the Child Specification that is either started or edited. |
SelectedItem | Combo Box | Contains a list of available Linked Item SKUs. The selected SKU specifies which Item is to be added and linked. This control is used for both Standard and Custom Items. |
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. |
AddLinkedItem | Macro Button | Standard: 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 LinkedItemsToAdd Data table. If a previously added SKU is specified by SelectedStandardItem, this macro button triggers an update to the existing row. |
Custom: This Button will launch a new specification of the Custom Item Project in the LinkedSpecificationHost Host Control. | ||
LinkedItemsToAdd | Data Table | A Data Table displaying all added Linked Items. This is linked to the LinkedItemsToAdd Calculation Table. |
EditCustomLinkedItem | Macro Button | Hosts an existing Linked Custom Item Specification based on the SpecificationId field for the selected row in the Data Table LinkedItemsToAdd. |
DeleteLinkedItem | Macro Button | Deletes the information for the selected row in the LinkedItemsToAdd Calculation Table. This will ultimately end with the Linked Item being deleted from your quote/order. |
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:
When the Parent is deleted, all its Linked Order Items will also be deleted from the Order.
When the Parent is deleted, its Linked Order Items will remain, but the link will be removed. From this point on the remaining Order Items behave normally.