MySQL trigger - delete data from multiple tables
You're missing a BEGIN ... END, as follows:

DELIMITER $$

CREATE TRIGGER `delete_organisation`
BEFORE DELETE ON `organisations`
FOR EACH ROW
BEGIN
  DELETE FROM contacts WHERE OLD.id = organisation_id ; 
  DELETE FROM orders WHERE OLD.id = orders.organisation_id;
  DELETE from organisations_products where OLD.id = organisation_id ;
  DELETE FROM organisations WHERE OLD.id = organisations.parent ; 
END $$