User exits
User exits are predefined places in the SAP standard coding where customer can put their own logic in order to adjust standard processes to customer requirements. These places are predefined by SAP.
BADI
Business Add ins - hook custom enhancement to standard functionality. A Badi is an interface.
Idoc
SAP object that carries data of a business transaction from one system to another in the form of electronic message.