[UNGELÖST ERLEDIGT] Runden von Preisen

aivz

Aktives Mitglied
12. März 2017
48
1
Hallo,

ich suche ungefähr den halben Tag nach einer Lösung, wie ich die Preise runden kann auf zwei stellen.
Die PHAR-Datei kann ich zwar entpacken, dabei kommt aber nur Datenmüll heraus.

Problem ist hier geschildert https://forum.jtl-software.de/threads/price-is-empty.99281/

Jetzt habe ich durch einen anderen Beitrag hier im Forum gelesen, dass Probleme mit der Dezimalgenauigkeit auftauchen. Jetzt wollte ich das eben just ändern, komme aber nicht an die entsprechende Datei innerhalb der PHAR-Datei im Connector heran.

Ich nutze beim Kunden die aktuelleste Connector-Version 1.4.8, PrestaShop 1.6.11 und JTL 1.2.0.1

Wie entpacke ich die PHAR-Datei, ändere gerade die Rundung der Preise und packe das ganze wieder in eine PHAR-Datei?

Vielleicht kann mir hier einer einen passenden Tipp geben.

Wünsche einen schönen Abend.

Gruß
Axel Wickenkamp
 

aivz

Aktives Mitglied
12. März 2017
48
1
Guten Morgen,

okay verstanden. Tut mir leid, wenn ich so doof nachfrage, aber wenn ich die Daten heruntergeladen und geändert habe, wie setze ich die dann ein??
Im installierten Connector befindet sich die Datei, die ich ändern möchte genau in dieser PHAR-Datei.
 

Kanatu

Aktives Mitglied
14. Dezember 2016
47
2
1. Warum willst du denn Preise im Connector runden? Hört sich nach einer schlechten Idee an.
Du kannst in Presta Preise runden lassen oder du rundest vor dem Transfer in der JTL DB per SQL.

2. Du musst kein Phar verwenden. Schau dir die Datei api.php an.
Falls das nicht genug Info ist solltest du den Code wohl besser nicht verändern.
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Das ist keine gute Idee. Zum einen ist dort der vollkommen falsche Ansatzpunkt um irgendwelche Änderungen vorzunehmen, zum anderen sollte generell am "fertigen" Connector nichts geändert werden.
Wer "customizen" möchte, sollte die notwendigen Kenntnisse haben um den Connector aus dem Quellcode aufzusetzen. Oder noch besser die dafür vorgesehene Plugin-Schnittstelle nutzen.
 

aivz

Aktives Mitglied
12. März 2017
48
1
Guten Morgen,

warum ich runden möchte?

Die erste Abgleich zwischen JTL und PrestaShop funktioniert. Jeder weitere dann nicht mehr. Fehlermeldung siehe oben im anderen Forumsbeitrag.
Der Artikel wo er stehen bleibt ist kein Artikel mit Kombination, Stückliste oder sonstigen verkomplizierenden Dingen, sondern einfach nur ein Artikel. Trotzdem sagt er "Price is empty". Gehe ich die Preisfelder durch, so steht überall ein Preis.

Hier im Forum habe ich dann einen Eintrag gefunden, wo auf das Problem hingewiesen wird, dass JTL seine Preise mit einer Dezimalgenauigkeit von 14 Stellen speichert. Wofür ist das gut? Das versteht aber PrestaShop nicht. Jetzt wollte ich im Connector die Preise von JTL auf 4 Stellen runden. Wie soll ich sonst das Problem lösen?
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Die Meldung "Price is empty" kommt aber weil ein Preis beim Anlegen eines Datensatzes fehlt, nicht weil der falsch wäre.
Zudem rundet der Connector alle ankommenden Preise auf 6 Stellen bevor er diese an die Presta weitergibt. In sofern kann ich gerade nicht nachvollziehen wo da ein Problem mit der Rundung sein sollte.
 

Kanatu

Aktives Mitglied
14. Dezember 2016
47
2
Hi aivs,

Der Thread, den du erwähnst hast war von mir und hat mit deinem Fall wohl nichts zu tun. Das ging es um Combindations/Varcombis.

Das Alles macht wenig. Sinn. Du sagst: Das erste mal funktioniert es und dann nicht mehr?
Dann müssten ja alle Artikel einen Preis haben und die Daten sind ok.
Um den Fehler einzugrenzen kannst du in den JTL logs schauen ob du einen verdächtigen Datensatz finderst.

Und was heisst für dich das erste Mal? Hast du den Connector neu aufgesetzt oder was hast du genau getan um ihn zurückzusetzen?
Möglicherweise liegt es daran und hast du aber irgendwo in der DB "Leichen im Keller".
 

aivz

Aktives Mitglied
12. März 2017
48
1
Hi zusammen, sorry für die späte Rückmeldung. So viel um die Ohren momentan.
Also ich glaube schon, dass das eine Funktion fehlt, die rundet, sonst hätte ich keine Preise mit einer Dezimalgenauigkeit von 14 Stellen, siehe Screenshot aus dem Log
Log-Price.PNG

In der Textdatei steht der letzte Artikel, dort habe ich mir alle Preise angeschaut. Entweder ist ein Preis 0.0 (=> auch ein gültiger Preis!!) oder entsprechend der mit 14 Nachkommastellen.

Was ich mit dem ersten Sync meine??

Ich habe nach dem ersten Fehler den Connector zurück gesetzt, bzw. die Verknüpfungstabelle über den Button gelöscht, sodass er einen automatischen Komplettabgleich starten soll. Dann werden die Artikel doppelt und dreifach angelegt. Dann gibt es keine Beschwerden, nur beim nächsten Abgleich.

Ich vergaß allen ein schönes Osterfest zu wünschen.
 

Anhänge

  • Log-Price.txt
    12,8 KB · Aufrufe: 6

daniel.jtl

Moderator
12. März 2014
1.277
28
Also ich glaube schon, dass das eine Funktion fehlt, die rundet, sonst hätte ich keine Preise mit einer Dezimalgenauigkeit von 14 Stellen, siehe Screenshot aus dem Log
Die Rundung erfolgt ja auch im Connector. Wenn du dir die Preise im Log anguckst bzw. in den Daten die übertragen werden, ist es klar dass dort der volle Wert enthalten ist...
 
  • Gefällt mir
Reaktionen: aivz

aivz

Aktives Mitglied
12. März 2017
48
1
Okay, danke für den Tipp. Ich muss zugeben, dass ich erst wenige Wochen mit JTL und PrestaShop arbeite. Sonst bin ich bzw. auch mein Kunde echt zufrieden, selbst wenn es hier und dort Verständnisprobleme für den Use-Case gibt, den JTL abdecken wollte. Wir tüfteln uns da durch.

Kann denn mir bitte einer sagen, welcher Preis bei dem Artikel im Log fehlt??? Ich finde da keinen wo NULL oder NOTHING oder einfach nichts steht. Es ist immer ein Preis angegeben, selbst wenn dieser 0.0 lautet.
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Es scheint da unabhängig vom Preis Fehler bei der Zuordnung zu geben. Denn das ist ja anscheinend ein Varkombi-Artikel.
Der Verweis auf das Vater-Produkt (masterProductId) ist allerdings 0, was nicht richtig sein kann.
 

aivz

Aktives Mitglied
12. März 2017
48
1
Also ich verstehe das Problem irgendwie nicht so richtig. Ich habe mir den Artikel beim Kunden angeschaut. Das ist ein Einzelartikel und kein Variationsartikel oder Stücklistenartikel. Er steckt selber auch in keiner Stückliste oder ähnliches. Wie kann ich das beheben? So klappt natürlich kein Abgleich.

Das Problem ist, er fängt ja nicht einmal mehr an zu synchronsieren. Er zeigt einige Minutenlang die Startmaske (bild1.png) und dann kommt gleich die Fehlermeldung (bild2.png). Das Log zeigt wieder den gleichen Artikel als zuletzt bearbeitenden Artikel an.

Wie man auf Variationen.PNG sieht, steht dort nichts. Wie gehe ich jetzt am besten vor um das Problem zu lösen?

Die Controller.log vom Connector sagt folgendes:
Code:
[2017-04-20 15:45:10] controller.WARNING: Exception 'PrestaShopException' (Code: 0) with message 'Property Product->price is empty' in /mnt/web220/d0/02/xxxxxx/htdocs/shop/classes/ObjectModel.php:909 [] []

Die global.log vom Connector sagt folgendes:
Code:
[2017-04-20 15:45:10] global.NOTICE: (E_NOTICE) File (phar:///mnt/web220/d0/02/xxxxxx/htdocs/shop/modules/jtlconnector/connector.phar/src/jtl/Connector/Presta/Controller/ProductSpecialPrice.php, 94): Undefined offset: 1 [] []
[2017-04-20 15:45:10] global.NOTICE: (E_NOTICE) File (phar:///mnt/web220/d0/02/xxxxxx/htdocs/shop/modules/jtlconnector/connector.phar/src/jtl/Connector/Presta/Controller/ProductSpecialPrice.php, 129): Undefined variable: price [] []
 

Anhänge

  • Variationen.PNG
    Variationen.PNG
    235,8 KB · Aufrufe: 9
  • bild1.PNG
    bild1.PNG
    172,2 KB · Aufrufe: 6
  • bild2.PNG
    bild2.PNG
    327,3 KB · Aufrufe: 6

aivz

Aktives Mitglied
12. März 2017
48
1
Darf ich nochmal nachfragen. Ich hab nochmal den JTL Connector aktualisiert auf Version 1.4.8. Gleiche Fehlermeldung.
Ich finde den Fehler bei global. log sehr komisch. So wie ich PHP kenne, müssen doch Variablen nicht explizit deklariert&initialisiert werden. Variablen werden doch bei der ersten Verwendung mit NULL gefüllt. Ist es hier vielleicht sinnvoll, die Variable im Kopf zu initialisieren mit 0 => $price = 0; um genau diesen Fehlerfall abzufangen?

@JTL-Support:
Gibt es bei Ihnen auch einen einmaligen Support zu erwerben? Der Kunde ist momentan weder in der Lage noch Bereit für ein halbes Jahr zu bezahlen.
 
Zuletzt bearbeitet:

daniel.jtl

Moderator
12. März 2014
1.277
28
Ich finde den Fehler bei global.log sehr komisch.
Das ist auch kein Fehler sondern lediglich eine notice. Von daher für den Betrieb des Connectors vollkommen irrelevant.
Das Problem ist in dem Fall auch nicht im webseitigen Connector zu suchen sondern in den Wawi-Daten, da man anhand der Logs erkennen kann dass hier schon Fehler enthalten sind.
Gibt es bei Ihnen auch einen einmaligen Support zu erwerben? Der Kunde ist momentan weder in der Lage noch Bereit für ein halbes Jahr zu bezahlen.
Nein, das bieten wir nicht an. Für solche Zwecke gibt es ja unsere Servicepartner.
 

aivz

Aktives Mitglied
12. März 2017
48
1
Hallo,
wo muss ich denn bei diesem Problem suchen? Ich finde keine Basis. Alle Artikel sind über die Ameise angelegt. Wie sage ich denn einem Artikel, dass er KEIN Variationsartikel ist.
Wir werden hier noch narrisch und verstehen die Welt nicht mehr.
 

aivz

Aktives Mitglied
12. März 2017
48
1
Hallo,

schade, das Problem ist immer noch da und Unternehmen, die wir angeschrieben haben wollen keinen Support für den JTL Connector zu Presta liefern. Das baut einen Ungemein auf...
Jetzt importieren wir schon händisch die Artikel via CSV-Import.

Gibt es eine Tabellenbeschreibung für die Tabelle jtl_connector_link??
Sollte der Connector irgendwann mal wieder laufen, muss doch JTL die Verknüpfung von Shop-Artikel zu JTL-Artikel kennen. Welches Attribut entspricht welchem Feld?
Was bedeuten die Typen?

Guten Start in die Woche.
 

daniel.jtl

Moderator
12. März 2014
1.277
28

aivz

Aktives Mitglied
12. März 2017
48
1
Hallo,
wir haben es aufgegeben und wechseln zu Shopware, denn es findet sich kein Partner für JTL Connectoren mehr. 5 angeschrieben, die es ablehnen neue Kunden aufzunehmen.
Shopware ist zwar kein sehr gutes System, aber der Abgleich funktioniert und das hat mehr Prioriät (Datenaktualität) als ein gut funktionierendes Shop-System
 

daniel.jtl

Moderator
12. März 2014
1.277
28
Das Shopware nicht gut wäre, ist wohl sicherlich eine pauschale Unterstellung die nicht auf Fakten beruht sondern Geschmackssache ist.
Die überwiegende Anzahl der User verwendet Shopware, welches mit großem Vorsprung vor allen anderen Systemen steht.

Einen Wechsel des gesamten Shops aufgrund individueller Probleme bei der Einrichtung des Connectors halte ich für wirtschaftlich absolut nicht sinnvoll.
Aber das muss natürlich jeder für sich selbst entscheiden...
 
Ähnliche Themen

Ähnliche Themen