Hi partner,
You can follow the next steps to achieve your request.
1. Open your app and go to Settings > Customization > Customizations > Customize the system


2. Due to the features of the entities you listed (Opportunity, Sales Order and/or Invoice), you need to create two entities to clarify the entities you need and how their details relate to the product.

a) Deliver Note
It can be created with reference to the Order entity.

b) Deliver Note Product
It can be created with reference to the Order Product entity.

3. Establish the relationships
There are 2 ‘N: 1 Relationship’ for the xxx Product entity. One is xxx Product to xxx and the other is xxx Product to Product.

So you need to establish to N: 1 Relationship for Deliver Note Product entity.
* It will also create a lookup field in Deliver Note Product entity according to the Lookup Field set in the Relationship.
a) Deliver Note Product: Deliver Note

b) Deliver Note Product: Product

c) Deliver Note: Order

4. After completing the above steps, the approximate Entities which you need has been created. You can create more fields to describe other details you need to record.
For example:
The Customer info can be created in Deliver Note entity.
The Quantity of the products, the Price for delivering the products can be created in Deliver Note Product entity.
It all depends on your specific requirements.
5. Add the Deliver Note into Sales.
Open the Site Map as the following picture.

Add the Deliver Note as you want.

6. Create some sub grids to show the specific information
a) Sub Grid for Deliver Note in the form of Order.

b) Sub Grid for Deliver Note Product in the form of Deliver Note.

Then you will see the related deliver notes to a specific order and the products in each line of a specific deliver note.
Hope this helps.
Nya