Jump to content

[under review]kann keine Zahlgsmodule mehr installieren


Recommended Posts

Guten Tag,

 

ich habe heute festgestellt, dass ich keine Zahlungs-Module mehr installieren kann, immer wenn ich dies versuche, bekomme ich folgende Fehlermeldung:

 

 

 

Duplicate entry '103-1' for key 'PRIMARY'

  INSERT INTO `ps_module_currency` (id_module, id_currency)
  SELECT 103, id_currency FROM `ps_currency` WHERE deleted = 0

 

 

Weiß einer woran das liegen könnte? Habe auch schon in der Tabelle nachgesehen, aber der Eintrag wird erst immer generiert, ist also nicht schon ursprünglich da, so das man wirklich von einem doppelten Eintrag sprechen könnte.

 

Danke, für Eure Hilfe!

Link to comment
Share on other sites

Fehler sagt ja schon aus: Duplicate entry. Der Eintrag (103) ist schon vorhanden, also doppelter Eintrag nicht möglich.

 

Dieser Eintrag existiert aber nicht direkt. Wenn dann versucht ihn scheinbar PS 2x direkt hintereinander anzulegen. Die ID in dem Fall die "103" ändert sich natürlich immer wenn ich versuche ein neues Modul zu installieren, weil es ja einfach nur inkrementiert wird.

Link to comment
Share on other sites

Welche Zahlungsmodule sind denn installiert ? Welches Modul versuchst du zu installieren ? Irgendwelche Änderungen an der Datenbank vorgenommen. Welche nicht Standard-Module (Originalmodule) verwendest du ?

 

Momentan habe ich alle deinstalliert und kriege kein einziges mehr installiert, aufgrund dieses Fehlers. Ich habe Germanext noch laufen. cart2cart hat eine demo-migration aus einem alten Magento-Shop vollzogen, ich weiß nicht, ob dadurch das ganze entstanden ist, defakto wundert es mich aber, dass er versucht Einträge doppelt zu erstellen.

 

Ich habe die Primarykeys mal aufgelöst und jeder Eintrag steht dann doppelt drin.

Link to comment
Share on other sites

Habe ich es mir doch fast gedacht und verkneife mir jedes weitere Kommentar dazu.

 

Nur eines, wie schon auch auf der eigenen Seite von Germanext zu lesen ist: Die Software verändert den Core. Du kannst die Änderungen aber nicht per Knopfdruck rückgängig machen. Bitte wende dich mit deinem Problem an den Entwickler, bzw. dessen Support. Abgeänderte Software kann Prestashop nicht supporten. Sorry.

Link to comment
Share on other sites

Habe ich es mir doch fast gedacht und verkneife mir jedes weitere Kommentar dazu.

 

Nur eines, wie schon auch auf der eigenen Seite von Germanext zu lesen ist: Die Software verändert den Core. Du kannst die Änderungen aber nicht per Knopfdruck rückgängig machen. Bitte wende dich mit deinem Problem an den Entwickler, bzw. dessen Support. Abgeänderte Software kann Prestashop nicht supporten. Sorry.

 

Ich weiß das germanext den Core verändert. Das ganze hat damit aber gar nichts zu tun, weil das ganze ja auch noch lief nachdem ich germanext installiert habe. Das Problem tritt erst seit ein paar Tagen auf. Muss also an etwas anderem liegen, oder übersehe ich da etwas in meiner Naivität?

Link to comment
Share on other sites

musst wohl dein Modul mal untersuchen die installations funktion ob da ein fehler drin ist, aber wie gesagt für forks kein support hier, Sorry

 

Ist ja leider bei allen Modulen, msus also wenn die Hauptroutine sein. Was kann ich denn als Ersatz für germanext nehmen? Ich meine bin eh kein Freund von der Extension! Aber gibts denn eine Alternative die nicht so tief eindringt ins System und trotzdem den Standards genügt? Also ohne das ich hier nun gerügt werde? =)

Link to comment
Share on other sites

Okay ja dann leigt es nicht allein am Modul, iwie scheint da ziemlich was schief zu laufen.

 

Kommt immer der gleiche Key zurück? Kannst du mal ein screenshot von der tabelle

module_currency

 

iwie ist ide abfrage auch sinnlos wo er oben anzeigt zumindest nicht einleuchtend.

 

Zur Grundfrage:

Naja am Besten auf Standard setzen und Anpassungen nur via module oder Templates lösen.

 

Zur not auch mal ein Override aber immer schön dokumentieren oder wenn möglich eine neue Funktion bauen

Link to comment
Share on other sites

Für jeden Tabellen-Eintrag laufen auch php's dahinter, was inwieweit angepasst wurde durch Germanext weiss ich nicht genau.

Deine DB würde ich nicht mehr verwenden.

 

Als Ersatz gibt es nur eigene Fixe die man hier im Forum findet und selbst leicht einbauen kann.

 

Am Besten neu anfangen. Germanext ändert die Routine weil sie in den Dateien so einprogrammiert ist. Eine Deinstallation ist nur mit Know-How möglich. Einfach so per Knopfdruck geht das nicht.

Link to comment
Share on other sites

Original-Code für die ps_module_currency kommend von der dafür zuständigen php lautet:

 

CREATE TABLE `ps_module_currency` (
`id_module` INT(10) UNSIGNED NOT NULL,
`id_currency` INT(11) NOT NULL,
PRIMARY KEY (`id_module`, `id_currency`),
INDEX `id_module` (`id_module`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;

 

 

Überprüfe, ob dieser Code gleich ist. Findest du in der DB-Tabelle unter SQL.

 

Sonst welches Modul wolltest du installieren ? Es kann auch sein, dass ein Modul von der germannext quer schiesst. Dort sind ja einige Zahlungsmodule mit an Bord. Alle deinstallieren und hoffen, dass nicht irgendetwas in den Tabellen-Anweisungen bereits geändert wurde. Denn sonst wird es schwer herauszubekommen, wo es hakt und nur Silbersaiten kann dir das Problem fixen.

Link to comment
Share on other sites

Okay ja dann leigt es nicht allein am Modul, iwie scheint da ziemlich was schief zu laufen.

 

Kommt immer der gleiche Key zurück? Kannst du mal ein screenshot von der tabelle

module_currency

 

iwie ist ide abfrage auch sinnlos wo er oben anzeigt zumindest nicht einleuchtend.

 

Zur Grundfrage:

Naja am Besten auf Standard setzen und Anpassungen nur via module oder Templates lösen.

 

Zur not auch mal ein Override aber immer schön dokumentieren oder wenn möglich eine neue Funktion bauen

 

Nein, der Key ist nicht immer der selbe, er inkrementiert das schon richtig. Aber aus irgendeinem Grund scheint er die Sachen doppelt zu erstellen wollen. Ich habe bei ps_modules_currency mal den Primary-Key entfernt und dann standen die Sachen 2x jeweils drin, das erklärt natürlich, wieso dann ein Fehler geschmissen wird.

 

Dann tritt der Fehler allerdings bei dem selben auf nur bei ps_modules_country

 

currency.jpg

Link to comment
Share on other sites

Im übrigen fällt mir auf, dass unter den Tabellen Optionen nichts von auto-increment eingetragen ist.

 

Ich weiß nicht genau, wie PS das handled, jedenfalls wird scheinbar nach jeder Installation eines neuen Moduls die module_id einfach inkrementiert, wie das nun genau vonstatten geht, weiß ich nicht exakt.

Link to comment
Share on other sites

mom. du bist wo ganz anders...

 

ich spreche von ps_module_currency wo du das Problem hast. Du zeigst mir einen screen von ps_currency, was nicht dasselbe ist. Bitte genau LESEN !!!

 

Dein Problem:

 

 INSERT INTO `ps_module_currency` (id_module, id_currency)

Link to comment
Share on other sites

PS handelt das genauso wie ich es dir gesagt habe. Eine php-Datei ist für das Anlegen und Verändern der Tabellen zuständig. Es ist eine Core-Datei. Wurde diese Core-Datei geändert, so bekommen die DB-Einträge auch eine andere Routine.

 

Der Code im Post #13 ist für 1.4.8.2. obwohl in meiner 1.4.7.3 und 1.4.5.1 ist er der gleiche.

 

In ps_module_corrency wird auch nichts inkrementiert, denn es gibt dort das garnicht. Es wird die ID eingetragen die dem Modul zugewiesen ist. Die ID der Module findest du im übrigen in der Tabelle ps_module. Dort siehst du anhand meines Beispiels/Screens z.B. dass ID 6 das Modul bankwire ist. Also nichts inkrementiert.

 

ps_currency ist nur zuständig für die Währungsdaten, diese Tabelle ist natürlich wachsend, also inkrementierend. Sie stellt aber diese Daten nur zur Verfügung für die Weiterverarbeitung und hat sonst keine Funktion. Dein Problem ist aber in der Funktionstabelle ps_module_currency, also wo ganz anders.

Link to comment
Share on other sites

Der Key wird normalerweise bei einer DB automatisch inkrementiert und muss ja eindeutig sein.

 

Tabelle ist die falsche wie cd2500 schon gesagt, hat bitte mal aktuelles bild anhängen, hast du iwelche dateien in dem ordner /override/classes und override/controllers ?

 

Wenn ja kannst die mal als ZIP anhängen vll findet sich dort ja der übeltäter

Link to comment
Share on other sites

Der Key wird normalerweise bei einer DB automatisch inkrementiert und muss ja eindeutig sein.

 

Tabelle ist die falsche wie cd2500 schon gesagt, hat bitte mal aktuelles bild anhängen, hast du iwelche dateien in dem ordner /override/classes und override/controllers ?

 

Wenn ja kannst die mal als ZIP anhängen vll findet sich dort ja der übeltäter

 

Die Tabelle habe ich eigentlich auch nur angehangen, weil du mir diese abverlangt hattest ;) Kannst du oben nachlesen, wobei ganz unbeteiligt ist diese ja auch nicht. Weil von dort die Currency ID bezogen wird.

 

Kommt immer der gleiche Key zurück? Kannst du mal ein screenshot von der tabelle

module_currency

 

Nun aber nochmal ein Screenshot von der anderen Tabelle, nachdem ich versucht habe ein Modul zu installieren was dann diese Fehlermeldung brachte (natürlich im Debug SQL-Modus versteht sich). Die Tabelle war zuvor leer, weil ich alle Zahlungsmodule testweise deinstalliert habe.

 

Duplicate entry '117-1' for key 'PRIMARY'
  INSERT INTO `ps_module_currency` (id_module, id_currency)
  SELECT 117, id_currency FROM `ps_currency` WHERE deleted = 0

 

Der Create-Code der Tabelle ist dieser:

 

CREATE TABLE `ps_module_currency` (
`id_module` INT(10) UNSIGNED NOT NULL,
`id_currency` INT(11) NOT NULL,
PRIMARY KEY (`id_module`, `id_currency`),
INDEX `id_module` (`id_module`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;

 

Deckt sich also mit dem von cd2500.

Ja, natürlich befinden sich overrides in diesen Ordnern, diese werde ich nun hier anhängen.

 

https://dl.dropbox.com/u/13255284/override.zip

 

Danke für Eure Hilfe Jungs!

Link to comment
Share on other sites

Danke für den Ordner Override: Genau darin liegt das Problem. Bitte wende dich an Silbersaiten, um den Fehler zu beheben. Dein Ordner Override enthält jede Menge Dateien die nicht Original von Prestashop selbst stammen, sondern von deiner germanext (unter anderem gibt es dort auch eine eigene Regel für PaymentModule). Wir können hier im Forum dein Problem nicht fixen. Auch ist es Aufgabe des Entwicklers seine Kaufmodule selbst zu fixen, wenn Probleme erscheinen. Sorry.

 

Silbersaiten hat eine eigene Supportadresse auf deren eigenen Homepage, bzw. eine Supportmail in den Moduldokus. Bitte nutze eines der beiden für persönlichen Support.

Link to comment
Share on other sites

Ich sag nur, wende dich an den Support von dem Shop wo du gekauft hast:

 

solche overrides in in der Classe PaymentModule.php :

// Insert currencies availability
 if ($this->currencies_mode == 'checkbox')
 {
  if (!Db::getInstance()->Execute('
  INSERT INTO `'._DB_PREFIX_.'module_currency` (id_module, id_currency)
  SELECT '.(int)($this->id).', id_currency FROM `'._DB_PREFIX_.'currency` WHERE deleted = 0'))
return false;
 }
 elseif ($this->currencies_mode == 'radio')
 {
  if (!Db::getInstance()->Execute('
  INSERT INTO `'._DB_PREFIX_.'module_currency` (id_module, id_currency)
  VALUES ('.(int)($this->id).', -2)'))
return false;
 }
 else
  Tools::displayError('No currency mode for payment module');

 

Das sagt ja dann acuh schon alles woher der fehler kommt.

 

Das Create Table wo cd2500 aufgeführt hat wird ja nur beim initilaen alegen benötigt, also bei updates usw nicht.

Edited by BluTiGeS (see edit history)
Link to comment
Share on other sites

Das Create Table wo cd2500 aufgeführt hat wird ja nur beim initilaen alegen benötigt, also bei updates usw nicht.

 

Das ist korrekt, dennoch gehe auch ich durch Ausschlussverfahren und da ich germanext nicht so im Detail kenne, gehe ich step-by-step vor bei der Analyse eines Fehlers. Könnte ja sein, dass bereits bei der Anlage schon ein Fehler vorliegt. Schade, dass es nicht so war, denn sonst leicht zu korrigieren...

 

Die von dir genannte Passage in dem File ist aber nicht die einzige... ich habe da noch weitere Passagen gefunden, die die Logik brechen. (Zeilen mit true, false z.B.).

 

Aus gutem Grund wissen wir, warum hier weder Forks noch externe Kaufmodule der German Community supported werden. Warum sollte Prestashop Dinge fixen, die nicht aus Ihrer Entwicklerschmiede stammen ? Die Eigenverantwortung obliegt jedem Entwickler selbst.

Link to comment
Share on other sites

Dazu musst du zunächst aber eine komplett saubere Prestashop-Installation vornehmen. Also Download von PS Hier neu installieren und dann loslegen. Mit einem bereits aktiviertem german* Modul würde ich dir die weitere Nutzung deiner DB und auch der Software nicht empfehlen.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...