Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

Hallo

Mal so ne Anfängerfrage....   ;-)

Ich habe mir ein Script gebaut, welches nach der Productnummer die neue UID des Produktes holt und in unser WaWi einträgt. Funktiniert wunderbar genau bis ich auf einen migrierten Masterartikel treffe den es nun 'doppelt' gibt.

Wie finde ich über die API den Artikel mit der Produktnummer A-234567 aber ohne das Produkt  A-234567M zu finden?

 

1 Answer

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo,

    leider können wir das Problem von dir bei unseren Umgebungen so nicht nachvollziehen. Wenn wir "filter" nutzen, dann bekommen wir genau das zurück, wonach wir gesucht haben. Auch wenn es Produkte gibt, die gleich anfangen und zusätzlich noch was dran stehen haben.
    Ich versuche nur eventuelle Edge Cases auszuschließen. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Quote
    Accepted Answer
  • Accepted Answer

Answers

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Wir haben doch so kluge Köpfe hier, das weis doch bestimmt jemand.....?!?

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo,

    das sollte eigentlich mit dem EqualsFilter erreicht werden können. Dieser vergleicht auf SQL Ebene mit =

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Hallo Michael

    Danke für Deine Antwort

    /api/v1/product?EqualsFilter[product.manufacturerNumber]=KM-JB71147.00

    ergibt mir nicht 2 sondern 10 Produkte zurück

    Was mache ich noch falsch?

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo,

    ich weiß gerade ehrlich gesagt nicht, ob das wichtig ist, aber in unserer Doku nutzen wir nur "filter" https://docs.shopware.com/en/shopware-platform-dev-en/api/filter-search-limit?category=shopware-platform-dev-en/api#filter
    Ich werde aber auch noch mal die Kollegen befragen. Du nutzt aber nicht zufällig ElasticSearch oder?

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Nicht das ich wüsste    ;-)

    Ist ein ganz neuer SW6 ohne Alles und versuche unser WaWi anzubinden....

    Das mit dem hinten angehängten M macht wie befürchtet schon die ersten Probleme, finde das einen sehr unschönen/unsauberen Weg.

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 8798 Received thanks: 2623 Member since: September 2013

    Naja, irgendwie musst du ja aus einer Artikelnummer zwei machen. Die Struktur hat sich halt grundlegend geändert, sodass das nötig ist. Was wäre denn da deine Wunschlösung gewesen? Das konstrukt ist so ja zwingend notwendig wenn es einen Masterartikel geben soll.

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Du hast mich gefragt...... Wearing-Sunglasses

    Meine Bedenken gehen dahin was passiert wenn ich einen Artikel 100 und 100M und 100MM bereits habe? Muss ja einen Konflikt geben.....

    Die Kennzeichnung in der Artikelnummer finde ich nicht nur aus diesem Grung sehr unglücklich.

    Wieso braucht ein Masterartikel überhaupt eine Artikelnummer, ist ja gar kein Artikel!

    Die Probleme jetzt mit meiner Abfrage wird ja nur die Spitze des Eisberges sein! Und wenn schon so unschön hintenangehängt (wieso nicht vorne?) wieso dann nicht wenigstens irgendwelche Sonderzeichen dazwischen um die Konflikte zu miimieren. Gerade das M ist ein sehr häufig benutzter Buchstabe in den Artikelnummern, M wie Medium, M wie Meterware, M wie Musterartikel, M wie Mondfarbig.......

    Oder man verwendet das Feld Artikelnummer nicht mehr für die Artikelnummer......

    Und da Du mich gefragt hast wie ich mir es wünschen würde, ich würde die Artikelnummer entweder leer lassen (Favorit), oder MMM#- vorne ergänzen, nicht schön, aber sehr unwahrscheinlich für Konflikte. Und meine Abfrage würde funktionieren! :-)

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 8798 Received thanks: 2623 Member since: September 2013

    Das kann man ja ggf. konfigurierbar machen, also eine Art prefix/suffix. Der Masterartikel muss eine Ordernumber haben, daran lässt sich so erstmal nichts ändern und das ist auch das gängigste Konzept.

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo @aqula

    die URL für den Request müsste wie folgt aussehen: /api/v1/product?filter[product.manufacturerNumber]=KM-JB71147.00
    "EqualsFilter" kennt er nicht als Parameter, deswegen wird dieser ignoriert. Da habe ich mich unverständlich ausgedrückt. "EqualsFilter" ist der Name der PHP Klasse im Code Wink

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Ich gehe mal davon aus, dass Ihr die ganze Struktur über die UID's macht und dann sollte es ja (eigentlich) keinerlei andere Abhängigkeiten mehr geben.....

    Solche Zwänge schränken nun halt mal immer ein.....

    Aber um das auch mal gesagt zu haben, ich bin HELL BEGEISTERT von der SW6, daher seit Ihr sicherlich nicht auf dem falschen Weg! Besten Dank dafür und auch für den erstklassigen Support!

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Aber zurück zum Thema, wie mache ich denn jetzt eine exakte Suche über die API?

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo, 

    hattest du meinen Kommentar schon gelesen? Smile Damit sollte es eigentlich funktionieren.

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013
    die URL für den Request müsste wie folgt aussehen: /api/v1/product?filter[product.manufacturerNumber]=KM-JB71147.00

     

    https://neu.shoppet.ch/api/v1/product?filter[product.manufacturerNumber]=ART::Art_Nr

    ART::Art_Nr wird aufglöst vor dem senden

    Das gibt mir immer noch beide Produkte zurück, den mit der Ordernumber und der mit dem angehängten M

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo,

    ich sehe jetzt erst, dass du den Query auf manufacturerNumber machst. Sollte die Artikelnummer nicht in productNumber stehen?

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

  • Michael TelgmannMichael Telgmann ModeratorComments: 1261 Received thanks: 361 Member since: June 2014

    Hallo,

    leider können wir das Problem von dir bei unseren Umgebungen so nicht nachvollziehen. Wenn wir "filter" nutzen, dann bekommen wir genau das zurück, wonach wir gesucht haben. Auch wenn es Produkte gibt, die gleich anfangen und zusätzlich noch was dran stehen haben.
    Ich versuche nur eventuelle Edge Cases auszuschließen. 

    Viele Grüße aus Schöppingen

    cool Michael Telgmann

    Quote
    Accepted Answer
  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Gib mir kurz 10 Minuten, ich teste das nochmals ganz sauber von Beginn weg.... Wearing-Sunglasses

  • Urs LandisUrs Landis MemberComments: 312 Received thanks: 9 Member since: August 2013

    Sooooo, Alles gelöscht und nochmals neu geschrieben!

    Jetzt geht es bei mir auch, kann sowohl die ohne M einzeln abrufen als auch die mit m.

    Sooory für die Umstände, weiss nicht was ich da eingebaut hatte

     

Sign In or Register to comment.