I agree with that. As far as activating promo for line items I think we should do it when customer add items to cart. The flow could be:

* Grab line item promos (for now I suppose it should be any promo with a CreateItemAdjustment action, not 100% sure yet)
* Loop through those
* Check if the promotion has products associated
* If the item added to cart matches one of the products associated we create the adjustment
* In cases where the promo has no product associated we create the adjustment anyway

Makes sense? I'll try to come up with a working implementation in another PR.