Gelöst Artikelübersicht -> Angebotsübergreifender FBA Bestand

serfism

Aktives Mitglied
20. September 2014
14
3
Hi,
unsere Amazon Produkte werden nur mit einem Vaterprodukt in Amazon angelegt.
Ein Kindprodukt hat dann mehrere Vaterprodukte (ASINs) auch mit FBA Bestand.

Ist folgendes möglich?
Wenn ich ein Kindprodukt markiere werden alle Vaterprodukte mit FBA Bestand, Zulauf, WMS Bestand und Gesamtbestand (FBA + WMS) angezeigt.

So könnte es aussehen

1. Artikelnummer
2. FBA Bestand
3. WMS Bestand
4. Zulauf
5. Gesamtbestand (FBA + WMS)

Zur Zeit rechnen wir manuell den Gesamtbestand aus und können dann bei Lieferanten bestellen.
Es wäre eine super Erleichterung wenn wir alle Infos auf einmal sehen.
 
Zuletzt bearbeitet:

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
299
Köln
Hi @serfism

unsere Amazon Produkte werden nur mit einem Vaterprodukt in Amazon angelegt.
Ein Kindprodukt hat dann mehrere Vaterprodukte (ASINs) auch mit FBA Bestand.
Du nutzst hier die Terminiologie Vater / Kindartikel, meinst aber nciht Variationskombinationen, sondern Amazon Angebotsverknüpfungen, nehme ich an? Also ich habe einen Artikel in der Wawi und er ist verknüpft mit mehreren ASINs bei Amazon. Klick ich nun in der Wawi auf einen solchen Artikel, willst du in der ListviewExtension sehen, wie der summierte Bestand über alle FBA Angebote, unter dem dieser Artikel läuft + einige weitere Angaben, richtig?

Anbei ein SQL, das sowas macht. Zusätzlich habe ich noch die weiteren summierten (= wenn der Artikel unter mehreren FBA ASINs läuft, dann werden die Bestände zusammengerechnet) FBA Bestandsangaben, die Amazon bereitstellt - wahrscheinlich nicht unwichtig, wenn du den FBA Bestand auffüllen willst. Dann merkst du, dass Amazon gerade 50 Einheiten von FC X nach Y verschiebt.

Folgende Spalten gibt dir die LVE:
Artikelnummer
Zulauf
Wawi Verfügbar
Gesamt Verfügbar
FBA Angebot (ja / nein)
FBA Verfügbar
FBA Warehouse (physikalischer Bestand = FBA Verfügbar + FBA Unsellable + FBA Reserved)
FBA Unsellable (Zustandsbedingt nicht verkaufbarer Bestand)
FBA Reserved (Reservierter Bestand = Menge, die derzeit kommissioniert, verpackt und versandt wird oder die für Messungen, Stichproben oder andere interne Prozesse ausgelagert wird )
FBA Total (Gesamtbestand = FBA Warehouse + FBA Inbound Working + FBA Inbound Shipped)
FBA Inbound Working (Menge, die du als Zulauf bei Amazon angemeldet hast)
FBA Inbound Shipped (Menge, die du als Zulauf bei Amazon angemeldet hast und der du eine Tracking-ID hinterlegt hast)
FBA Receiving (Menge, die bei Amazon eingetroffen ist und gerade bearbeitet wird)

SQL:
SQL:
SELECT tArtikel.cArtNr AS Artikelnummer
    , ROUND(CONVERT(FLOAT, vLagerbestandEx.fZulauf), 2) AS Zulauf
    , ROUND(CONVERT(FLOAT, vLagerbestandEx.fVerfuegbar), 2) AS 'Wawi Verfügbar'
    , ROUND(CONVERT(FLOAT, vLagerbestandEx.fVerfuegbar + ISNULL(jAmazon.FBA_verfuegbar, 0)), 2) AS 'Gesamt Verfügbar'
    , CASE
        WHEN jAmazon.FBA_verfuegbar IS NULL THEN 'Nein'
        ELSE 'Ja'
        END AS 'FBA Angebot?'
    , ISNULL(jAmazon.FBA_verfuegbar, 0) AS 'FBA Verfügbar'
    , ISNULL(jAmazon.FBA_warehouse, 0) AS 'FBA Warehouse'
    , ISNULL(jAmazon.FBA_unsellabe, 0) AS 'FBA Unsellable'
    , ISNULL(jAmazon.FBA_reserved, 0) AS 'FBA Reserved'
    , ISNULL(jAmazon.FBA_total, 0) AS 'FBA Total'
    , ISNULL(jAmazon.FBA_inboundWorking, 0) AS 'FBA Inbound Working'
    , ISNULL(jAmazon.FBA_inboundShipped, 0) AS 'FBA Inbound Shipped'
    , ISNULL(jAmazon.FBA_receiving, 0) AS 'FBA Receiving'
FROM tArtikel
JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel
LEFT JOIN (
    SELECT    pf_amazon_angebot_mapping.kArtikel,
            SUM(pf_amazon_angebot_fba.nQuantity) AS FBA_verfuegbar,
            SUM(pf_amazon_angebot_fba.nQtyWarehouse) AS FBA_warehouse,
            SUM(pf_amazon_angebot_fba.nQtyUnsellable) AS FBA_unsellabe,
            SUM(pf_amazon_angebot_fba.nQtyReserved) AS FBA_reserved,
            SUM(pf_amazon_angebot_fba.nQtyTotal) AS FBA_total,
            SUM(pf_amazon_angebot_fba.nQtyInboundWorking) AS FBA_inboundWorking,
            SUM(pf_amazon_angebot_fba.nQtyInboundShipped) AS FBA_inboundShipped,
            SUM(pf_amazon_angebot_fba.nQtyReceiving) AS FBA_receiving
    FROM pf_amazon_angebot_mapping
    JOIN pf_amazon_angebot_fba ON pf_amazon_angebot_mapping.cSellerSKU = pf_amazon_angebot_fba.cSellerSKU
        AND pf_amazon_angebot_mapping.kUser = pf_amazon_angebot_fba.kUser
    WHERE pf_amazon_angebot_mapping.kArtikel = @Key
    GROUP BY pf_amazon_angebot_mapping.kArtikel
    ) AS jAmazon ON jAmazon.kArtikel = tArtikel.kArtikel
WHERE tArtikel.kArtikel = @Key

Viel Erfolg damit!
 

Anhänge

  • FBA Bestand.png
    FBA Bestand.png
    17,1 KB · Aufrufe: 32

serfism

Aktives Mitglied
20. September 2014
14
3
Hallo Thomas,

danke für die Mühe.
Das ist nicht ganz richtig

Das was du meinst ist Mehrfachlistung das die Arbeit sehr erschwert. Mehrfachlistung nutze wir nicht. Man kann nicht danach suchen und auch keine Statistiken über die angebundenen ASINs einzeln erstellen das ist aber ein anderes Problem.

Weil wir sehr viel mit Statistiken arbeiten waren wir gezwungen mit folgender Konstellation zu arbeiten.

- Artikelnummer 1 - Kindartikel 1 (z.B. Bestand 10 Stück, Zugang 10 Stück)
besteht aus
- Artikelnummer 2 - ASIN 1 FBA (Vaterartikel verknüpft mit Artikelnummer 1) (z.B. 5 Stück)
- Artikelnummer 3 - ASIN 2 FBA (Vaterartikel verknüpft mit Artikelnummer 1) (z.B. 5 Stück)
- Artikelnummer 4 - ASIN 3 FBA (Vaterartikel verknüpft mit Artikelnummer 1) (z.B. 5 Stück)

Es werden also für je ASIN ein Vaterartikel angelegt. (Wir haben Kindartikel die bis zu 10 ASINs Vaterartikel haben)

Wenn ich das Kindprodukt markiere brauch ich die Summe der
FBAs (15 Stück) + Zugang (10 Stück) + WMS Lagerbestand (10 Stück) = Summe (35 Stück)

So weiss ich die Anzahl des gesamten verfügbaren Bestands und kann entsprechend bestellen.

Viele Grüße
 

Tim Wolf

Aktives Mitglied
11. Mai 2018
12
0
Wir haben eine gesamtansicht gebastelt... ist aber noch verbessrungswürdig, habt ihr ne Idee wie man auch die Artikel rein bekommt die gerade auf Null sind bei FBA?

Wir suchen hier ne schnelle Übersicht um neue Umlagerungen nach Bedarf zu kalkulieren..

Idealerweise wäre diese so aufgebaut

SKU / ASIN / Lagerbestand FBA / FBA versand letzte 7 Tage / Eigener Versand letze 7 Tage / FBA versand letzte 30 Tage / Eigener Versand letze 30 Tage / FBA versand letzte 90 Tage / Eigener Versand letze 90 Tage / FBA versand letzte 180 Tage / Eigener Versand letze 180 Tage

SQL:
DECLARE @From DATE;



SET @FROM = '01.02.2020';



SELECT FBA.cArtNr, tArtikelBeschreibung.cName, ROUND(CONVERT(INT, ISNULL(FBAVater.Quantity, 0) + ISNULL(FBA.Quantity, 0)), 2) AS Absatz,

ISNULL(FBA.Quantity, 0) AS FBA Versand, ISNULL(FBAVater.Quantity, 0) AS Eigener Versand

FROM tbestellung

JOIN tbestellpos ON tbestellpos.tBestellung_kBestellung = tBestellung.kBestellung

INNER JOIN tArtikel ON tbestellpos.tArtikel_kArtikel = tArtikel.kArtikel

INNER JOIN tArtikelBeschreibung ON tArtikelBeschreibung.kArtikel = tArtikel.kArtikel AND tArtikelBeschreibung.kSprache = 1 AND kPlattform = 1

INNER JOIN pf_amazon_angebot_fba ON pf_amazon_angebot_fba.cFNSKU = tArtikel.cAmazonFNSKU AND pf_amazon_angebot_fba.cConditionType = 'New'

INNER JOIN (SELECT cArtNr, pf_amazon_angebot_vater.cSellerSKU AS VaterArtNr, ISNULL(SUM(FBApos.nQuantityPurchased), 0) AS Quantity

FROM pf_amazon_bestellungpos FBApos

INNER JOIN pf_amazon_bestellung ON pf_amazon_bestellung.kAmazonBestellung = FBApos.kAmazonBestellung

LEFT JOIN pf_amazon_angebot_vater ON (pf_amazon_angebot_vater.cSellerSKU = FBApos.cArtNr)

WHERE pf_amazon_bestellung.dErstellt >= @FROM AND cOrderStatus = 'Shipped'

GROUP BY cArtNr, pf_amazon_angebot_vater.cSellerSKU) FBA

ON (FBA.cArtNr = pf_amazon_angebot_fba.cSellerSKU)

LEFT JOIN (SELECT cArtNr, pf_amazon_angebot_vater.cSellerSKU AS VaterArtNr, ISNULL(SUM(FBApos.nQuantityPurchased), 0) AS Quantity

FROM pf_amazon_bestellungpos FBApos

INNER JOIN pf_amazon_bestellung ON pf_amazon_bestellung.kAmazonBestellung = FBApos.kAmazonBestellung

LEFT JOIN pf_amazon_angebot_vater ON (pf_amazon_angebot_vater.cSellerSKUVater = FBApos.cArtNr)

WHERE pf_amazon_bestellung.dErstellt >= @FROM AND cOrderStatus = 'Shipped'

GROUP BY cArtNr, pf_amazon_angebot_vater.cSellerSKU) FBAVater

ON (FBAVater.VaterArtNr = pf_amazon_angebot_fba.cSellerSKU)

WHERE tBestellung.nStorno = 0 AND tbestellung.cType = 'B'

AND tbestellung.dErstellt >= @FROM AND tBestellung.nKomplettAusgeliefert = 1

GROUP BY FBA.cArtNr, tArtikelBeschreibung.cName, FBA.Quantity, FBAVater.Quantity

ORDER BY FBA.cArtNr ASC
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
299
Köln
Hi Tim,

du solltest in deinem SQL (ab JTL-Wawi 1.4) nicht mehr über pf_amazon_angebot_vater gehen, sondern über pf_amazon_angebot_mapping.

Dein SQL bezieht sich nicht auf den ausgewählten Eintrag, d.h. es ist wesentlich aufwendiger dieses SQL zu berechnen. Gibt ggfs. bei den ein oder anderen Kunden Performanceprobleme bei dieser Ansicht. Dein SQL ist hervorragend geeignet für die kommenden Custom Listviews, die genau für sowas gemacht werden.
 

das-ding

Aktives Mitglied
30. August 2019
27
3
Hi @serfism


Du nutzst hier die Terminiologie Vater / Kindartikel, meinst aber nciht Variationskombinationen, sondern Amazon Angebotsverknüpfungen, nehme ich an? Also ich habe einen Artikel in der Wawi und er ist verknüpft mit mehreren ASINs bei Amazon. Klick ich nun in der Wawi auf einen solchen Artikel, willst du in der ListviewExtension sehen, wie der summierte Bestand über alle FBA Angebote, unter dem dieser Artikel läuft + einige weitere Angaben, richtig?

Anbei ein SQL, das sowas macht. Zusätzlich habe ich noch die weiteren summierten (= wenn der Artikel unter mehreren FBA ASINs läuft, dann werden die Bestände zusammengerechnet) FBA Bestandsangaben, die Amazon bereitstellt - wahrscheinlich nicht unwichtig, wenn du den FBA Bestand auffüllen willst. Dann merkst du, dass Amazon gerade 50 Einheiten von FC X nach Y verschiebt.

Folgende Spalten gibt dir die LVE:
Artikelnummer
Zulauf
Wawi Verfügbar
Gesamt Verfügbar
FBA Angebot (ja / nein)
FBA Verfügbar
FBA Warehouse (physikalischer Bestand = FBA Verfügbar + FBA Unsellable + FBA Reserved)
FBA Unsellable (Zustandsbedingt nicht verkaufbarer Bestand)
FBA Reserved (Reservierter Bestand = Menge, die derzeit kommissioniert, verpackt und versandt wird oder die für Messungen, Stichproben oder andere interne Prozesse ausgelagert wird )
FBA Total (Gesamtbestand = FBA Warehouse + FBA Inbound Working + FBA Inbound Shipped)
FBA Inbound Working (Menge, die du als Zulauf bei Amazon angemeldet hast)
FBA Inbound Shipped (Menge, die du als Zulauf bei Amazon angemeldet hast und der du eine Tracking-ID hinterlegt hast)
FBA Receiving (Menge, die bei Amazon eingetroffen ist und gerade bearbeitet wird)

SQL:
SQL:
SELECT tArtikel.cArtNr AS Artikelnummer
    , ROUND(CONVERT(FLOAT, vLagerbestandEx.fZulauf), 2) AS Zulauf
    , ROUND(CONVERT(FLOAT, vLagerbestandEx.fVerfuegbar), 2) AS 'Wawi Verfügbar'
    , ROUND(CONVERT(FLOAT, vLagerbestandEx.fVerfuegbar + ISNULL(jAmazon.FBA_verfuegbar, 0)), 2) AS 'Gesamt Verfügbar'
    , CASE
        WHEN jAmazon.FBA_verfuegbar IS NULL THEN 'Nein'
        ELSE 'Ja'
        END AS 'FBA Angebot?'
    , ISNULL(jAmazon.FBA_verfuegbar, 0) AS 'FBA Verfügbar'
    , ISNULL(jAmazon.FBA_warehouse, 0) AS 'FBA Warehouse'
    , ISNULL(jAmazon.FBA_unsellabe, 0) AS 'FBA Unsellable'
    , ISNULL(jAmazon.FBA_reserved, 0) AS 'FBA Reserved'
    , ISNULL(jAmazon.FBA_total, 0) AS 'FBA Total'
    , ISNULL(jAmazon.FBA_inboundWorking, 0) AS 'FBA Inbound Working'
    , ISNULL(jAmazon.FBA_inboundShipped, 0) AS 'FBA Inbound Shipped'
    , ISNULL(jAmazon.FBA_receiving, 0) AS 'FBA Receiving'
FROM tArtikel
JOIN vLagerbestandEx ON vLagerbestandEx.kArtikel = tartikel.kArtikel
LEFT JOIN (
    SELECT    pf_amazon_angebot_mapping.kArtikel,
            SUM(pf_amazon_angebot_fba.nQuantity) AS FBA_verfuegbar,
            SUM(pf_amazon_angebot_fba.nQtyWarehouse) AS FBA_warehouse,
            SUM(pf_amazon_angebot_fba.nQtyUnsellable) AS FBA_unsellabe,
            SUM(pf_amazon_angebot_fba.nQtyReserved) AS FBA_reserved,
            SUM(pf_amazon_angebot_fba.nQtyTotal) AS FBA_total,
            SUM(pf_amazon_angebot_fba.nQtyInboundWorking) AS FBA_inboundWorking,
            SUM(pf_amazon_angebot_fba.nQtyInboundShipped) AS FBA_inboundShipped,
            SUM(pf_amazon_angebot_fba.nQtyReceiving) AS FBA_receiving
    FROM pf_amazon_angebot_mapping
    JOIN pf_amazon_angebot_fba ON pf_amazon_angebot_mapping.cSellerSKU = pf_amazon_angebot_fba.cSellerSKU
        AND pf_amazon_angebot_mapping.kUser = pf_amazon_angebot_fba.kUser
    WHERE pf_amazon_angebot_mapping.kArtikel = @Key
    GROUP BY pf_amazon_angebot_mapping.kArtikel
    ) AS jAmazon ON jAmazon.kArtikel = tArtikel.kArtikel
WHERE tArtikel.kArtikel = @Key

Viel Erfolg damit!
Hallo, gibt es das auch für Kinderatikel?
Wir arbeiten primär nur mit Kinderartikel daher die frage, wäre nett wenn es das geben würde.