Please help me to rank/recommend the notifications as per user preferences

I have a weekly notifications sample data like this


i want to send these to many users (1000). Now the requirement is how can i rank/send these notifications as per user preferences. i have user preferences table like below image.

View attachment 226
so user 101 he set country (Singapore and japan) and order and product type in preferences so for 101 user notification_ID 5,6,7,8 and 15 should come in first in the list and user 102 UK and Austria notifications should come these there are so many users..means these notifications should be prioritised based on user preferences. is there any Machine Learning algorithm on this or any product wise formula to get this? Thanks