This paper focuses on order acceptance and scheduling (OAS) problem, where both acceptance and sequencing decisions have to be handled simultaneously. Because of its complexity, designing effective heuristics or meta-heuristics for OAS is challenging. This paper will investigate how genetic programming (GP) can be used to deal with OAS. The goal of this paper is to develop new GP frameworks to evolve high-performance scheduling rules/heuristics for OAS. The new frameworks are developed based on two key aspects: (1) separating acceptance and sequencing decisions, and (2) enhancing the quality of scheduling rules by embedding heuristic search mechanisms. The experimental results show that separating decisions is not trivial and can easily lead to overfitting issues. Meanwhile, embedding heuristic ideas into the scheduling rules can help search for better solutions for OAS.