One way I've found success with problems like this is by utilizing the concept of a "windowed" filter. If you add another line item in Module1 called salesvolume_InWindow with a formula like:
IF SalesDate > Module2.startdate AND SalesDate < Module2.enddate THEN Sales ELSE 0
(you may need to add provisions there if startdate or enddate are not specified in Module2 by the way),
..then you may be able to use the formula you've already used, just pointing to the salesvolume_InWindow line item instead.
The other way to solve this problem is by introducing a third module that's dimensionalized by product-customer, a day-level Time list, and line items. You can then utilize the TIMESUM function in this case to get the range of sales or volume for each product-customer.
@DeveloperCYT - i'd personally go with the TIMESUM formula opportunity suggested by @zafkamar. I use it a lot of the time within our models and it's very powerful, plus you can then do daily trend graphs as well!
In your time module would there be values outside of the promotion dates? If yes maybe the option of a 2nd line item in module one essentially doing if date between promotion dates and then sum that, if not can use timesum but without any dates - can also then remove sum from the time module...
Looks like timesum doesn't work on "date" as it's not a real time period