Index: main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/contracts.py
===================================================================
--- main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/contracts.py	(revision 12302)
+++ main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/contracts.py	(revision 12335)
@@ -28,5 +28,5 @@
 from ikobacustom.skeleton.interfaces import MessageFactory as _
 from ikobacustom.skeleton.customers.interfaces import (
-    ISkeletonContract, ISkeletonContractEdit)
+    ISkeletonContract, ISkeletonContractEdit, ISkeletonContractProcess)
 
 
@@ -36,5 +36,8 @@
 
     grok.implements(
-        ISkeletonContract, ISkeletonContractEdit, ICustomerNavigation)
+        ISkeletonContractProcess,
+        ISkeletonContract,
+        ISkeletonContractEdit,
+        ICustomerNavigation)
 
     contract_category = 'sample'
Index: main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/interfaces.py
===================================================================
--- main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/interfaces.py	(revision 12302)
+++ main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/interfaces.py	(revision 12335)
@@ -22,4 +22,5 @@
 from waeup.ikoba.customers.vocabularies import (
     ConCatProductSource, CustomerDocumentSource)
+from waeup.ikoba.products.productoptions import ProductOptionField
 from ikobacustom.skeleton.interfaces import MessageFactory as _
 
@@ -51,4 +52,16 @@
         )
 
+class ISkeletonContractProcess(ISkeletonContract):
+    """Interface for processing contract data.
+    """
+
+    product_options = schema.List(
+        title = _(u'Options/Fees'),
+        value_type = ProductOptionField(),
+        required = False,
+        readonly = False,
+        default = [],
+        )
+
 class ISkeletonContractEdit(ISkeletonContract):
     """Interface for editing sample contract data by customers.
Index: main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/tests/test_browser.py
===================================================================
--- main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/tests/test_browser.py	(revision 12302)
+++ main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/customers/tests/test_browser.py	(revision 12335)
@@ -157,8 +157,9 @@
         self.assertMatches(result,
             'class_name,contract_category,contract_id,document_object,'
-            'history,last_product_id,product_object,state,title,user_id\r\n'
+            'history,last_product_id,product_object,product_options,'
+            'state,title,user_id\r\n'
             'SkeletonContract,sample,%s,,'
             '[u\'2014-12-21 22:26:00 WAT - Contract created by system\']'
-            ',,,created,My first contract,K1000000\r\n'
+            ',,,[],created,My first contract,K1000000\r\n'
             % self.contract.contract_id)
         # We can reimport the file if we change the header (user_id -> customer_id)
@@ -166,13 +167,15 @@
         open(self.outfile, 'wb').write(
             'class_name,contract_category,contract_id,document_object,'
-            'history,last_product_id,product_object,state,title,customer_id\r\n'
+            'history,last_product_id,product_object,product_options,'
+            'state,title,user_id\r\n'
             'SkeletonContract,sample,%s,,'
             '[u\'2014-12-21 22:26:00 WAT - Contract created by system\']'
-            ',,,created,My first contract,K1000000\r\n'
+            ',,,[],created,My first contract,K1000000\r\n'
             % self.contract.contract_id)
         result = processor.doImport(
             self.outfile,
             ['class_name','contract_category','contract_id','document_object',
-            'history','last_product_id','product_object','state','title','customer_id'],
+            'history','last_product_id','product_object','product_options',
+            'state','title','customer_id'],
             mode='create')
         num, num_fail, finished_path, failed_path = result
@@ -184,5 +187,6 @@
             self.outfile,
             ['class_name','contract_category','contract_id','document_object',
-            'history','last_product_id','product_object','state','title','customer_id'],
+            'history','last_product_id','product_object','product_options',
+            'state','title','customer_id'],
             mode='create')
         num_succ, num_fail, finished_path, failed_path = result
@@ -192,5 +196,6 @@
             self.outfile,
             ['class_name','contract_category','contract_id','document_object',
-            'history','last_product_id','product_object','state','title','customer_id'],
+            'history','last_product_id','product_object','product_options',
+            'state','title','customer_id'],
             mode='update')
         num_succ, num_fail, finished_path, failed_path = result
Index: main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/products/tests/test_browser.py
===================================================================
--- main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/products/tests/test_browser.py	(revision 12302)
+++ main/ikobacustom.skeleton/trunk/src/ikobacustom/skeleton/products/tests/test_browser.py	(revision 12335)
@@ -52,11 +52,12 @@
         result = open(self.outfile, 'rb').read()
         self.assertEqual(result,
-            'contract_category,product_id,title,users_with_local_roles\r\n'
-            'license,LIC,Unnamed,[]\r\n')
+            'contract_category,options,product_id,title,users_with_local_roles\r\n'
+            'license,[],LIC,Unnamed,[]\r\n')
         # We can import the same file.
         processor = SkeletonProductProcessor()
         result = processor.doImport(
             self.outfile,
-            ['contract_category','product_id','title','users_with_local_roles'],
+            ['contract_category','options,', 'product_id','title',
+            'users_with_local_roles'],
             mode='create')
         num, num_fail, finished_path, failed_path = result
@@ -68,5 +69,6 @@
         result = processor.doImport(
             self.outfile,
-            ['contract_category','product_id','title','users_with_local_roles'],
+            ['contract_category','options','product_id','title',
+            'users_with_local_roles'],
             mode='create')
         num, num_fail, finished_path, failed_path = result
@@ -76,5 +78,6 @@
         result = processor.doImport(
             self.outfile,
-            ['contract_category','product_id','title','users_with_local_roles'],
+            ['contract_category','options','product_id','title',
+            'users_with_local_roles'],
             mode='update')
         num, num_fail, finished_path, failed_path = result
