The best time to ask your up-sell / cross-sell question is AFTER the customer has committed to the initial purchase, but just before they pay for their purchase. Once they commit they’re instantly in a purchase mindset. But after they pay for their purchase, they have mentally closed the transaction.