GithubHelp home page GithubHelp logo

repository / ikea-availability-checker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ephigenia/ikea-availability-checker

1.0 0.0 0.0 1.1 MB

Command-Line-Script & Library for checking the availability of specific IKEA products in specific stores and/or countries.

License: MIT License

Shell 3.89% JavaScript 95.78% TypeScript 0.32%

ikea-availability-checker's Introduction

Sometimes there is a high demand for products that are unavailable in the IKEA online store and even in the locations. So here’s a script which makes it easy to check the availability of a list of products and locations.

MIT License NPM Package NPM Downloads Known Vulnerabilities Rate on Openbase default

IMPORTANT NOTE

BREAKING IOWS2 API for several Countries

This package uses the undocumented iows2 api by IKEA which doesn’t work for several countries anymore: be, cn, fi, fr, gb, hk, ie, jp, kr, my, pl, ru, sg, th, tw, us

If you want to get availabilities for those countries please consider testing the alpha channel of this package by installing the "2.0.0-alpha.1" version:

npm install -g [email protected]

or run it directly

npx [email protected] stock --country pl 80382321

Please report any bugs related to this alpha in the issues: https://github.com/Ephigenia/ikea-availability-checker/issues

Features

  • list of 380 IKEA stores worldwide
  • get product stock amount for a whole country or single store in JSON, CSV and CLI-Table format including forecast (when available)
  • support for many countries: at, au, be, ca, ch, cn, cz, de, dk, es, fi, fr, gb, hk, hr, hu, ie, it, jo, jp, kr, kw, lt, my, nl, no, pl, pt, qa, ro, ru, sa, se, sg, sk, th, tw, us
  • integrate/use the library into your node project

Command Line

Install

Global

A globally installed ikea-availability-checker can be used anywhere but there can only be one version of it.

npm install -g ikea-availability-checker

After you can run the ikea-availability-checker directly:

ikea-availability

Local

A locally installed ikea-availability-checker will be placed in ./node_modules/ikea-availability-checker and can be called using the binary link:

npm install ikea-availability-checker;
node_modules/.bin/ikea-availability-checker --help;

NPX

Or call it directly using npx:

npx ikea-availability-checker --help

Use

Stores

npm run start -- stores at

┌─────────────┬─────────┬────────┬────────────────┐
│ countryCode │ country │ buCode │ name           │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 085    │ Wien Vösendorf │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 090    │ Wien Nord      │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 155    │ Klagenfurt     │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 273    │ Innsbruck      │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 386    │ Salzburg       │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 387    │ Graz           │
├─────────────┼─────────┼────────┼────────────────┤
│ at          │ Austria │ 388    │ Haid           │
└─────────────┴─────────┴────────┴────────────────┘

Stock

Product Stock Information for a whole country

npm run start -- stock --country at 80213074

┌──────────────────────────┬─────────────┬─────────┬──────────┬──────────────────┬─────────────────────┬───────┬─────────────┬─────────────────────┬────────────────────────────────────────────┐
│ date                     │ countryCode │ country │ product  │ storeId (buCode) │ store               │ stock │ probability │ restockDate         │ forecast                                   │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.556Z │ at          │ Austria │ 80213074 │ 387              │ IKEA Graz           │    26 │        HIGH │                     │ 09-30: 54, 10-01: 54, 10-02: 48, 10-03: 37 │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.614Z │ at          │ Austria │ 80213074 │ 388              │ IKEA Haid           │     0 │         LOW │ in 1d (2020-10-01)  │ 09-30: 0, 10-01: 45, 10-02: 39, 10-03: 33  │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.607Z │ at          │ Austria │ 80213074 │ 273              │ IKEA Innsbruck      │     1 │         LOW │ in 3d (2020-10-03)  │ 09-30: 0, 10-01: 0, 10-02: 0, 10-03: 36    │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.643Z │ at          │ Austria │ 80213074 │ 155              │ IKEA Klagenfurt     │    25 │        HIGH │                     │ 09-30: 32, 10-01: 32, 10-02: 28, 10-03: 22 │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.676Z │ at          │ Austria │ 80213074 │ 386              │ IKEA Salzburg       │    22 │        HIGH │                     │ 09-30: 22, 10-01: 22, 10-02: 22, 10-03: 17 │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.610Z │ at          │ Austria │ 80213074 │ 090              │ IKEA Wien Nord      │     0 │         LOW │ in 13d (2020-10-13) │ 09-30: 0, 10-01: 0, 10-02: 0, 10-03: 0     │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────────┼───────┼─────────────┼─────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:44:53.559Z │ at          │ Austria │ 80213074 │ 085              │ IKEA Wien Vösendorf │    26 │        HIGH │                     │ 09-30: 34, 10-01: 32, 10-02: 20, 10-03: 7  │
└──────────────────────────┴─────────────┴─────────┴──────────┴──────────────────┴─────────────────────┴───────┴─────────────┴─────────────────────┴────────────────────────────────────────────┘

Product Stock Information for a specific store

with BU-Code (Store-Id)
npm run start -- stock --store=155 S69022537

┌──────────────────────────┬─────────────┬─────────┬──────────┬──────────────────┬─────────────────┬───────┬─────────────┬─────────────┬────────────────────────────────────────────┐
│ date                     │ countryCode │ country │ product  │ storeId (buCode) │ store           │ stock │ probability │ restockDate │ forecast                                   │
├──────────────────────────┼─────────────┼─────────┼──────────┼──────────────────┼─────────────────┼───────┼─────────────┼─────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:45:24.219Z │ at          │ Austria │ 80213074 │ 155              │ IKEA Klagenfurt │    25 │        HIGH │             │ 09-30: 32, 10-01: 32, 10-02: 28, 10-03: 22 │
└──────────────────────────┴─────────────┴─────────┴──────────┴──────────────────┴─────────────────┴───────┴─────────────┴─────────────┴────────────────────────────────────────────┘
Store-Name / Location / City-Name

The "store" option also accepts strings which match on the location’s name:

npm run start -- stock --store=Berlin 40413131

Multiple Stores and Product Ids

The list of bu-codes can also contain bu-codes from different countries.

npm run start -- stock --store=224,069,063 S69022537 40299687

┌──────────────────────────┬─────────────┬─────────┬───────────┬──────────────────┬─────────────────────┬───────┬─────────────┬────────────────────┬────────────────────────────────────────────┐
│ date                     │ countryCode │ country │ product   │ storeId (buCode) │ store               │ stock │ probability │ restockDate        │ forecast                                   │
├──────────────────────────┼─────────────┼─────────┼───────────┼──────────────────┼─────────────────────┼───────┼─────────────┼────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:46:06.682Z │ de          │ Germany │ S69022537 │ 063              │ IKEA München-Eching │     8 │        HIGH │                    │ 09-30: 5, 10-01: 32, 10-02: 29, 10-03: 26  │
├──────────────────────────┼─────────────┼─────────┼───────────┼──────────────────┼─────────────────────┼───────┼─────────────┼────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:46:06.682Z │ de          │ Germany │ S69022537 │ 069              │ IKEA Oldenburg      │    19 │        HIGH │                    │ 09-30: 17, 10-01: 20, 10-02: 20, 10-03: 19 │
├──────────────────────────┼─────────────┼─────────┼───────────┼──────────────────┼─────────────────────┼───────┼─────────────┼────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:46:06.683Z │ de          │ Germany │ S69022537 │ 224              │ IKEA Sindelfingen   │    11 │        HIGH │                    │ 09-30: 19, 10-01: 16, 10-02: 12, 10-03: 9  │
├──────────────────────────┼─────────────┼─────────┼───────────┼──────────────────┼─────────────────────┼───────┼─────────────┼────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:46:06.684Z │ de          │ Germany │ 40299687  │ 063              │ IKEA München-Eching │    15 │        HIGH │                    │ 09-30: 14, 10-01: 12, 10-02: 10, 10-03: 8  │
├──────────────────────────┼─────────────┼─────────┼───────────┼──────────────────┼─────────────────────┼───────┼─────────────┼────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:46:06.684Z │ de          │ Germany │ 40299687  │ 069              │ IKEA Oldenburg      │     0 │         LOW │ in 3d (2020-10-03) │ 09-30: 0, 10-01: 0, 10-02: 0, 10-03: 36    │
├──────────────────────────┼─────────────┼─────────┼───────────┼──────────────────┼─────────────────────┼───────┼─────────────┼────────────────────┼────────────────────────────────────────────┤
│ 2020-09-29T10:46:06.685Z │ de          │ Germany │ 40299687  │ 224              │ IKEA Sindelfingen   │     1 │         LOW │ in 4d (2020-10-04) │ 09-30: 0, 10-01: 0, 10-02: 0, 10-03: 0     │
└──────────────────────────┴─────────────┴─────────┴───────────┴──────────────────┴─────────────────────┴───────┴─────────────┴────────────────────┴────────────────────────────────────────────┘

API

The API interface which helps you including the check into your library is kind of new. If you have suggestions for improvements feel free to open an issue.

const checker = require('ikea-availability-checker');

(async function() {
    const result = await checker.availability('394', '00501436');
    console.log('RESULT', result);
})();

Checkout more examples in the examples directory.

Development

Requirements

  • nodejs for version info check .nvmrc. it is strongly recommended to use either nvm and the exact same node version or the docker container as development environment

Debug

Node provides a simple way to debug all HTTP-related requests and responses using NODE_DEBUG:

NODE_DEBUG=http npm run start

Testing

The project has a preconfigured test runner mocha. Test coverage is not good.

Running all tests will also create coverage reports shown after the test results.

npm run test

TDD

npm run tdd

Run Specific tests

run test -- --grep="stock reporter"

Release

Releases are automated and created by CI managed by semantic-release.

Trouble Shooting

  • DEPRECATED You’re trying to check the availability for a product which may not be available in the country/store. Read more about in the Discussions

Other Projects & Articles

Articles & Resources

Packages

Services


† This website is not run by or affiliated with Inter-IKEA Systems B.V. or its related business entities.

IKEA® is a registered trademark of Inter-IKEA Systems B.V. in the U.S. and other countries.

ikea-availability-checker's People

Contributors

bambutz avatar bartsimp avatar cfharp avatar cquintana92 avatar cubeghost avatar dependabot[bot] avatar ephemera avatar ephigenia avatar gitolicious avatar gitter-badger avatar guedou avatar jeffreyca avatar lirux avatar martinlosak avatar maxkratz avatar mochipon avatar nick2k3 avatar nrobert avatar rcralph avatar semantic-release-bot avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.