HABTM é vendido em excesso. Muitas vezes, ele não atende às necessidades, como quando você tem dados adicionais para armazenar. Será melhor fazer um relacionamento hasMany/belongsTo entre os modelos.
Extraído do livro CakePHP:
No seu caso, sugiro fazer um
LineItem
model e juntando tudo dessa forma:Order
hasManyLineItem
LineItem
pertence aOrder
,Product