Budget: 10000 UAH Deadline: 7 days
Good day! I have created an anti-bot for the order forms, and your case is classic — mobile operators place subscribers under CGNAT, so you will never distinguish bots from real clients by IP.
I wouldn't block at all. An order is always created, but it receives a suspicion score, and suspicious ones go into moderation instead of being rejected — this way, the detection error doesn't lose anyone, and that's your main risk. Scores are accumulated based on behavior at checkout: a real person moves the mouse and types with pauses, while a bot fills out the form instantly or without any input events at all. The second strong signal is the browser fingerprint, because when the same signature comes from two hundred addresses, it stands out. The third is the fictitiousness of the phone and address; randomness is immediately visible there.
For advertising, I will add the most aggressive IPs to the exclusion list via API. I will take it from your budget, one week of work.
Is your checkout a stock OpenCart or a one-step module?