/ps_eventbus

PS EventBus is the CloudSync companion which paves the way for cloud synchronization

Primary LanguagePHPOpen Software License 3.0OSL-3.0

PS EventBus

Quality Check

ps_eventbus is a module companion for CloudSync.

Compatibility matrix

PrestaShop platform PHP PS EventBus
8.0 7.1+ From 2.x
1.7.3-1.7.8 7.1+ From 2.x
1.6.1.11 - 1.7.2.5 7.1 From 3.1

PS Accounts compatibility matrix can be viewed here.

Use

make help        # get help on how to use the awesome Makefile features
make             # bundle all vendors required for the module to run
make zip         # make a zip ready to be tested in PrestaShop (see ./dist)

Pro-tip: prefix all you make commands with the variables you want to override. Ie: VERSION=v1.2.3-rc4 make zip-prod to set the zip package to the desired version.

Testing

make lint              # linting the code with vendor/bin/php-cs-fixer
make lint-fix          # linting and fixing the code with vendor/bin/php-cs-fixer
make php-lint          # linting with php
make phpunit           # unit testing with vendor/bin/phpunit
make phpunit-cov  # unit testing as above but with code coverage
make phpstan           # linting the code with PrestaShop and vendor/bin/phpstan

make docker-<stuff>    # same as above, but in a docker container

Note: you will need xdebug if you want to generate the code-coverage of this project. You may install it with: pecl install -f xdebug.

Healthiness

To check the module healthiness (authentified route):

BASE_URL="http://localhost:8000"
curl -s -L "$BASE_URL/index.php?fc=module&module=ps_eventbus&controller=apiHealthCheck&job_id=valid-job-stuff" | jq .
{
  "prestashop_version": "1.6.1.24",
  "ps_eventbus_version": "0.0.0",
  "ps_accounts_version": "5.6.2",
  "php_version": "7.1.33",
  "ps_account": true,
  "is_valid_jwt": true,
  "ps_eventbus": true,
  "env": {
    "EVENT_BUS_PROXY_API_URL": "http://reverse-proxy/collector",
    "EVENT_BUS_SYNC_API_URL": "http://reverse-proxy/sync-api"
  },
  "httpCode": 200
}

To check the fallback route (unauthentified):

BASE_URL="http://localhost:8000"
curl -s -L "$BASE_URL/index.php?fc=module&module=ps_eventbus&controller=apiHealthCheck" | jq .
{
  "ps_account": true,
  "is_valid_jwt": true,
  "ps_eventbus": true,
  "env": {
    "EVENT_BUS_PROXY_API_URL": "http://reverse-proxy/collector",
    "EVENT_BUS_SYNC_API_URL": "http://reverse-proxy/sync-api",
    "EVENT_BUS_LIVE_SYNC_API_URL": "http://reverse-proxy/live-sync-api/v1"
  },
  "httpCode": 200
}

Contribute

Dev requirements:

Or an up to date Docker engine.

List of missing data in database and why is missing

Object content Reason Added in PS version Link with more info
currency.precision row missing in table 1.7.6.0 github
employee.has_enabled_gravatar row missing in table 1.7.8.0 github
product.additional_delivery_time row missing in table 1.7.3.0 github
product.delivery_in_stock row missing in table 1.7.3.0 github
product.delivery_out_stock row missing in table 1.7.3.0 github
stock.location row missing in table 1.7.5.0 github
store_lang table missing 1.7.3.0 github
wishlist¹ table missing n/a Prestashop Addons
taxonomy² table missing n/a Prestashop Addons
stock_available. physical_quantity row missing in table 1.7.2.0 github
stock_available. reserved_quantity row missing in table 1.7.2.0 github
languages.locale row missing in table 1.7.0.0 github

¹ Feature enabled only with PsWishlist module
² Feature enabled only with PsFacebook module