You have to pay when your order is placed, so you may want to hold off for a while. I always place my order 3-4 weeks in advance just to be sure I get the day/time I want for delivery.
Anywhere between two to three weeks should be good. You can get a better delivery time if you place the order earlier. Also, if you are going during a busy time, they sometimes won't take any more orders because all the slots are full.