Jump to content
xt:Commerce Community Forum
Sign in to follow this  
Fusco

Großes Problem mit der xt_orders Tabelle

Recommended Posts

Hallo,

ich habe gerade einen verzwickten Fehler gefunden und weiß nicht, was ich tun kann.

Folgendes: mein Shop - Version 4.1. - hat derzeit ein Problem mit einer Tabelle in der Datenbank. Es geht um die xt_orders. Ich hatte bei der Shopinstallation anstatt "xt" etwas anderes gewählt: sa_orders.

Der Shop speichert nun aber ordnungsgemäß Daten in die sa_orders. "Will" aber Daten aus der xt_orders lesen. Z.B. bei "Mein Konto" (wenn bereits Bestellungen getätigt wurden). Oder wenn die Seite shop/checkout/success nach "zahlungspflichtig bestellen" aufgerufen werden soll. Wenn die xt_orders nicht existiert, kommt nur eine weiße Seite. Ich war schon am verzweifeln, habe aber zumindest den Fehler erkannt und die sa_orders kopiert und als xt_orders gespeichert (die xt_orders ist dann natürlich nur der aktuelle Stand vom Kopieren).

Was kann man in diesem Fall tun, damit der Shop die sa_orders korrekter weise ausliest?

Ich kann auch leider nicht sagen, wie der Fehler entstanden ist. Das einzige eingreifende, was ich getan habe, ist, xtPayments zu registrieren. Am Template liegt es nicht, der Fehler lässt sich auch mit dem Originalem reproduzieren.

Edited by Fusco

Share this post


Link to post
Share on other sites

Hi, habe das gleiche Problem... Ich vermute, da ist irgendwo das Prefix "xt_" hardcoded. Habe alle Plugins schon deaktiviert, der Fehler passiert trotzdem immer beim Abschicken einer Bestellung:

mysql error: [1146: Table 'xxx.xt_orders' doesn't exist] in EXECUTE("

SELECT

`shop_id`

FROM

xt_orders

WHERE xt_orders.`orders_id` = 4

LIMIT 1;")

Hast du das Problem lösen können?

Share this post


Link to post
Share on other sites

Fehler gefunden! Hat sich ale gelohnt, so spät nochmal das Notebook aufzuklappen. Und zwar war wie schon vermutet der Tabellenname hardcoded: In der Datei xtFramework/classes/class.order.php in Zeile 639ff steht die SQL-Anweisung. Sie muss durch folgendes ersetzt werden:

$sql="SELECT `shop_id` FROM " . TABLE_ORDERS . " WHERE " . TABLE_ORDERS . ".`orders_id` = ".$oID." LIMIT 1;";

Dann klappts auch mit anderen Tabellen-Prefixes.

@mzanier: Sollte möglichst im nächsten Release gefixt werden, sonst kann niemand mit alternativen Tabellen-Prefixes jemals Bestellungen generieren :D

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...