Programatically Creating Sellable Pages

Permalink
Hi,

I am fairly new to C5, migrating from drupal... :) and needs suggestion for the project i am working on which is bascially based on programatically creating sellable pages.

Project Description:-
* There will be 7 different data types in the system. I want to create separate tables in the C5 database for these datatypes.

* From these 7 tables few fields of three tables needs to be indexed so that data can searched by C5 searching engine (I am also thinking of using "solr search").

* When a user makes a search and outputed with the results, (s)he is taken to a page which describes the product (result). The product description needs to be prepared on the fly from the data taken from different datatypes.

* User checks the information and attempt to buy the product and completes the payment. (ecommerce module is present for this)

* Once the payment is done, some background processing needs to be started. Based on some unique number of ordered product, a report in the form of pdf/html/excel is required to be prepared whose source will be REST based webservices.

* The report or page created should only be accessible to the user who have ordered it.

I know how to achieve this in drupal. Will appriciate if anyone can put some light on how this can be achieved in Concrete5.