In Zen Cart 1.5.5, someone noticed that when trying to reset a query (using $the_query->Move (0)) didn't work, so they "fixed" the behavior.

Unfortunately, that fix now breaks existing plugins (a couple of mine, that I'll need to hunt up, and others) which have "known" that to reset a query you had to:
Code:
$the_query->Move (0);
$the_query->MoveNext ();
to accomplish that feat. Now, any plugin that requires a query-reset is going to have to check the Zen Cart version to see whether that MoveNext () call is required.

I put together a teeny script to illustrate the issue:
Code:
<?php
include ('includes/application_top.php');
$list = $db->Execute ("SELECT * FROM " . TABLE_ORDERS_STATUS . " ORDER BY orders_status_id ASC");
echo "First pass iteration:<br />";
while (!$list->EOF) {
    echo sprintf ("Orders status id = %u, name = %s<br />", $list->fields['orders_status_id'], $list->fields['orders_status_name']);
    $list->MoveNext ();
}
echo "<br />Second pass iteration:<br />";
$list->Move (0);
$list->MoveNext ();
while (!$list->EOF) {
    echo sprintf ("Orders status id = %u, name = %s<br />", $list->fields['orders_status_id'], $list->fields['orders_status_name']);
    $list->MoveNext ();
}
and then ran that script on a "fresh" Zen Cart 1.5.4 installation, yielding:
Code:
First pass iteration:
Orders status id = 1, name = Pending
Orders status id = 2, name = Processing
Orders status id = 3, name = Shipped
Orders status id = 4, name = Update

Second pass iteration:
Orders status id = 1, name = Pending
Orders status id = 2, name = Processing
Orders status id = 3, name = Shipped
Orders status id = 4, name = Update
That same script, run on a "fresh" Zen Cart 1.5.5 (3-29) installation yields:
Code:
First pass iteration:
Orders status id = 1, name = Pending
Orders status id = 2, name = Processing
Orders status id = 3, name = Delivered
Orders status id = 4, name = Update

Second pass iteration:
Orders status id = 2, name = Processing
Orders status id = 3, name = Delivered
Orders status id = 4, name = Update
See how the 2nd-pass output is missing the first orders-status record? That's what's going to happen to all those plugins that were just "doing the right thing" when they're run without change on Zen Cart 1.5.5.

Please note that I'm not asking for the behavior to be modified, since there are now Zen Cart 1.5.5 installations with this functionality and it will just further compound the issue if the 1.5.5 behavior is changed mid-stream. I'm posting to let other plugin authors know that they're going to need to check their plugins, too.