Add to tblOrderdetails OrderQty and OrderPrice.
Also, you still need a field OrderDetailPK (first field) which is the unique field for the tblOrderDetails.
The join to tblOrderHeader is by OrderID, as you have but this can not be the tables Primary key / unique field because it will be repeated where an OrderHeader has many line items listed in tblOrderDetails.
You should hold the price in the OrderDetails table as the Inventory table will be updated but your sales history won't change.
The join between tblOrderHeader and tblOrderDetail is One to many. One OrderHeader to Many OrderDetails. Not 1 to 1 as shown.
Also, tblCutomers to tblOrderHeaders will be One Customer to Many OrderHeaders.
Sorry but also noticed... tblPayments should be joined to tblOrderHeader by One OrderID (OrderHeader) to Many InvoiceID (Payments).
Reason being, tblOrderDetails won't be as easy to calculate the AmountToPay as tblOrderHeader.
You don't need a field to Pay, Just an OrderNumber. The amount to Balance Against will be Calculated and because the Qty & Price are in the OrderDetail and each record there has a field OrderID, then you can get the AmountToPay, as and when you wish.
If you wish to have a different Number for the Invoice, this should be moved to tblOrderHeader and use this then as the join to tblPayments, but... what if the payment arrives before the Invoice is raised. ie, you only have an OrderID.
Modern systems keep the same number all through the process. You may find it difficult to keep track of two sets of accounting numbers. OrderID and InvoiceID.
If you add a field to tblOrderHeader, say OrderConf and make this a text field to carry "Yes" (not a tick box) then it will be easy to have a command button on your form that is clicked when an Order becomes an Invoice and "yes" will be entered in the field. From then on, the system will check for "yes" and if present, the number will be referred to as an Invoice rather then an Order.
No big issue with the Sku, just a suggestion.