Checkout work is the most consequential development on a Plus store — a mistake here costs revenue immediately and visibly. Screen harder than you would for a theme project.
Establish whether you need configuration or code. Checkout Blocks handles a lot without code: content blocks, custom fields, conditional display, basic upsells. Shopify Functions and checkout UI extensions are developer territory — custom discount logic, payment method rules, delivery customisation. Knowing which side your requirement falls on prevents paying developer rates for something a Plus merchant could configure in an afternoon.
For migration off checkout.liquid, get an inventory first. Every customisation in your legacy checkout needs a decision: rebuild as a block, rebuild as a Function, replace with an app, or drop it. That inventory is the scope, and quoting without it is guesswork. Ask for it as a deliverable before agreeing a price.
Ask what they've shipped on Plus checkouts, and when. Checkout Extensibility has evolved quickly. A developer who has shipped several Plus checkout migrations knows the constraints — what Functions can and can't do, where extension points exist, which requirements simply aren't possible — and will tell you early rather than after you've paid for discovery.
Insist on staged testing. Checkout changes should be tested with real transactions in a controlled way before going live to all traffic. Any developer proposing to push checkout changes straight to production without a testing plan is telling you something about how they work.
Never schedule checkout work into Q4. This should be obvious and gets ignored every year. Changes to your highest-converting surface during your highest-traffic period is a risk with no upside — the work will still be there in January.