Hey,
As well as you use parameter mapping, you have to use result mapping.
You will have to define for example "price" (1) variable in process.. when completing the work item, you pass a map<String, Object> with results of the work item. You will have to create the map, and put a variable "price"(or the name you want) (2), can pass the map to completeWorkItem method. Into the process, you have to map the result variable to the process variable. After executing the task, jbpm will copy the value of the result variable to the process instance variable.
And the same will apply to the subprocess. Into the parent process, you define how to map variables between process/subprocess.
Regards,
demian