Quote Originally Posted by lat9 View Post
I can! It's a core-file issue; you'll need to edit /includes/classes/shipping.php's cheapest method:
Code:
  function cheapest() {
    if (!is_array($this->modules)) return false;
      $rates = array();

      foreach($this->modules as $value) {
        $class = substr($value, 0, strrpos($value, '.'));
        if (isset($GLOBALS[$class]) && is_object($GLOBALS[$class]) && $GLOBALS[$class]->enabled) {
          $quotes = isset($GLOBALS[$class]->quotes) ? $GLOBALS[$class]->quotes : null;
          if (empty($quotes['methods'])) {
            continue;
          }
          $size = sizeof($quotes['methods']);
          for ($i=0; $i<$size; $i++) {
            if (isset($quotes['methods'][$i]['cost'])){
              $rates[] = array('id' => $quotes['id'] . '_' . $quotes['methods'][$i]['id'],
                               'title' => $quotes['module'] . ' (' . $quotes['methods'][$i]['title'] . ')',
                               'cost' => $quotes['methods'][$i]['cost'],
                               'module' => $quotes['id']
              );
            }
          }
        }
      }

      $cheapest = false;
      $size = sizeof($rates);
      for ($i=0; $i<$size; $i++) {
        if (is_array($cheapest)) {
          // never quote storepickup as lowest - needs to be configured in shipping module
          if ($rates[$i]['cost'] < $cheapest['cost'] and $rates[$i]['module'] != 'storepickup') {
            $cheapest = $rates[$i];
          }
        } else {
          if ($rates[$i]['module'] != 'storepickup') {
            $cheapest = $rates[$i];
          }
        }
      }
      $this->notify('NOTIFY_SHIPPING_MODULE_CALCULATE_CHEAPEST', $cheapest, $cheapest, $rates);
      return $cheapest;
  }
... and change the highlighted line to read:
Code:
          if ($size === 1 || $rates[$i]['module'] != 'storepickup') {
That change enables the storepickup to be selected as the cheapest ... if it's the only shipping method available.
That works perfectly. Thank you, once again, for amazingly fast support.