By default, Ubercart sets the breadcrumb on the checkout page to simply "Home", which I personally find a bit odd. Because it calls drupal_set_breadcrumb() late in the request cycle, it's not even possible to create menu links for use by the menu_breadcrumb or menutrails modules. Stranger still, the cart settings page offers a "Custom cart breadcrumb" text and URL option, but it's hard-coded to use a single link instead of a trail of links.
Here is a small snippet that will set the breadcrumbs to mimic the URL paths, for example:
Home › Cart › Checkout
/**
* Implementation of hook_preprocess_page().
*/
function mymodule_preprocess_page(&$variables) {
/*
* This section sets the breadcrumb on the cart pages hierarchically
* according to the path elements. A preprocess function is
* needed instead of drupal_set_breadcrumb() because Ubercart
* aleady calls drupal_set_breadcrumb() with undesirable results,
* which also thwarts the menutrails module.
*/
$menu = menu_get_item();
if (preg_match('/^cart($|\/)/', $menu['path'])) {
$crumbs = array(l(t('Home'), '<front>'));
$paths = array();
foreach ($menu['map'] as $arg) {
$paths[] = $arg;
$crumbs[] = l(ucfirst($arg), implode('/', $paths));
}
$variables['breadcrumb'] = theme('breadcrumb', $crumbs);
}
}