Jump to content

Artikel verschwinden


Recommended Posts

Hallo zusammen,

 

in unserem shop verschwinden sporadisch Artikel.

Version 8.2.1.

 

Die Artikel sind dann gelöscht und müssen neu angelegt werden.

Ich hatte schon den Verdacht, dass die Artikel automatisch bei Menge 0 gelöscht werden, ist aber nicht so.

 

Gibt es irgendwo einen Schalter womit Artikel unter bestimmten Gegebenheiten automatisch gelöscht werden?

 

Danke für alle Hinweise

Harald

Link to comment
Share on other sites

Wurde zu den Zeitpunkten, als Artikel gelöscht wurden, am Shop gearbeitet, z. B. neue Artikel eingepflegt oder importiert?

Hast du einmal das Shop-Passwort und am besten auch den Namen des Admin-Ordners geändert, vielleicht greift jemand auf den Shop zu?

Link to comment
Share on other sites

5 hours ago, ComGrafPL said:

Haben Sie die Protokolle überprüft? Gibt es eine API oder ein benutzerdefiniertes Modul für die Produktverwaltung?

In den Protokollen nichts gefunden.

Keine API oder benutzerdefinierte Module.

Link to comment
Share on other sites

3 hours ago, rictools said:

Wurde zu den Zeitpunkten, als Artikel gelöscht wurden, am Shop gearbeitet, z. B. neue Artikel eingepflegt oder importiert?

Hast du einmal das Shop-Passwort und am besten auch den Namen des Admin-Ordners geändert, vielleicht greift jemand auf den Shop zu?

ich weiss leider keine genauen Zeitpunkte, habe nichts im log gefunden.

Passwörter wurden sofort geändert, gibt es ein API Token oder ähnliches?

Link to comment
Share on other sites

Ich hab glaub ich ne Spur, evtl. kann jemand etwas damit anfangen:

 

Katalog-> Artikel -> 81 Artikel, höchste id 218

Katalog -> Lager -> 134 Artikel, höchste id 222

Shop-Einstellungen -> Suche -> Indizierte Artikel 102 / 102, höchste id leider nicht sichtbar

 

 

Link to comment
Share on other sites

39 minutes ago, cocos.codes said:

Welche Dateien befinden sich in den Verzeichnissen override/classess und override/controllers?

/override/classes # ls
assets  cache  Cart.php  checkout  container  controller  Customer.php  db  Employee.php  exception  form  helper  index.php  lang  log  module  order  pdf  range  shop  Smarty  stock  tax  tree  webservice

/override/controllers # ls
admin  front  index.php

 

 

Link to comment
Share on other sites

38 minutes ago, rictools said:

Das ist schon sehr seltsam. Im Shop (Frontend) sind die Artikel vorhanden?

Eine Standardfrage bei rätselhaften Symptomen: Welche PHP-Version ist aktiv?

teilweise sind sie auch im frontend weg.

als ob jemand absichtlich Artikel löscht.

es haben nur 2 Personen zugriff, beide löschen nichts ohne abspräche mit dem anderen.

 

PHP 8.1.33

Link to comment
Share on other sites

Gelöscht scheinen die Artikel nach deiner Angabe aber ja nicht zu sein, sondern sie werden nur nicht in der Artikelliste (und dann wohl teilweise auch im Shop) nicht angezeigt.

Hast du einmal direkt in die Datenbank geschaut? Vielleicht lassen sich da Gemeinsamkeiten fehlender Artikel erkennen.

Link to comment
Share on other sites

20 minutes ago, rictools said:

Suche nach Gemeinsamkeiten der Artikel, die in der Artikelliste im BO oder im Shop nicht angezeigt werden.

Ich will jetzt nicht den ganzen Thread durchsuchen, hast du schon einmal unter "Leistung" alle Fremdmodule und Overrides deaktiviert?

hatte ich bereits deaktiviert.

da ich keine Gemeinsamkeiten finde, wollte ich sowas wie einen debug log, nur für die Artikel.

kann man das evtl. im mysql? Tabellenüberwachung?

Link to comment
Share on other sites

Änderungen in MySQL können mit sogenannten TRIGGERN überwacht werden. Nachfolgend finden Sie ein vollständiges Beispiel für einen Trigger:

 

-- 1. Wir erstellen eine Audit-Tabelle
CREATE TABLE audit_log_products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    tabela VARCHAR(50),
    operacja VARCHAR(10),
    rekord_id INT,
    user_mysql VARCHAR(100),
    stare_dane JSON,
    nowe_dane JSON,
    data_zmiany TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 2. Trigger nach INSERT (neues Produkt)
DELIMITER //
CREATE TRIGGER ps_product_ai
AFTER INSERT ON ps_product
FOR EACH ROW
BEGIN
    INSERT INTO audit_log_products (tabela, operacja, rekord_id, user_mysql, nowe_dane)
    VALUES (
        'ps_product',
        'INSERT',
        NEW.id_product,
        USER(),
        JSON_OBJECT(
            'price', NEW.price,
            'quantity', NEW.quantity,
            'active', NEW.active,
            'date_add', NEW.date_add
        )
    );
END;
//
DELIMITER ;

-- 3. Trigger nach UPDATE (Produktänderung)
DELIMITER //
CREATE TRIGGER ps_product_au
AFTER UPDATE ON ps_product
FOR EACH ROW
BEGIN
    INSERT INTO audit_log_products (tabela, operacja, rekord_id, user_mysql, stare_dane, nowe_dane)
    VALUES (
        'ps_product',
        'UPDATE',
        NEW.id_product,
        USER(),
        JSON_OBJECT(
            'price', OLD.price,
            'quantity', OLD.quantity,
            'active', OLD.active,
            'date_upd', OLD.date_upd
        ),
        JSON_OBJECT(
            'price', NEW.price,
            'quantity', NEW.quantity,
            'active', NEW.active,
            'date_upd', NEW.date_upd
        )
    );
END;
//
DELIMITER ;

-- 4. Trigger nach DELETE (Löschen eines Produkts)
DELIMITER //
CREATE TRIGGER ps_product_ad
AFTER DELETE ON ps_product
FOR EACH ROW
BEGIN
    INSERT INTO audit_log_products (tabela, operacja, rekord_id, user_mysql, stare_dane)
    VALUES (
        'ps_product',
        'DELETE',
        OLD.id_product,
        USER(),
        JSON_OBJECT(
            'price', OLD.price,
            'quantity', OLD.quantity,
            'active', OLD.active,
            'date_add', OLD.date_add
        )
    );
END;
//
DELIMITER ;

 

So funktioniert es:

  • Jeder INSERT / UPDATE / DELETE in ps_product wird an audit_log_products weitergeleitet.
  • Sie erhalten: Vorgang, Produkt-ID, MySQL-Benutzer, Daten vor und nach der Änderung.
  • Die Daten werden in JSON-Feldern gespeichert → sie lassen sich später leicht analysieren.
Link to comment
Share on other sites

Das Löschen von Artikeln anhand ihrer URL ist nur über die PrestaShop-API oder ein Modul möglich, das über diese Funktion verfügt.

Haben Sie die API aktiviert? Gehen Sie dazu in das Menü ERWEITERTE EINSTELLUNGEN >> Webservice >> API.

Sie können auch die Serverprotokolle einsehen – dort werden alle Aufrufe von URLs mit Parametern angezeigt.

Link to comment
Share on other sites

13 hours ago, rictools said:

Ich hatte dich so verstanden, dass alle Artikel in der Datenbank enthalten sind und auch in der Lagerliste, nur nicht in der Artikelliste im BO und teilweise im Shop ...

nee, leider sind die Artikel nicht im Artikelstamm, aber im shop und im backend über die suche windbar.

Link to comment
Share on other sites

4 hours ago, cocos.codes said:

Das Löschen von Artikeln anhand ihrer URL ist nur über die PrestaShop-API oder ein Modul möglich, das über diese Funktion verfügt.

Haben Sie die API aktiviert? Gehen Sie dazu in das Menü ERWEITERTE EINSTELLUNGEN >> Webservice >> API.

Sie können auch die Serverprotokolle einsehen – dort werden alle Aufrufe von URLs mit Parametern angezeigt.

API ist aus.

Dann warte ich mal bis sich die Tabelle mit den Änderungen füllt.

Danke.

Link to comment
Share on other sites

vor 25 Minuten schrieb harald.thomas:

nee, leider sind die Artikel nicht im Artikelstamm, aber im shop und im backend über die suche windbar.

Moment, jetzt komme ich nicht mehr mit ...

windbar = findbar?

Was ist der "Artikelstamm"?

Du hattest geschrieben "In der Datenbank sehen alle Artikel gleich aus.", stehen jetzt  alle Artikel, die du an anderen Stellen findest, in der Datenbank (ggf. in welcher Tabelle) oder nicht? Man kann nichts finden, was sich nicht in der Datenbank befindet, das geht einfach nicht ...

Sorry, es ist einfach wichtig, dass man bei Formulierungen sehr genau ist (und auch Tippfehler korrigiert), sonst sind am Ende alle nur noch verwirrt ...

 

Link to comment
Share on other sites

Sorry, typo nicht gesehen.

 

Artikelstamm ist für mich das, was ich unter Katalog/Artikel sehe.

Hier sind aber nicht alle Artikel drin.

Wenn ich oben neben dem Schnellzugriff über die Suche suche, dann finde ich Artikel, die nicht in der Übersicht von Katalog/Artikel sind. Diese Artikel sind editierbar und werden im Frontend angezeigt.

@cocos.codes: die Trigger sind drin, aber es kommen nur gewollte Eintrage.

 

Link to comment
Share on other sites

vor einer Stunde schrieb harald.thomas:

Wenn ich oben neben dem Schnellzugriff über die Suche suche ...

Das geht  eigentlich nicht, du kannst nicht auf den Suchbutton drücken, ohne zuvor IN der Schnellzugriffleiste in ein Feld etwas eingegeben zu haben. Oder hast du vielleicht nicht die Standardseite, sondern es läuft ein Modul?

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...