Hi Pierre,
thank you very much for your quick reply which helps me a lot. It points me in the right direction! I'll definitely do some prototyping to find out the best approach. There will probably be more questions :-)
regarding this point:
> You have several options. Either setup fixed-length plans (non-evergreen, up to 30 days) or bypass the subscription system entirely (Kill Bill provides pure invoicing and even pure payments APIs). I've never tried the former, but it should be supported. If not, we can fix it ;-)
I put together an example catalog xml:
- a car category as product, as well as gas as usage based product
- 2 plans with different durations, not evergreen but fixedterm
-1 plan for gas, usage based
Question: do I have to define a product entry for each plan duration? or can several plans with different durations point to the same product (tried it, but doesn't validate).
Thank you very much in advance!
Alex
XML:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="CatalogSchema.xsd ">
<effectiveDate>2013-02-08T00:00:00+00:00</effectiveDate>
<catalogName>Titos Rental</catalogName>
<recurringBillingMode>IN_ARREAR</recurringBillingMode>
<currencies>
<currency>USD</currency>
</currencies>
<units>
<unit name="gallons"/>
</units>
<products>
<product name="cat_compact_1">
<category>BASE</category>
<available>
<addonProduct>Gas</addonProduct>
</available>
</product>
<product name="cat_compact_2">
<category>BASE</category>
<available>
<addonProduct>Gas</addonProduct>
</available>
</product>
<product name="Gas">
<category>ADD_ON</category>
</product>
</products>
<rules>
<cancelPolicy>
<cancelPolicyCase>
<productCategory>BASE</productCategory>
<policy>END_OF_TERM</policy>
</cancelPolicyCase>
<cancelPolicyCase>
<productCategory>ADD_ON</productCategory>
<policy>IMMEDIATE</policy>
</cancelPolicyCase>
<cancelPolicyCase>
<policy>END_OF_TERM</policy>
</cancelPolicyCase>
</cancelPolicy>
<createAlignment>
<createAlignmentCase>
<alignment>START_OF_BUNDLE</alignment>
</createAlignmentCase>
</createAlignment>
<billingAlignment>
<billingAlignmentCase>
<alignment>ACCOUNT</alignment>
</billingAlignmentCase>
</billingAlignment>
</rules>
<plans>
<plan name="cat_compact_plan_1">
<product>cat_compact_1</product>
<finalPhase type="FIXEDTERM">
<duration>
<unit>DAYS</unit>
<number>1</number>
</duration>
<fixed>
<fixedPrice>
<price>
<currency>USD</currency>
<value>100.00</value>
</price>
</fixedPrice>
</fixed>
</finalPhase>
</plan>
<plan name="cat_compact_plan_2">
<product>cat_compact_2</product>
<finalPhase type="FIXEDTERM">
<duration>
<unit>DAYS</unit>
<number>2</number>
</duration>
<fixed>
<fixedPrice>
<price>
<currency>USD</currency>
<value>175.00</value>
</price>
</fixedPrice>
</fixed>
</finalPhase>
</plan>
<plan name="gas">
<product>Gas</product>
<finalPhase type="FIXEDTERM">
<duration>
<unit>DAYS</unit>
</duration>
<usages>
<usage name="gas-monthly-in-arrear" billingMode="IN_ARREAR" usageType="CONSUMABLE">
<billingPeriod>NO_BILLING_PERIOD</billingPeriod>
<tiers>
<tier>
<blocks>
<tieredBlock>
<unit>gallons</unit>
<size>1</size>
<prices>
<price>
<currency>USD</currency>
<value>3.95</value>
</price>
</prices>
<max>100</max>
</tieredBlock>
</blocks>
</tier>
</tiers>
</usage>
</usages>
</finalPhase>
</plan>
</plans>
<priceLists>
<defaultPriceList name="DEFAULT">
<plans>
<plan>cat_compact_plan_1</plan>
<plan>cat_compact_plan_2</plan>
<plan>gas</plan>
</plans>
</defaultPriceList>
</priceLists>
</catalog>