As a Business Intelligence developer myself, this is same question in my line of work, every time there are more dimensions than the graph can handle. As in your example, a line-chart is a two dimensional graph -- the common practice is to put the measure on the Y-axis, and one dimension each on the X-axis and on the graph lines.
To add more dimensions, the common practice is to have drop-downs that act as filters. The drop-downs may be multi-select or single-select, as per your need.

download bmml source – Wireframes created with Balsamiq Mockups
The drop-downs are responsive, meaning that the graph will be updated each time the value on the drop-down is changed.
Note however, that not all users of your system would like to see the same stuff on the same axes/filters. It is very good UX when you leave the axis and filter selection in the hands of the user itself. You could have the following in the settings menu for your graph:

download bmml source
(It goes without saying that you must incorporate logic to avoid the same selection on two different axes/filters, as seen above with the disabled radio/checkbox options.)
It is worth mentioning here that other less common practices of accommodating more dimensions that a graph supports, is to use tabs or pagination in place of drop-downs. For example, in your example, you could have one tab for each product, and pagination under each tab for each seller type. You could either pre-render all of the graphs, or rendered a graph selectively when the user visits that tab/page. However, this approach is clumsy for a large number of dimensions, or when a particular dimension has a large number of entries (for instance, having a hundred tabs for a hundred products makes no sense).