Actually it's not static and it does do AJAX requests when an option is selected. It also will post any quantity changes that may occur.
However, that's beside the point.
First off, you should probably use a checkout.post.php since the pre is normally used for handling POSTed requests and setting the stage or adjusting things when the standard processing is performed. But since you are adding data it doesn't really matter where you do it. But using a checkout.post.php file will ensure that you are setting things after the standard processing but before the template engine is run. This will help ensure you don't have conflicts (or that you stomp on ones that do exist). And why are you setting two variables to the same data?
I would start by not using such common names as 'product' or 'items' for your template variables. It's is quite possible these are being used elsewhere.
What does the template debugger show you for the variables that are available to the page.
[quote]And why are you setting two variables to the same data[/quote]
In my addon I deside use an exists standart block for view a product list. I try to assign a standart variables in the hope that the block picks up one of these variables, and displays a list of products. So I tried to assing and products and items variables.
I need create a lite, minimal addon without any addon's skins files. only hooks and the use of standart cs-cart product-list-template.
I don't use template debugger. I will use it today.