SQL2008? Well I have to say it that has been out of any support now for over 2 years so you really need to get that upgraded to 2019 and like yesterday.
Back to the question at hand, if you have 2008 then you need to write your own methods of capturing the deadlock or enable trace flag 1222 where the deadlock details then get written to the error log and you can see what processes where involved in the deadlock.
Your access methods to the data need to be the same in all processes.
Essentially you have two or more sessions involved taking locks in an opposite way to each other on a resource they both need access to.
session 1 takes a lock on “orders” then “order items”
session 2 takes a lock on “order items” then “orders”
You need to find the processes involved what they tried to run and go fix your code base to grab the locks in a uniform way.