The short answer is, yes, a table CAN exist without a primary key.
However, for your class, you are probably expected to always have a primary key.
A primary key does NOT have to be meaningful. In other words, a sequential number can be used, and that is NOT uncommon. So, you could have a Sale_ID number. But a receipt number comes close to being the same thing.
The primary key in Sales Detail would be a composite key of the Receipt_Number and Product_ID.