Synchronisation Artikel / richtiges Löschen der Artikel

vowawi

Aktives Mitglied
6. Juni 2007
23
0
Hi,
bei der Webshop-Synchronisation (insbesondere Artikel) sind mir folgende Punkte aufgefallen:
1. Gelöschte Artikel (in JTL-Wawi) werden auf VM-Seite nicht gelöscht, sondern diese Produkte werden auf unpublished gesetzt.
2. Werden Produkte in virtuemart gelöscht, werden die Artikel bei JTL-Wawi nicht gelöscht.
3. Eine erneute Synchronisation legt diese Produkte (siehe 2.) nicht wieder an, da die Mapping-Tabelle (jtlwawi_martikel) die Zuordnung zu dem gelöschten Produkt noch enthält.

Für mich stellt die Wawi das führende System dar, somit stelle ich mal dies zur Diskussion:
zu 1. VM-Produkte sollten, wenn sie aus der Wawi entfernt wurden ebenso gelöscht werden.
zu 2. Das ist gut so, da die Änderungen im Shop keine Auswirkungen auf die Wawi haben sollten.
zu 3. Produkte sollten wieder über die Synchronisation angelegt werden, auch wenn sie mal im VM-Shop gelöscht wurden.

Was meint Ihr ?

Gruß Volker
 

Guenter H.

Moderator
Mitarbeiter
10. November 2006
4.225
5
Styria / Austria
Re: Synchronisation Artikel

hi,

Zitat von vowawi:
Hi,
bei der Webshop-Synchronisation (insbesondere Artikel) sind mir folgende Punkte aufgefallen:
1. Gelöschte Artikel (in JTL-Wawi) werden auf VM-Seite nicht gelöscht, sondern diese Produkte werden auf unpublished gesetzt.

das wird auch beim XTC- shop so gehandhabt. es gibt aber eine connector-anpassung, wo beim löschen von artikel in der wawi diese auch aus der shop-db gelöscht werden. connector anpassung XTC



Zitat von vowawi:
2. Werden Produkte in virtuemart gelöscht, werden die Artikel bei JTL-Wawi nicht gelöscht.

änderungen an artikel sollten ausschließlich über die wawi durchgeführt werden, da es ansonsten zu problemen kommen kann. siehe zb. hier: löschen von artikel im shop-admin
Zitat von vowawi:
3. Eine erneute Synchronisation legt diese Produkte (siehe 2.) nicht wieder an, da die Mapping-Tabelle (jtlwawi_martikel) die Zuordnung zu dem gelöschten Produkt noch enthält.

siehe punkt 2

grüße

günter
 

vowawi

Aktives Mitglied
6. Juni 2007
23
0
Löschen von VM-Produkten statt unpublished

Hallo Günter,
vielen Dank für deine Hilfe sowie die hilfreichen Links.
Das Löschen von Produkten im VM- Shop werde ich somit organisatorisch sicherstellen, ist okay so.
Die Sache mit der Connector-Anpassung ist für mich ein bischen schwieriger, da ich noch zu wenig php-Kenntnisse habe. Nun habe ich mal folgenden Ansatz gewählt:
Artikel.php ab Zeile 116
Code:
		if ($product_id>0)
// Produkte nicht veröffentlichen, wenn in Wawi gelöscht
//			eS_execute_query("update ".DBPVM."product set product_publish=\"N\" where vendor_id=".VENDOR_ID." and product_id=".$product_id);
// Produkte löschen, wenn in Wawi gelöscht
/* Attribute löschen */
			eS_execute_query("delete from ".DBPVM."product_attribute_sku where product_id=".$product_id); 
/* Kategorien löschen */
			eS_execute_query("delete from ".DBPVM."product_category_xref where product_id=".$product_id);
/* Hersteller-Referenz löschen */
			eS_execute_query("delete from ".DBPVM."product_mf_xref where product_id=".$product_id);							
/* ProduktType-Relationen löschen */
			eS_execute_query("delete from ".DBPVM."product_product_type_xref where product_id=".$product_id);							
/* Produkt-Votes löschen */
			eS_execute_query("delete from ".DBPVM."product_votes where product_id=".$product_id);							/* Produkt-reviews löschen */
			eS_execute_query("delete from ".DBPVM."product_reviews where product_id=".$product_id);
/* Produkt-Relationen löschen */
			eS_execute_query("delete from ".DBPVM."product_relations where product_id=".$product_id);						
/* Produkt-Preise löschen */
			eS_execute_query("delete from ".DBPVM."product_price where product_id=".$product_id);
/* Produkt löschen */
			eS_execute_query("delete from ".DBPVM."product where vendor_id=".VENDOR_ID." and product_id=".$product_id); 
/* Mapping löschen */
			eS_execute_query("delete from jtlwawi_martikel where product_id=".$product_id); 			

 							
		$return = 0;

Den ursprünglichen Update habe ich auskommentiert und die DELETE-Anweisungen eingefügt, mit folgendem Ergebnis:
1. Artikel in Wawi löschen => Produkt in VM wird gelöscht :D

2. Artikel in Wawi inaktiv => Produkt in VM wird gelöscht. Okay, damit kann ich leben, obwohl es mir lieber wäre, wenn ich in der artikel.php das Artikel-Kennzeichen <inaktiv> zur Verfügung hätte. Dann könnte ich den Fall unterscheiden und das Produkt auf "unpublished" setzen. Fällt aber in die Rubrik nice-to-have :)

3. Inaktiven Artikel in Wawi wieder auf aktiv setzen => Produkt wird in VM angelegt, nur sind keine Produktbilder enthalten. Diese werden erst hochgeladen, wenn ich sie in der wawi nochmals zuordne. Muss ich da andes vorgehen ?

4. Was ich beim Löschen noch gar nicht behandelt habe (mangels php-Kenntnisse), ist das Entfernen der zugehörigen Image-Dateien aus dem Shop-Verzeichnis. Falls da noch jemand ein Tipp hätte. :)

Danke und Gruß
Volker
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
300
Köln
Hallo Volker,

hast Du doch ganz gut hinbekommen.

Artikel in Wawi inaktiv => Produkt in VM wird gelöscht. Okay, damit kann ich leben, obwohl es mir lieber wäre, wenn ich in der artikel.php das Artikel-Kennzeichen <inaktiv> zur Verfügung hätte.
Beide Ereignisse lösen dasselbe aus, nämlich action=3. Du könntest schummeln und etwa die Mindestbestellmenge für die Deaktivierung des Artikels nutzen. Die Mindestbestellmenge hat nämlich keine Funktion im Shop, wird aber übertragen.

Also zB: Sobald Mindestbestellmenge = 5, dann Produkt auf inaktiv setzen...

4. Was ich beim Löschen noch gar nicht behandelt habe (mangels php-Kenntnisse), ist das Entfernen der zugehörigen Image-Dateien aus dem Shop-Verzeichnis. Falls da noch jemand ein Tipp hätte.
Ob es so wichtig ist, ist eine andere Sache. Platz auf dem Server kostet nichts mehr.

so löschst Du die Bilder auf der Platte:
Code:
if (file_exists(IMAGEPATH."product/".$product_id.".jpg"))
  unlink (IMAGEPATH."product/".$product_id.".jpg");
//vorschaubild löschen
if (file_exists(IMAGEPATH."product/".$product_id."_klein.jpg"))
  unlink (IMAGEPATH."product/".$product_id."_klein.jpg");
 

vowawi

Aktives Mitglied
6. Juni 2007
23
0
Vielen Dank

Hallo Thomas,

vielen Dank für die nützlichen Tipps, die Bilder werden nun gelöscht, den Trick mit der Mindestbestellmenge kann ich so nutzen. Nach wie vor wäre es mir lieber, wenn ich den Fall eindeutig unterscheiden könnte, z.B. über das Feld inaktiv oder über ein eigenes Ereignis (action=?). Vielleicht in einem späteren Release :) .

Jetzt bräuchte ich nur noch'n Tipp für den 3. Punkt:
3. Inaktiven Artikel in Wawi wieder auf aktiv setzen => Produkt wird in VM angelegt, nur sind keine Produktbilder enthalten. Diese werden erst hochgeladen, wenn ich sie in der wawi nochmals zuordne. Muss ich da andes vorgehen ?

Gruß Volker
 

vowawi

Aktives Mitglied
6. Juni 2007
23
0
date of creation / ~ modification

Schade, aber das Wörtchen <derzeit> lässt ja hoffen ... . :)

Weitere Anregungen / Verbesserungsvorschläge meinerseits:

Die DB-Felder der product-Tabelle
cdate ... date of creation (Timestamp)
mdate ... date of modification (Timestamp)
werden im Moment bei der Synchronisation nicht befüllt.
Dadurch wird nichts angezeigt bzw. sind solche Abfragen, wie z.B. "neueste Artikel der letzten 10 Tage" nicht möglich.

In der Artikel.php habe ich folgende Änderungen gemacht:
1. Variable eingefügt:
$timestamp = time();

2. DB-Update (ab Zeile 61) sieht nun so aus:
Code:
eS_execute_query("update ".DBPVM."product set 
									product_sku=\"".$artikel->cArtNr."\",
									product_s_desc=\"".$artikel->cKurzBeschreibung."\",
									product_desc=\"".$artikel->cBeschreibung."\",
									product_publish=\"Y\",
									product_weight=\"".$artikel->fGewicht."\",
									product_weight_uom=\"kg\",
									product_in_stock=\"".$artikel->nLagerbestand."\",
									product_availability=\"".$einstellungen->liefertermin."\",
									product_special=\"".$artikel->cTopArtikel."\",
									product_name=\"".$artikel->cName."\",
									product_tax_id=\"".$tax_rate_id."\",
									product_unit=\"".$artikel->cEinheit."\",
									mdate=".$timestamp."									
								where
									vendor_id=".VENDOR_ID." and
									product_id=".$product_id);

3. Der DB-Insert (ab Zeile 93) so:
Code:
eS_execute_query("insert into ".DBPVM."product (product_sku, product_s_desc, product_desc, product_publish, product_weight, 
product_weight_uom,product_in_stock, product_availability, product_special, product_name, product_tax_id, product_unit, 
vendor_id, cdate, mdate) values 
(\"".$artikel->cArtNr."\",\"".$artikel->cKurzBeschreibung."\",\"".$artikel->cBeschreibung."\",\"Y\",\"
".$artikel->fGewicht."\",\"kg\",\"".$artikel->nLagerbestand."\",\"".$einstellungen->liefertermin."\",\"
".$artikel->cTopArtikel."\",\"".$artikel->cName."\",\"".$tax_rate_id."\",\"".$artikel->cEinheit."\"
,".VENDOR_ID.",".$timestamp.",".$timestamp.")");

Meine Tests waren erfolgreich, vielleicht könnt Ihr mal eine Qualitätssicherung vornehmen bzw. den Code übernehmen.

Grüße Volker
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Hilfe bei jtl-pos Synchronisation User helfen Usern - Fragen zu JTL-Wawi 5
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu Anzeige Alle Artikel mit Kategorieanzeige linke Menüleiste Allgemeine Fragen zu JTL-Shop 9
Neu Amazon: Artikel-Highlight / Produkttitel auf 75 Zeichen begrenzt Amazon-Anbindung - Fehler und Bugs 8
Neu Shop zeigt keine Artikel mehr Fehler 500 Betrieb / Pflege von JTL-Shop 9
Amazon Artikel-Highlights JTL-Wawi 1.7 1
JTL Wawi 1.11. - Fenstergröße - Artikel auf Einkaufsliste setzen JTL-Wawi 1.11 13
Exportvorlage: Auftrag nur Artikel die per Dropshipping verfügbar sind in Datei schreiben JTL-Wawi 1.11 4
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 2
Fehlermeldung beim Artikel erstellen JTL-Wawi 1.11 3
Probleme beim Shopify-Abgleich: Artikel trotz erfolgreichem Abgleich nicht in Shopify auffindbar JTL-Wawi 1.11 1
Neu Verkaufskanal Sichtbarkeit Zuweisung Artikel in Shopware gelöscht - Connector Bug? Shopware-Connector 1
Eigenes Feld aus Artikel auf Lagerpackliste ausgeben JTL-Wawi 1.11 1
Neu Artikel-Menü zurück Allgemeine Fragen zu JTL-Shop 1
JTL Artikel-Maske leer/verschoben (1.11.7) JTL-Wawi 1.11 2
Neu Ein Artikel in der Kategorie Allgemeine Fragen zu JTL-Shop 5
Neu nicht lieferbare Artikel aus Bestellung wieder auf die Einkaufsliste setzen ?! User helfen Usern - Fragen zu JTL-Wawi 1
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu Eigene Artikel Felder im JTL Shop anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 4

Ähnliche Themen