Как отправить форму через сабмит, но перед сабмитом отправить пост запрос?
В подходе ошибка) 
2 пути, быстрый и верный. Верный - чистить корзину при получении callback от платежного сервиса с сообщением об успешном платеже (ну вот нет у меня денег на вебмани, а я 276 позиций каталога набивал полтора часа. Да я скорее клаву об стол разобью, чем повторю процедуру при ошибке на стадии оплаты)
Быстрый - кидать пост по клику на кнопку, которая должна творить сабмит. Тут как раз надо будет preventDefault - чтоб не отправилось, $.post() - чтоб ушло и $("form").submit(); - ручками отправить форму
Что-то типа такого можно сделать:$('#formid').on('submit', function(e) {
var self = this;
if(!self.hasOwnProperty('xajaxsubmitted')){
e.preventDefault();
$.ajax({
  type: 'POST',
  url: 'url',
  success : function(){
    self.xajaxsubmitted = true;
    $(self).submit();
  }
  });
}
});