This API is used to get the list of all the products within the specified price list. This API automatically takes into consideration product visibility rules and will enforce them if applicable. For more information on Configuring Product Visibility, see the CPQ on Salesforce Administrator Guide.

APISignature
getProductsForPriceListwebService static Apttus_CPQApi.CPQ.ProductSearchResultDO getProductsForPriceList(Id priceListId)



Parameters
NameTypeDescription
priceListIdIDThe id of the price list.



Response Data Object - Apttus_CPQApi.CPQ.ProductSearchResultDO
FieldTypeDescription
HasProductsBooleanThis returns true if the list of product data objects is not empty.
ProductsList<Apttus_CPQApi.CPQ.ProductDO>The list of product data objects.



Data Object - Apttus_CPQApi.CPQ.ProductDO
FieldTypeDescription
ContentUrlStringThe product content location.
DescriptionStringThe product description.
HasPricesBooleanIndicates if there are list prices for the product.
HasPropertiesBooleanIndicates if there are properties set for the product.
ImageUrlStringThe location of the image, if there is one, associated with the product.
NameStringThe product name.
PricesList<Apttus_CPQApi.CPQ.PriceDO>The list of price data objects.
ProductCodeStringThe product code.
ProductIdIDThe Id of the product.
PropertyList<Apttus_CPQApi.CPQ.PropertyDO>The list of property data objects.


Data Object - Apttus_CPQApi.CPQ.PriceDO
FieldTypeDescription
ChargeTypeStringThe charge type.
PriceItemApttus_Config2__PriceListItem__c objectThe price list items for a price list.
ValueDecimalThe list price.
Data Object - Apttus_CPQApi.CPQ.PropertyDO
FieldTypeDescription
NameStringThe name of the property.
ValueDecimalThe value of a property.


Code Sample

Using the sample you can show the user the list of products for a particular price list. For example if you have a price list created for a particular company, the user can search the price list by name and view all the products associated with that price list. For example, when a user searches for badger price list and clicks search, invoke the getProductsForPriceList API in which you pass the pricelistID as a parameter. Fetch and then display all the product components to the user such as Machinery, standard price, quantity and name and description of the product.
 

public void getProductsForPriceList()
{
	//If the priceList name by which the user searches the price list exists fetch the ID.
	if(priceListId == null || priceListId== '0')
	{
		List<Apttus_Config2__PriceList__c> priceListItemList = [select id from Apttus_Config2__PriceList__c where  Name = :priceListName limit 1];
		//If the priceListItem exists, the list size >0 assign the ID at the 0th position of the list to priceListId 
		if(priceListItemList.size() > 0) 
		{            
			priceListId = priceListItemList[0].ID;
		}
		else
		{
			lstProductwrapAll = New List<ProductWrapperClass>();
			lstProductwrap = New List<ProductWrapperClass>();
			return;
		}
	}
	
	//Fetch id	
	Apttus_CPQApi.CPQ.ProductSearchResultDO productResult = Apttus_CPQApi.CPQWebService.getProductsForPriceList(priceListId);
	productCount = 'Product Count: ' + productResult.Products.size();
	lstProductwrapAll = New List<ProductWrapperClass>();
	lstProductwrap = New List<ProductWrapperClass>();

	//For the fetched pricelistID fetch and display the following	
	For(Apttus_CPQApi.CPQ.ProductDO catresult : productResult.Products)
	{    
		ProductWrapperClass wrap = New ProductWrapperClass ();
		wrap.ProductId = catresult.ProductId;
		wrap.ProductCode= catresult.ProductCode;
		wrap.ProductName=catresult.Name;
		wrap.Description=catresult.Description;
		wrap.ImageUrl=catresult.ImageUrl;
		wrap.ContentUrl=catresult.ContentUrl;
		wrap.HasPrices=catresult.HasPrices;   
		wrap.Prices=catresult.Prices;
		wrap.Quantity=1;
		lstProductwrapAll.add(wrap);
	}        
}
CODE

Integration Details

Use the following information in your integrations with Apttus CPQ Web Services API. Refer to Integrating Apttus with External Systems for information on how to get started.

Response/Request XML

Example Request (click to expand)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cpq="http://soap.sforce.com/schemas/class/Apttus_CPQApi/CPQWebService">
   <soapenv:Header>
      <cpq:SessionHeader>
         <cpq:sessionId>00DZ000000NAEIA!ASAAQN7k3xhhvMe.j.8gpR.ijcGq77HJeF4MEDfbxbBAqZ8r4WWNTv3OVb6o1bjtHJLbq5mvHcuAH_ie6sTC3DzrWgnLdUuD</cpq:sessionId>
      </cpq:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <cpq:getProductsForPriceList>
         <cpq:priceListId>a1De0000001yPXQ</cpq:priceListId>
      </cpq:getProductsForPriceList>
   </soapenv:Body>
</soapenv:Envelope>
XML

Example Response (click to expand)

<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns="http://soap.sforce.com/schemas/class/Apttus_CPQApi/CPQWebService"
    xmlns:ProductSearchResultDO="http://soap.sforce.com/schemas/class/Apttus_CPQApi/CPQ"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <getProductsForPriceListResponse>
            <result>
                <ProductSearchResultDO:HasProducts>true</ProductSearchResultDO:HasProducts>
                <ProductSearchResultDO:Products>
                    <ProductSearchResultDO:ContentUrl xsi:nil="true"/>
                    <ProductSearchResultDO:Description xsi:nil="true"/>
                    <ProductSearchResultDO:HasPrices>true</ProductSearchResultDO:HasPrices>
                    <ProductSearchResultDO:HasProperties>false</ProductSearchResultDO:HasProperties>
                    <ProductSearchResultDO:ImageUrl xsi:nil="true"/>
                    <ProductSearchResultDO:Name>AutoQuoteBundle1</ProductSearchResultDO:Name>
                    <ProductSearchResultDO:Prices>
                        <ProductSearchResultDO:ChargeType>Standard Price</ProductSearchResultDO:ChargeType>
                        <ProductSearchResultDO:PriceItem xsi:type="Apttus_Config2__PriceListItem__c">
                            <Id>a1Ce0000003fQ1QEAU</Id>
                            <Apttus_Config2__Active__c>true</Apttus_Config2__Active__c>
                            <Apttus_Config2__AllocateGroupAdjustment__c>true</Apttus_Config2__AllocateGroupAdjustment__c>
                            <Apttus_Config2__AllowManualAdjustment__c>true</Apttus_Config2__AllowManualAdjustment__c>
                            <Apttus_Config2__AllowProration__c>false</Apttus_Config2__AllowProration__c>
                            <Apttus_Config2__ChargeType__c>Standard Price</Apttus_Config2__ChargeType__c>
                            <Apttus_Config2__ListPrice__c>100.00000</Apttus_Config2__ListPrice__c>
                            <Apttus_Config2__PriceIncludedInBundle__c>false</Apttus_Config2__PriceIncludedInBundle__c>
                            <Apttus_Config2__PriceListId__c>a1De0000001yPXQEA2</Apttus_Config2__PriceListId__c>
                            <Apttus_Config2__PriceMethod__c>Per Unit</Apttus_Config2__PriceMethod__c>
                            <Apttus_Config2__PriceType__c>One Time</Apttus_Config2__PriceType__c>
                            <Apttus_Config2__ProductId__c>01te0000005NGpDAAW</Apttus_Config2__ProductId__c>
                            <Apttus_Config2__ProductId__r xsi:type="Product2">
                                <Id>01te0000005NGpDAAW</Id>
                                <Name>AutoQuoteBundle1</Name>
                            </Apttus_Config2__ProductId__r>
                            <Name>PI-0000538767</Name>
                        </ProductSearchResultDO:PriceItem>
                        <ProductSearchResultDO:Value>100.00000</ProductSearchResultDO:Value>
                    </ProductSearchResultDO:Prices>
                    <ProductSearchResultDO:ProductCode xsi:nil="true"/>
                    <ProductSearchResultDO:ProductId>01te0000005NGpDAAW</ProductSearchResultDO:ProductId>
                </ProductSearchResultDO:Products>
                <ProductSearchResultDO:Products>
                    <ProductSearchResultDO:ContentUrl xsi:nil="true"/>
                    <ProductSearchResultDO:Description xsi:nil="true"/>
                    <ProductSearchResultDO:HasPrices>true</ProductSearchResultDO:HasPrices>
                    <ProductSearchResultDO:HasProperties>false</ProductSearchResultDO:HasProperties>
                    <ProductSearchResultDO:ImageUrl xsi:nil="true"/>
                    <ProductSearchResultDO:Name>AutoQuoteBundle2</ProductSearchResultDO:Name>
                    <ProductSearchResultDO:Prices>
                        <ProductSearchResultDO:ChargeType>Standard Price</ProductSearchResultDO:ChargeType>
                        <ProductSearchResultDO:PriceItem xsi:type="Apttus_Config2__PriceListItem__c">
                            <Id>a1Ce0000003fQ2EEAU</Id>
                            <Apttus_Config2__Active__c>true</Apttus_Config2__Active__c>
                            <Apttus_Config2__AllocateGroupAdjustment__c>true</Apttus_Config2__AllocateGroupAdjustment__c>
                            <Apttus_Config2__AllowManualAdjustment__c>true</Apttus_Config2__AllowManualAdjustment__c>
                            <Apttus_Config2__AllowProration__c>false</Apttus_Config2__AllowProration__c>
                            <Apttus_Config2__ChargeType__c>Standard Price</Apttus_Config2__ChargeType__c>
                            <Apttus_Config2__ListPrice__c>100.00000</Apttus_Config2__ListPrice__c>
                            <Apttus_Config2__PriceIncludedInBundle__c>false</Apttus_Config2__PriceIncludedInBundle__c>
                            <Apttus_Config2__PriceListId__c>a1De0000001yPXQEA2</Apttus_Config2__PriceListId__c>
                            <Apttus_Config2__PriceMethod__c>Per Unit</Apttus_Config2__PriceMethod__c>
                            <Apttus_Config2__PriceType__c>One Time</Apttus_Config2__PriceType__c>
                            <Apttus_Config2__ProductId__c>01te0000005NGpNAAW</Apttus_Config2__ProductId__c>
                            <Apttus_Config2__ProductId__r xsi:type="Product2">
                                <Id>01te0000005NGpNAAW</Id>
                                <Name>AutoQuoteBundle2</Name>
                            </Apttus_Config2__ProductId__r>
                            <Name>PI-0000538772</Name>
                        </ProductSearchResultDO:PriceItem>
                        <ProductSearchResultDO:Value>100.00000</ProductSearchResultDO:Value>
                    </ProductSearchResultDO:Prices>
                    <ProductSearchResultDO:ProductCode xsi:nil="true"/>
                    <ProductSearchResultDO:ProductId>01te0000005NGpNAAW</ProductSearchResultDO:ProductId>
                </ProductSearchResultDO:Products>
            </result>
        </getProductsForPriceListResponse>
    </soapenv:Body>
</soapenv:Envelope>
XML