af agentjensen » 2008-07-25 09:12
Jeg fik løst problemet med at den sprang over nummer.
Fejlen lå i checkout_proces.php.
Jeg har haft installeret epay, men gik tilbage til fribetaling.
Begge piller i checkout_process og resultatet var at jeg havde disse linier:
/ ------------ ePay changed start ---------
if (strncmp($payment, 'epay', 4) == 0) {
tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', 'orders_id = ' . $order_id);
$insert_id = $order_id;
} else {
// else do as usual
tep_db_perform(TABLE_ORDERS, $sql_data_array);
$insert_id = tep_db_insert_id();
}
if (tep_session_is_registered('cc_transactionid') && strncmp($payment, 'epay', 4) == 0) {
//
// Do nothing though!
//
} else {
// ------------ ePay changed end ---------
// ------------ fribetaling changed start ---------
if (strncmp($payment, 'fribetaling', 4) == 0) {
tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', 'orders_id = ' . $order_id);
$insert_id = $order_id;
} else {
// else do as usual
tep_db_perform(TABLE_ORDERS, $sql_data_array);
$insert_id = tep_db_insert_id();
}
// ------------ fribetaling changed end ---------
Det er næsten samme kode og linierne med $insert_id = $order_id; som er der 2 gange og det er der ordre nummeret genereres.
Jeg fjernede alle fingeraftryk af epay og fik nu kun disse linier:
if (strncmp($payment, 'fribetaling', 4) == 0) {
tep_db_perform(TABLE_ORDERS, $sql_data_array, 'update', 'orders_id = ' . $order_id);
$insert_id = $order_id;
} else {
// else do as usual
tep_db_perform(TABLE_ORDERS, $sql_data_array);
$insert_id = tep_db_insert_id();
}
Min pointe er at der uanset hvad kun skal generes et ordre nummer i checkout process.
Så kun en genering af ordrenummer eller springer den een over.
Måske lidt svært at følæge - forklaringen - men håber alligevel den har skabt lys.
Mvh
Michael / AgentJensen
KUN en tåbe frygter ikke PHP