Synchronisationsblätter in Libreoffice

561
PaulMcF87

Hoffentlich kann jemand helfen.

Ich habe eine eccommerce-Dropshop-Website auf Woocommerce, die ich mithilfe von WPAllImport über CSV aktualisiere. Ich lade derzeit eine CSV-Tabelle von meinem Lieferanten herunter, die die aktuellen Produktpreise und die Bestandsmenge enthält. Derzeit muss ich diese Tabelle durchgehen, um die von mir verkauften Produkte zu finden, und die Daten aus der Lieferanten-Tabelle in meine eigene Tabelle übertragen, was sehr zeitaufwändig ist. Ich bin dazu verpflichtet, da sich die von meinem Lieferanten verwendeten Produkt-IDs von den Produkt-IDs unterscheiden, die Woocommerce für meine Produkte gibt, und deren CSV-Dateien nicht direkt hochgeladen werden können.

Wenn ich die CSV-Datei vom Lieferanten herunterlade, speichere ich diese immer als supplierstock.csv, so dass jedes neue Update alle vorherigen Versionen überschreibt / ersetzt.

Kann ich meine Tabelle / Datenbank trotzdem mit supplierstock.csv verknüpfen, damit meine Tabelle / Datenbank bei Eintreffen der neuen Daten automatisch aktualisiert und mit den neuesten Werten gefüllt wird?

Das Hauptproblem ist jedoch, dass sich das Erscheinungsbild der Lieferantentabelle ändert. Das Layout ist das gleiche, aber die Produkte befinden sich in den Änderungen der Kalkulationstabelle.

Kann ich meine Produkt-ID mit ihrer Produkt-ID verknüpfen und diese dann verknüpfen?

Lager von ihrem Blatt zu meinem so, dass, wenn ich das neue Blatt herunterladen. Meine Datenbank / Tabellenkalkulation erkennt die Produkt-ID aus dem Lieferantenblatt, erkennt die Bestandsmengenzelle und aktualisiert meine Tabellenkalkulation entsprechend?

Beispieldaten:

Meine Form

ID Parent ID Title Stock Price 00001 0 Product 1
00002 00001 Product 1 - Variant 1 10 £1.99 00003 0 Product 2
00004 00003 Product 2 - Variant 1 10 £1.99 00005 00003 Product 2 - Variant 2 10 £1.99

Lieferantenformular

ID Title Stock Price PROD1 Product 1 - Variant 1 20 £2.99
PROD2 Product 2 - Variant 1 20 £2.99 PROD3 Product 2 - Variant 2 20 £2.99

Idealerweise würde ich gerne verlinken:

00002 -> PROD1 00004 -> PROD2 00005 -> PROD3

Verknüpfen Sie die mit der Lieferanten-ID verknüpften
Preis- und Aktienzellen mit den eigenen Zellen, die mit meinen verknüpften IDs verknüpft sind. Wenn sich also die Aktie oder der Preis von PROD1,2 oder 3 ändert, ändern sich die entsprechenden Zellen für die Aktie oder den Preis auf meinem Blatt Der Bestand auf meinem Blatt sollte also den Lagerbestand auf 20 und den Preis auf 2,99 £ aktualisieren.

Ich habe über das Verknüpfen von Tabellen in Datenbanken gelesen, aber mir ist nicht klar, wie genau er damit umgehen soll oder ob er in der Lage ist, das zu tun, was ich suche

Wenn ich mein Lieferantenblatt herunterlade, bleiben die Kopfzeilen der Zellen konstant. Die Produkte können jedoch in verschiedenen Zeilen angezeigt werden, sodass das Verknüpfen mit Zellen nicht funktioniert. Anscheinend sollte das Verknüpfen von IDs die Dinge genauer machen?

0
Die kurze Antwort lautet: Sie können so etwas wahrscheinlich tun. Die längere Antwort ist, dass AFAIK, Excel, nicht in der Lage ist, menschlich verständliche Daten einzusehen und sie zu verstehen. Um eine noch bessere Antwort zu erhalten, können Sie Beispiele für Ihre Daten veröffentlichen, einschließlich mehrerer Versionen der sich ändernden. Bitte antworten Sie nicht in Kommentaren. Bearbeiten Sie Ihre Frage, um sie klarer und vollständiger zu machen. Veröffentlichen Sie Ihre Daten als Text, nicht als Bilder. G-Man vor 7 Jahren 0
@ G-Man Ich habe am besten hinzugefügt, was ich suche PaulMcF87 vor 7 Jahren 0

1 Antwort auf die Frage

1
Adrien

Sie sollten den Libreoffice-Ansatz nicht benötigen, wenn Sie WP All Import verwenden. Mit diesem Plugin können Sie Felder direkt zuordnen und Trigger für die automatische Aktualisierung festlegen.

Alles, was Sie tun müssen, ist, einmal eine Importvorlage mit der richtigen Zuordnung der Spalten zu erstellen und dann den Auslöser für die CSV-Datei des Lieferanten festzulegen, wo immer Sie sie hochladen.

Sie können erheblich dazu beitragen, indem Sie die Lieferanten-ID als Variation SKU oder als alternative SKU mit Attributen hinzufügen. Dadurch erhalten Sie eine 1: 1-Zuordnung von Variationen zwischen den Tabellen. Auf diese Weise können Sie unterschiedliche Produkttitel haben, und da dies normalerweise ein schlechtes Feld ist, sollten Sie es ändern, wenn der Lieferant es ändert.

Wenn Sie nicht die Premium-Version dieses Plugins verwenden, die den automatischen Auslöser zulässt, können Sie dies trotzdem tun, ohne dass LO als Vermittler erforderlich ist. (Beachten Sie, dass Sie den Auslöser nicht "brauchen". Dies ist nur der Fall, wenn Sie den Importvorgang nicht jedes Mal mit Ihrer Zuordnungsvorlage durchlaufen müssen, wenn sich die CSV ändert.)

  1. Laden Sie die supplierstock.csv als eigene Tabelle in Ihre WP-Datenbank mit phpMyAdmin hoch. (sei vorsichtig, natürlich)

  2. Richten Sie eine UPDATE-Abfrage mit einem JOIN zwischen der Tabelle wp_postmeta, die die Aktien- und Preisinformationen für Ihre Variationen enthält, und der neuen Supplierstabelle ein. Einen einfachen Überblick finden Sie in diesem Thema: https://dba.stackexchange.com/questions/21152/wiehe-zu-update-one-table-based-on-another-tables-values-on-the-fly

Wenn Sie dies automatisieren möchten, können Sie einen oder mehrere Trigger einrichten, die jedes Mal ausgelöst werden, wenn Sie die supplierstock.csv erneut in diese Tabelle importieren. (Sie müssen als Update importieren, nicht als separate neue Tabelle.) Sie benötigen mindestens einen UPDATE-Auslöser, um die Aktie und den Preis (wie auch alle anderen veränderbaren Felder) wie zuvor erwähnt festzulegen. Möglicherweise möchten Sie jedoch auch eine INSERT Auslösen, um automatisch neue Produkte hinzuzufügen, wenn der Lieferant dies tut, und möglicherweise einen DELETE-Auslöser, um entweder nicht mehr lieferbare Artikel zu entfernen, oder als Weg, um ein 'nicht mehr hergestelltes' Tag / Attribut hinzuzufügen, das auch den Lagerbestand auf Null setzt / das Produkt nicht vorrätig macht. löscht es aber nicht aus Ihrer Datenbank.

Sie können diesen letzten Teil auch mit PHP sicherer durchführen. (um das Erstellen von übergeordneten Produkten zuerst für neue Ergänzungen zu behandeln)

Wenn Sie den integrierten Woocommerce-Importer verwenden, würde ich immer noch die phpMyAdmin-Route mit oder ohne Auslöser verwenden. Der Versuch, LO zuerst für die Verarbeitung einer speziellen Import-CSV zu verwenden, ist eine zusätzliche Arbeit. Natürlich können Sie Base nicht für zwei verschiedene CSV-Dateien oder Tabellenkalkulationsdateien verwenden, da Sie in LO keine Abfragen für mehr als eine Tabelle mit diesem Datentyp ausführen können. Sie würden mit etwas wie VLOOKUP und / oder einigen komplizierten MATCH-Anweisungen mit verschachtelten IFs stecken. VLOOKUP erfordert außerdem benachbarte Spalten. Wenn der Lieferant sich dazu entschließt, eine Spalte zwischen den von Ihnen benötigten Spalten hinzuzufügen, bricht alles zusammen. Der SQL-Ansatz wird in diesem Fall nicht gebrochen.

Im Wesentlichen führt eines der beiden Import-Tools eine Art UPDATE JOIN-Funktion aus. Warum also zuerst in LO das tun, nur noch einmal mit Wordpress? Ich würde einfach einmal UPDATE JOIN direkt mit der supplier.csv- und meiner wp_postmeta-Tabelle aktualisieren.

vielen dank für ihre antwort. Tolles Detail und ich hoffe, es wird sehr nützlich sein. Ich werde viel recherchieren, da Datenbanken für mich sehr neu sind. Hast du irgendwelche Literatur, auf die du mich hinweisen kannst, um mir dabei zu helfen? PaulMcF87 vor 6 Jahren 0
Meine Hauptsorge ist dabei, dass ich zwar den Preis der Lieferanten als Orientierungshilfe verwenden muss, mein Verkaufspreis jedoch nicht direkt durch den Preis meiner Lieferanten beeinflusst wird. Wenn beispielsweise der Preis meiner Lieferanten um € 0,10 steigt, würde ich meinen Preis nicht unbedingt erhöhen um 0,10 £ oder sogar überhaupt, ich habe einen Margin-Bereich, in dem ich versuche, innerhalb zu bleiben, der je nach Produkt unterschiedlich sein kann. Ich würde meinen Preis aktualisieren, sobald mein Gewinn untergeht oder sich dem festgelegten Margin-Level nähert PaulMcF87 vor 6 Jahren 0