You return the type of the variable that is stored in the array. In your case, the return type should be a reference to Product. Remember that operator usually allows you to modify the element in the array (or pseudo-array).
Product& Customer::operator(long n);
Line 10 is not legal because std::list does not overload operator. If you want to use operator, you can always use std::vector. Else, you will have to create an iterator and "advance" it n places. Keep in mind that one of std::list's weaknesses is iterating to specific positions.
You should also remember to check if the index is less than 0 or is out-of-bounds.
You can also have a read-only version of operator: