Kategorien
Entwicklung GO Lang Programmierung REST API

goidealo Libary

Wir haben für ein anstehendes Projekt eine Library in GO entwickelt, welche es anderen Entwicklern leichter machen soll, mit der idealo API zu interagieren.

Für ein Projekt, welches wir zusammen mit idealo aktuell noch entwickeln, benötigten wir eine Möglichkeit auf die gesamten Endpunkte der PWS2.0 und MOA2.0 zuzugreifen. Deshalb haben wir gedacht, wir machen mal wieder ein kleines Open Source Projekt und nutzen dieses ebenfalls um das Projekt Hacktoberfest etwas zu unterstützen.

Die Library finden Sie, wie eigentlich immer, auf unserem GitHub Profil.

Damit Sie direkt mit dieser Library starten können, geben wir Ihnen hier eine kleine Einweisung.

PWS2.0 Access Token

Damit Sie Zugriff auf die weiteren Funktionen haben, benötigen Sie einen Access Token. Dieser hat aktuell eine TTL von 3600 Sekunden.

// Define request
r := goidealo.Request{
    ClientId:       "",
    ClientPassword: "",
}

// Get access token
accessToken, err := goidealo.PwsAccessToken(r)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(accessToken)
}

Wenn Sie nun einen aktuellen Access Token besitzen, können wir nun einmal ein neues Angebot erstellen.

Angebot erstellen

Wenn Sie ein neues Angebot erstellen wollen, dann können Sie dies über die folgende Funktion machen.

// Define request
r := goidealo.Request{
    AccessToken: "",
}

// Set body
body := goidealo.OfferBody{
    Sku:   "21-Lloyd-27-600-12-Hagen-UK6.5-Gr.40",
    Title: "Lloyd Men Hagen 27-600-12 Herren Schuhe Derby Schnürer Wildleder Dunkelbraun",
    Price: "89.95",
    Url:   "http://www.shoes4friends.de",
    PaymentCosts: &goidealo.OfferBodyPaymentCosts{
        PAYPAL: "2.63",
    },
    DeliveryCosts: &goidealo.OfferBodyDeliveryCosts{
        DHL: "0.69",
    },
    BasePrice:                "",
    PackagingUnit:            5,
    VoucherCode:              "",
    BranchId:                 "lloyd",
    Brand:                    "Lloyd",
    Oens:                     nil,
    CategoryPath:             nil,
    Description:              "Lloyd Men Hagen 27-600-12 Herren Schuhe Derby Schnürer Wildleder Dunkelbraun",
    ImageUrls:                nil,
    Eans:                     nil,
    Hans:                     nil,
    Pzns:                     nil,
    Kbas:                     nil,
    MerchantName:             "",
    MerchantId:               "",
    DeliveryComment:          "",
    Delivery:                 "1-3 Werktage",
    MaxOrderProcessingTime:   1,
    FreeReturnDays:           30,
    Checkout:                 true,
    CheckoutLimitPerPeriod:   13,
    QuantityPerOrder:         2,
    MinimumPrice:             "",
    FulfillmentType:          "",
    TwoManHandlingFee:        "",
    DisposalFee:              "",
    Eec:                      "",
    EnergyLabels:             nil,
    Deposit:                  "",
    Size:                     "",
    Colour:                   "",
    Gender:                   "",
    Material:                 "",
    Replica:                  false,
    Used:                     false,
    Download:                 false,
    DynamicProductAttributes: nil,
}

// Add images
body.ImageUrls = append(body.ImageUrls, "https://www.marken-schuhmarkt.de/21-Lloyd-Herren-Schuhe-Derby-Halbschuhe-Wildleder-Hagen-27-600-12-braun-001.jpg")

// Add eans
body.Eans = append(body.Eans, "4032055134146")

// Update the timestamp
offer, err := goidealo.CreateOffer(325081, body, r)
if err != nil {
    fmt.Println(err)
} else {
	fmt.Println(offer)
}

Nachdem wir dieses Angebot nun erstellt haben, wollen wir die dazugehörigen Daten nun einmal auslesen.

Angebot auslesen

Damit Sie ein Angebot auslesen können, haben wir folgende Funktion in der Library ergänzt.

// Define request
r := goidealo.Request{
    AccessToken: "",
}

// Get offer by sku
offer, err := goidealo.Offer(325081, "21-Lloyd-27-600-12-Hagen-UK6.5-Gr.40", r)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(offer)
}

Nun haben Sie einen groben Überblick über den Funktionsumfang. Wenn Sie mehr Informationen benöttigen, oder sich die gesamte Dokumentation der Library ansehen wollen, dann schauen Sie auf unserem GitHub Profil vorbei.

P.S.: Wir stellen die Libraries kostenlos für alle Entwickler zur verfügung. Damit wir dies in Zukunft noch besser und detaillierter machen können, würden wir uns über ein Sponsoring sehr freuen.

Klicken Sie auf den unteren Button, um den Inhalt von github.com zu laden.

Inhalt laden

Von Jonas Kwiedor

Full- Stack Developer aus Hamburg. Liebt es sich mit Schnittstellen & Automationen auseinander zu setzen und sich mit der Programmiersprache GO Lang zu beschäftigen.