FROM:
http://forums.oscommerce.com/index.p...post&p=1318569

INSTRUCTIONS:

Credit for this fix goes to matt (iiinetworks in the forum)

FILE: includes/classes/order.php

Find the following:

if ($products[$i]['attributes']) {
$subindex = 0;
reset($products[$i]['attributes']);
while (list($option, $value) = each($products[$i]['attributes'])) {

Replace with:

if ($products[$i]['attributes']) {
$subindex = 0;
ksort($products[$i]['attributes']);
reset($products[$i]['attributes']);
while (list($option, $value) = each($products[$i]['attributes'])) {

--------------------------------------------------------------------------------------------

FILE: includes/classes/shopping_cart.php

Find the following:

if (isset($this->contents[$products_id]['attributes'])) {
reset($this->contents[$products_id]['attributes']);
while (list($option, $value) = each($this->contents[$products_id]['attributes'])) {

Replace with:

if (isset($this->contents[$products_id]['attributes'])) {
ksort($this->contents[$products_id]['attributes']);
reset($this->contents[$products_id]['attributes']);
while (list($option, $value) = each($this->contents[$products_id]['attributes'])) {

Find the following:

$attributes_query = tep_db_query("select products_options_id, products_options_value_id, products_options_value_text from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products['products_id']) . "'");

Replace with:

$attributes_query = tep_db_query("select products_options_id, products_options_value_id, products_options_value_text from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where customers_id = '" . (int)$customer_id . "' and products_id = '" . tep_db_input($products['products_id']) . "' order by products_options_id");

More...