Make shipping optional ubercart How to provide option for users to select whether to ship a product or not at time of chekout using ubercart in drupal ?
Make a new flat rate shipping quote called 'No shipping' with zero cost. Then in the Delivery method pane at checkout the user can choose between your shipping option and your no shipping option. 

You make shipping quotes at /admin/store/settings/quotes specifically the 'Add flat rate quote' link /admin/store/settings/quotes/methods/flatrate/add

Obviously you need both the ubercart shipping quotes module and ubercart fulfilment flat rate module enabled.