Update Product Catalog
You can update ProductRatePlanCharge and ProductRatePlanChargeTier objects, giving you full programmatic control of the product catalog.
SOAP API WSDL version: 26.0+
You can update all aspects of the product catalog, including:
- Products
- Product Rate Plans
- Product Rate Plan Charges
- Product Rate Plan Charge Tiers
Update Products
The following fields can be updated for Products:
- Name
- SKU
- Effective End Date
- Effective Start Date
- Description
- Custom Fields
Sample
<ns1:update> <ns1:zObjects xsi:type="ns2:Product"> <ns2:Id>4028e6992601720d01261a5d351c1955</ns2:Id> <ns2:EffectiveEndDate>2013-01-31</ns2:EffectiveEndDate> <ns2:EffectiveStartDate>2009-11-01</ns2:EffectiveStartDate> <ns2:Name>Cloud Store Storage 2</ns2:Name> <ns2:SKU>SKU-45000040</ns2:SKU> </ns1:zObjects> </ns1:update>
Update Product Rate Plans
The following fields can be updated for ProductRatePlans:
- Name
- Effective Start Date
- Effective End Date
- Custom FIelds
Sample
<ns1:update> <ns1:zObjects xsi:type="ns2:ProductRatePlan"> <ns2:Id>4028e6992601720d01261a5de7851957</ns2:Id> <ns2:EffectiveEndDate>2011-01-31</ns2:EffectiveEndDate> <ns2:EffectiveStartDate>2009-12-01</ns2:EffectiveStartDate> <ns2:Name> Silver Monthly Plan</ns2:Name> <ns2:ProductId>4028e6992601720d01261a5d351c1955</ns2:ProductId> </ns1:zObjects> </ns1:update>
Update Product Rate Plan Charges
Note that you cannot update a charge type. For example, you cannot change a recurring charge to a one-time or usage charge.
The following fields can always be updated:
- AccountingCode
- BillCycleDay
- BillingPeriod
- BillingPeriodAlignment
- Description
- Name
- RevRecCode
- RevRecTriggerCondition
- Taxable
- TaxCode
Sample
<ns1:update> <ns1:zObjects xsi:type="ns2:ProductRatePlanCharge"> <ns2:Id>4028e6991e6a5727011e74818e1105ab</ns2:Id> <ns2:BillCycleDay>DefaultFromCustomerAccount</ns2:BillCycleDay> </ns1:zObjects> </ns1:update>
Update Product Rate Plan Charge Tiers
To update product rate plan charge tiers:
- Specify all required fields for the updated charge.
- Replace the entire set of ProductRatePlanChargeTier objects. You must update the entire set of ProductRatePlanChargeTier objects in one call. To do this, use the ProductRatePlanChargeTierData wrapper object in the ProductRatePlanCharge object.
Sample
The following code sample works with the version 75 or later of Zuora WSDL.
<ns1:update> <ns1:zObjects xsi:type="ns2:ProductRatePlanCharge"> <ns2:Id>4028e6992601720d01261a695edb1a83</ns2:Id> <ns2:BillingPeriod>Month</ns2:BillingPeriod> <ns2:BillingPeriodAlignment>AlignToCharge</ns2:BillingPeriodAlignment> <ns2:ChargeModel>Volume</ns2:ChargeModel> <ns2:Name>Monthly Charge</ns2:Name> <ns2:ProductRatePlanChargeTierData> <ns1:ProductRatePlanChargeTier xsi:type="ns2:ProductRatePlanChargeTier"> <ns2:Active>true</ns2:Active> <ns2:Currency>USD</ns2:Currency> <ns2:EndingUnit>10</ns2:EndingUnit> <ns2:Price>100.2222</ns2:Price> <ns2:PriceFormat>PerUnit</ns2:PriceFormat> <ns2:StartingUnit>1</ns2:StartingUnit> </ns1:ProductRatePlanChargeTier> <ns1:ProductRatePlanChargeTier xsi:type="ns2:ProductRatePlanChargeTier"> <ns2:Active>true</ns2:Active> <ns2:Currency>USD</ns2:Currency> <ns2:EndingUnit>20</ns2:EndingUnit> <ns2:Price>200.222</ns2:Price> <ns2:PriceFormat>PerUnit</ns2:PriceFormat> <ns2:StartingUnit>11</ns2:StartingUnit> </ns1:ProductRatePlanChargeTier> <ns1:ProductRatePlanChargeTier xsi:type="ns2:ProductRatePlanChargeTier"> <ns2:Active>true</ns2:Active> <ns2:Currency>USD</ns2:Currency> <ns2:EndingUnit>30</ns2:EndingUnit> <ns2:Price>300.22</ns2:Price> <ns2:PriceFormat>PerUnit</ns2:PriceFormat> <ns2:StartingUnit>21</ns2:StartingUnit> </ns1:ProductRatePlanChargeTier> <ns1:ProductRatePlanChargeTier xsi:type="ns2:ProductRatePlanChargeTier"> <ns2:Active>true</ns2:Active> <ns2:Currency>USD</ns2:Currency> <ns2:EndingUnit>40</ns2:EndingUnit> <ns2:Price>400.22</ns2:Price> <ns2:PriceFormat>PerUnit</ns2:PriceFormat> <ns2:StartingUnit>31</ns2:StartingUnit> </ns1:ProductRatePlanChargeTier> </ns2:ProductRatePlanChargeTierData> <ns2:Taxable>true</ns2:Taxable> <ns2:TaxMode>TaxExclusive</ns2:TaxMode> <ns2:TaxCode>Your Tax Code Name</ns2:TaxCode> <ns2:TriggerEvent>ContractEffective</ns2:TriggerEvent> </ns1:zObjects> </ns1:update>
Update Pricing Information
If you are not changing the charge model, or do not need to change anything other than the price, you can update the ProductRatePlanChargeTier.
For example, if you want to change the price from $14.99 to $16.99, update the ProductRatePlanChargeTier.
Sample
<ns1:update> <ns1:zObjects xsi:type="ns2:ProductRatePlanChargeTier"> <ns2:Id>4028e6991e6a5727011e74818e119e23</ns2:Id> <ns2:Price>16.99</ns2:Price> </ns1:zObjects> </ns1:update>