All Projects → Ephigenia → ikea-availability-checker

Ephigenia / ikea-availability-checker

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

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects
typescript
32286 projects

Projects that are alternatives of or similar to ikea-availability-checker

custom-brand-icons
Custom brand icons for Home Assistant
Stars: ✭ 242 (+15.24%)
Mutual labels:  ikea
AlphaVantageRB
A Gem for AlphaVantage
Stars: ✭ 68 (-67.62%)
Mutual labels:  stock
mooquant
MooQuant 是一个基于 pyalgotrade 衍生而来的支持 python3 的支持国内A股的量化交易框架。
Stars: ✭ 24 (-88.57%)
Mutual labels:  stock
PyTse
TseTmc Crawler
Stars: ✭ 40 (-80.95%)
Mutual labels:  stock
markets
A stock, currency and cryptocurrency tracker
Stars: ✭ 103 (-50.95%)
Mutual labels:  stock
MyTT
MyTT将通达信,同花顺,文华麦语言等指标公式,最简移植到Python中,核心库单个文件,仅百行代码,十几个核心函数,神奇的实现所有常见技术指标算法(不依赖talib库)的纯python实现和转换通达信MACD,RSI,BOLL,ATR,KDJ,CCI,PSY等公式,全部基于pandas函数计算方法封装,简洁且高性能,能非常方便的应用在股票指标公式,股市期货量化框架分析,自动程序化交易,数字货币量化等领域,它是您最精练的股市量化工具。Python library with most stock market indicators.
Stars: ✭ 888 (+322.86%)
Mutual labels:  stock
Chase
Automatic trading bot (WIP)
Stars: ✭ 73 (-65.24%)
Mutual labels:  stock
Scrape-Finance-Data
My code for scraping financial data in Vietnam
Stars: ✭ 13 (-93.81%)
Mutual labels:  stock
finnhub-js
Finnhub Javascript API Client. Finnhub API provides institutional-grade financial data to investors, fintech startups and investment firms. We support real-time stock price, global fundamentals and alternative data. https://finnhub.io/docs/api
Stars: ✭ 35 (-83.33%)
Mutual labels:  stock
backend-ctp
CTP接口封装,使用redis做消息中转
Stars: ✭ 26 (-87.62%)
Mutual labels:  stock
markets-react
📈 Check the stock market, from your phone!
Stars: ✭ 47 (-77.62%)
Mutual labels:  stock
STOCK-RETURN-PREDICTION-USING-KNN-SVM-GUASSIAN-PROCESS-ADABOOST-TREE-REGRESSION-AND-QDA
Forecast stock prices using machine learning approach. A time series analysis. Employ the Use of Predictive Modeling in Machine Learning to Forecast Stock Return. Approach Used by Hedge Funds to Select Tradeable Stocks
Stars: ✭ 94 (-55.24%)
Mutual labels:  stock
finnhub-go
Finnhub Go API client. Finnhub API provides institutional-grade financial data to investors, fintech startups and investment firms. We support real-time stock price, global fundamentals and alternative data. https://finnhub.io/docs/api
Stars: ✭ 53 (-74.76%)
Mutual labels:  stock
bsedata
Python library for extracting real-time data from Bombay Stock Exchange (India)
Stars: ✭ 67 (-68.1%)
Mutual labels:  stock
Tradfri-FHEM
A Module for the FHEM Home-Control Software which enables connectivity to the IKEA Trådfri gateway
Stars: ✭ 23 (-89.05%)
Mutual labels:  ikea
qluacpp
C++ interface for Quik trading terminal via lua bindings
Stars: ✭ 44 (-79.05%)
Mutual labels:  stock
TRADFRI2MQTT
MQTT Bridge for IKEA TRÅDFRI Light Gateway
Stars: ✭ 80 (-61.9%)
Mutual labels:  ikea
istock-fund
基于Spring boot 实现的股票基金爬虫工具
Stars: ✭ 23 (-89.05%)
Mutual labels:  stock
odoo-addons
Modules for Odoo/OpenERP
Stars: ✭ 94 (-55.24%)
Mutual labels:  stock
kw condition
키움 증권 조건 검색식 사용 Console App
Stars: ✭ 54 (-74.29%)
Mutual labels:  stock

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 395 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, ee, es, fi, fr, gb, hk, hr, hu, ie, it, jo, jp, kr, kw, lt, lv, 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].