Maximum profit by two parameters
If you are handling only one truck/cargo in your problem, then this is a typical  Knapsack problem. If you are handling the bigger problem of distributing all items on how many trucks, then it is a variant of Bin Packing problem. Both problems are NP-Complete, however Knapsack has approximate algorithms with guaranteed bounds from optimality.

I suggest you use a somehow mangling compromise between A and B: 


Solve using A, then solve using B and take the best answer. 
Do both sortings, keep 2 arrays, then at each step compare A choice to B choice and select the better choice (greedy approach) 
Assign a weight to each factor then sort an array C according to your weight function. If you don't know the weights then make it equal (half for each factor). If you value price more make its weight above 0.5 if you value volume more then give it a higher weight. This is called multiplicative weight