Ubercart - Sale approval required before payment
There's many ways to go about this but I would use Rules &amp; custom Role called Vendor. You can specify on Drupal load if a user doesn't have a Vendor role &amp; is loading the cart/checkout page. That you can redirect them to your application form with a message prompting them to apply before checkout.

Here's an example rule:

{ "rules_check_vendor" : {
    "LABEL" : "Check Vendor",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "test" ],
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:path" ],
          "match" : "cart\/checkout",
          "operation" : "starts"
        }
      },
      { "NOT user_has_role" : {
          "account" : [ "site:current-user" ],
          "roles" : { "value" : { "3" : "3" } }
        }
      }
    ],
    "DO" : [
      { "drupal_message" : { "message" : "In order to become a vendor. Please contact us." } },
      { "redirect" : { "url" : "contact" } }
    ]
  }
}