BrickLink-Beispiele
Für die nachfolgenden Beispiele wird davon ausgegangen, dass der Zugang zur API bereits eingerichtet ist.
Zum Ausführen der Beispiele wird entweder JayMo-Edit oder eine selbst erstellte Skript-Datei benötigt. Darin muss zuerst die Konstante BRICKLINK wie hier beschrieben eingerichtet wurde. Anschließend können dann nachfolgende Beispiele eingefügt werde.
Der Umgang mit Listen, Map's und Tabellen sollte bekannt sein.
Tipp:
Mit "Describe" bzw. der Funktion ".describe" lassen sich die von der API zurückgegebenen Daten relativ klar ausgeben.
Weiterführende Informationen zur API, zu Schlüsselnamen und Feldern: https://www.bricklink.com/v3/api.page
Die Beispiele beziehen sich auf die BrickLink-API mit dem Stand vom 10.04.2022.
Bestellungen / Orders
Eingehende Bestellungen
Mit "getOrdersIn" wird eine Liste aller eingegangenen Bestellungen abgerufen.
BRICKLINK.getOrdersIn
Es können ein oder zwei Argumente übergeben werden. Der Erste legt fest, ob nur archivierte oder nur nicht archivierte abgerufen werden sollen. Als zweites Argument kann ein einzelner String oder eine Liste mit mehreren Status-Strings übergeben werden.
Mögliche Werte sind hier z.B.: pending, processing, ready, paid, packed, shipped, recieved, completed
Nur bezahlte und noch nicht bearbeitete Bestellungen abrufen:
BRICKLINK.getOrdersIn( false, "paid" )
Einzelne Felder der Bestellungen auslesen und in Spalten ausgeben:
BRICKLINK.getOrdersIn.each
data = it.select("order_id", "status", "buyer_name")
"Order: {8}, Status: {9}, Buyer: {}".fill( :data ).print
Ausgehende Bestellungen
BRICKLINK.getOrdersOut
Der Rückgabewert ist eine Liste mit einer Map zu jeder eigenen Bestellung.
Order abrufen
BRICKLINK.getOrder( 12345678 )
Die Informationen zur angegebenen Order sind in Map gespeichert, welche teils weitere Maps enthält.
Order-Artikel
Eine Liste mit allen bestellten Artikel abrufen:
BRICKLINK.getOrderItems( 12345678 )
getOrderMessages
BRICKLINK.getOrderMessages( 12345678 )
Hier erhält man eine Liste mit einer Map je Nachricht.
Die Feedback's zu einer Order abrufen
BRICKLINK.getOrderFeedback( 12345678 )
Hier erhält man eine Liste mit einer Map je Feedback. Enthalten sind gesendete sowie erhaltene Feedbacks.
updateOrder
updateOrderStatus
updateOrderPayment
orderSendDriveThru
Artikel / Inventories
Alle eingestellten Artikel
BRICKLINK.getInventories
getInventory
createInventory
updateInventory
Artikel(Inventory) löschen
- BRICKLINK.deleteInventory()
Teile-Info's / Items
Informationen zu einem einzelnen Teil
BRICKLINK.getItem( "PART", "32138" )
Der Rückgabewert ist eine "Map" mit verschiedenen Informationen zu diesem Teil:
"no" -> "32138"
"image_url" -> "//img.bricklink.com/PL/32138.jpg"
"weight" -> "0.96"
"description" -> ""
"type" -> "PART"
"thumbnail_url" -> "//img.bricklink.com/P/9/32138.jpg"
"is_obsolete" -> false
"dim_y" -> "0.00"
"dim_z" -> "0.00"
"dim_x" -> "0.00"
"category_id" -> 139l
"year_released" -> 1999l
"name" -> "Technic, Pin Double with Axle Hole"
"alternate_no" -> ""
getItemImage
getSuperSets
getSubSets
getPriceGuide
Bekannte Farben
colors = BRICKLINK.getKnownColors( "PART", "32138" )
Describe colors
Rückgabewert ist eine Liste mit allen zu diesem Item bekannten Farb-Codes.
getKnownColors
getKnownColorValues
getThumbnailURL
getThumbnail
Feedbacks
getFeedbacksIn
getFeedbacksOut
getFeedback
postFeedback
replyFeedback
Farben / Colors
getColors
getColorList
getColor
Kategorien / Categories
Alle verfügbaren Kategorien abfragen
BRICKLINK.getCategories
Der Rückgabewert ist eine Tabelle mit 3 Spalten.
- Spalte 1 = ID der Kategorie
- Spalte 2 = ID der übergeordneten Kategorie
- Spalte 3 = Titel der Kategorie
Informationen zu einer einzelnen Kategorie
BRICKLINK.getCategory( 37 )
Die zurückgegebene Map sieht z.B. so aus:
"category_name" -> "Tile"
"category_id" -> 37l
"parent_id" -> 0l
Gutscheine / Coupons
getCouponsIn
getCouponsOut
getCoupon
createCoupon
deleteCoupon
Einstellungen / Settings
getShippingMethods
getShippingMethodList
getShippingMethod
BrickLink-Member-Informationen
getMemberRating
Zugriffe abfragen
Mit folgendem Befehl lässt sich die aktuelle Anzahl der Abfragen an Bricklink abfragen:
BRICKLINK.getCalls
Allerdings beginnt der Zähler mit jedem neuen Start des Skripts wieder bei 0. BrickLink erlaubt nur 5000 Zugriffe pro Tag!!!
Verändern
Artikel anlegen
map = Map
map.add( "item.no", "3001" )
map.add( "item.type", "PART" )
map.add( "color_id", 7 )
map.add( "quantity", 5 )
map.add( "unit_price", 0.10 )
map.add( "new_or_used", 'U' )
map.add( "is_retain", true )
map.add( "is_stock_room", false )
map.add( "sale_rate", 0 )
result? = BRICKLINK.createInventory( map )
ok = result.isNotNil
ok.print
Zum Anlegen eines "Inventory" muss zuerst eine Map mit den gewünschten Daten gefüllt werden. Die Schlüssel sind teils selbsterklärend, hier aber eine kurze Erklärung:
Schlüssel | Typ | Beschreibung |
---|---|---|
item.no | Str | Die Teile-Nummer |
item.type | Str | Der Teile-Typ in Großbuchstaben |
color_id | Int | Der gewünschte Farbcode |
quantity | Int | Die gewünschte Menge |
unit_price | Dec | Der Einzelpreis |
new_or_used | Char | 'N' = Neu, 'U' = Used |
is_retain | Bool | Eintrag nach Abverkauf bestehen lassen? |
is_stock_room | Bool | Eintrag als StockRoom und somit nur privat anlegen? |
sale_rate | Int | Der gewünschte Rabatt |
In diesem Beispiel wird somit ein Inventory mit 5 Stück "Brick 2x4" in blau zu einem Preis von je 0.10 angelegt.
Weitere Möglichkeiten
Alle integrierten Funktionen sind in der Referenz aufgeführt: Referenz - BrickLinkAPI