Unofficial and unaffiliated Node.js npm package as a wrapper for the API of the online supermarket Picnic.
Using npm
:
npm install picnic-api
Then import the package into your project. PicnicClient
is the default export.
import PicnicClient from "picnic-api";
// or
const PicnicClient = require("picnic-api");
Now initialize the Picnic client with an optional options object.
const picnicClient = new PicnicClient();
// or
const picnicClient = new PicnicClient({
countryCode: "NL", // The country code for the requests. Can be NL or DE. Untested for other countries.
apiVersion: "15", // default 15 as this is what the app currently uses. The api version for the requests. The effect of this version numbering is unknown to me.
authKey: "long string here", // default null. The code for the x-picnic-auth header to make authenticated requests. If not supplied then login() needs to be called before making any other requests.
url: "url here" // default https://storefront-prod.nl.picnicinternational.com/api/15. The url to send requests to.
});
If no authKey was given in the options use the login
method. Empty response if successful, otherwise an error.
await picnicClient.login("email", "password");
// and then send an authenticated request...
Example of a GET
request:
const searchResults = await picnicClient.search("Affligem blond");
Example of a POST
request:
await picnicClient.addProductToShoppingCart(11295810, 2);
Examples of a custom (unimplemented) request:
picnicClient.sendRequest("GET", "/unknown/route");
picnicClient.sendRequest("POST", "/invite/friend", { email: "[email protected]" });
If you want to contribute to this project then please read the CONTRIBUTING.md file, and if you like this library then please consider using my discount code MAAR3267 so that we both get a 10 euro discount on our orders. 😄