Drupal Commerce: How to prevent (or suspend) checkout where no shipping rate is defined?
Look at https://www.drupal.org/project/commerce_rules_extra (Commerce Rules Extra) which allows you to alter (including disabling) checkout panes based on conditions.