Thought that I could share my experience.
On domestic flights :
- infant ticket can only be purchased at airport.
- passport required or birth certificate ok if baby born in China
- no bassinet available
- China Eastern provides infant seat belt (and I suppose most other airlines too) but NOT Hainan Airlines. The crew had no idea what I was asking for !!!
On international flights :
- agent can book the infant ticket
- need to reserve the bassinet with agent and ask to block the bulk seats
- better to get to airport early to secure bulk seats and bassinet (agents often mess up)
- take note that if the flight is a code share (2 airlines operating the same flight) you might not get the bassinet. Whatever they tell you. I booked my tickets with China Eastern. The flight was a code share with Air France and therefore operated by the latter. Despite having received at least 4 times confirmation that I had a bassinet reserved (phone confirmations + on checking in) I ended up not having the bulk seat nor the bassinet ! Apparently on code share flight priority is given to passengers who booked through the operating airline (in this case Air France). No matter if you arrive early or not. And as usual airlines prefer to lie then to tell the truth. Lucky for me I had a wonderful baby who slept for most the flight.




