Skip to content

MQTT Setup

Simulator URLs

https://service-nexumx42.maxcrc.de/AUT01/simulator

https://service-nexumx42.maxcrc.de/NTN01/simulator

Switch to the latest branch

Switch to the lates branch:

  • develop-17.0.10.16d-1-nexumx42-70

Update git submodules

Recreate prod container with image maxcrc/odoo17:0.0.3.1

sudo docker stop erp.kamberi-group.de.container && \
sudo docker update --restart=no erp.kamberi-group.de.container && \
sudo docker rename erp.kamberi-group.de.container erp.kamberi-group.de.container.bak && \
sudo docker run --name erp.kamberi-group.de.container \
-d --restart=always \
--log-opt max-size=10m --log-opt max-file=2 \
--memory=6g \
--link postgresql:postgres \
-v /var/lib/odoo/erp.kamberi-group.de/data/filestore:/opt/odoo/data/filestore \
-v /var/lib/odoo/erp.kamberi-group.de/data/sessions:/opt/odoo/data/sessions \
-v /var/lib/odoo/erp.kamberi-group.de/data:/var/log/odoo \
-v /etc/odoo/erp.kamberi-group.de:/opt/odoo/etc:rw \
-v /var/lib/odoo/erp.kamberi-group.de/app:/opt/odoo/extra-addons \
-e VIRTUAL_PORT=8069 \
-e VIRTUAL_HOST=erp.kamberi-group.de,b2b.fresh-food24.de,erp.schrimpf-bauelemente.de,erp.in-hochform.de,termine.fresh-food24.de \
-e LETSENCRYPT_EMAIL=atkachenko@maxcrc.de \
-e LETSENCRYPT_HOST=erp.kamberi-group.de,b2b.fresh-food24.de,erp.schrimpf-bauelemente.de,erp.in-hochform.de,termine.fresh-food24.de \
-e ODOO_DB_USER=erpkamberigroup \
-e ODOO_DB_PASSWORD=dHpLyB2PSCe8Rw4kxAhYTz \
-e ODOO_DB_HOST=postgres \
maxcrc/odoo17:0.0.3.1 start

FIX def _process_ondelete(self) THIS IS VOVA’S JOB!

Enable debug mode

Update modules list

Update modules

  • equipment_management
  • equipment_management_templates
  • equipment_management_warehouse
  • equipment_management_events
  • inventory_barcode
  • sale_letting_template
  • sale_letting_contract
  • website_product_publish
  • nexumx42
  • vendon_api
  • hr_attendance_mode_rfid

Install modules

  • pos_self_order_delivery
  • pos_self_order_zvt
  • stock_picking_template
  • inventory_vending
  • cursor_read_commited
  • equipment_management_events_api

Switch to FreshFood24 company, enable all checks

Payment methods

POS -> Configuration -> Payment Methods

Create a new payment method:

  • Name: Card Terminal ZVT
  • Journal: Bank
  • Use a Payment Terminal (Zahlungsterminal verwenden): ZVT

Create “Food Machine Template” with temporary NTN data

Nexumx42 / Einstellungen / Vorlagen für Ausrüstungsgegenstände (Equipment Item Templates)

We’ll base this template on NTN machine, that’s why we’re selecting it in all places.

Create a new template:

  • Name: “Food Machine Template”
  • Equipment Item Template: “NTN Antrieb…”
  • Benutzervorlage: “NTN Antrieb…”
  • Lagerhaus erstellen: check
    • Lager-Vorlage: “NTN Antrieb…”
  • Vorlage POS-Konfig: “NTN Antrieb…”
  • Copy payment methods: Empty

Create “Food Machine” type

Nexumx42 / Einstellungen / Ausrüstungsgegenstand Typen (Equipment Item Types)

Create “Snack Machine” type

  • Name: “Food Machine”
  • Unique name (Eindeutiger Name): “food_machine”
  • Category: Nexumx42
  • Vorlage für Ausrüstungsgegenstände: Food Machine Template

Create a template VU (will be archived)

Nexumx42 / Austrustung /

Switch to list mode, press “New”

Stop session for Food Machine Template

Kassensystem, find “Food Machine Template” session, and stop it

Setup POS config for Food Machine Template

Kassensystem / Konfiguration / Kassensystem / Food Machine Template / Einstellungen

Next, configure Kiosk as it should be for all automats:

  • in “Mobile self-order & Kiosk” (Mobile Selbstbestellung & Kiosk) section select

    • Selbstbestellung (Self Ordering): Kiosk
  • in “Payment” (Zahlung) section

    • Payment Methods: remove other methods, add only “Card Terminal ZVT”
  • in “Inventory” (Lager) section

    • Allow Ship Later (Späteren Versand ermöglichen): Check
    • Shipping Policy (Versandbedingungen): As soon as possible(Sobald wie moglich)
    • VU takeout (VU Mitnahme): Check this radio option
  • in “Kassensystem” / “Konfiguration” / “Videoquelle” section

  • Check “Single Window mode” in POS config

    • in the “Mobile self-order & Kiosk” enable “Single window mode”.

Replace settings in “Food Machine Template” with the actual values

Nexumx42 / Einstellungen / Vorlagen für Ausrüstungsgegenstände (Equipment Item Templates) / Food Machine Template
  • Replace “NTN Antrie…” everywhere with “Food Machine Template”
  • Referenz-Zahlungsmethoden: Card Teminal ZVT

Check “Use vending locations” in template warehouse config

Lager / Konfiguration / Lagerhauser / Food Machine Template

This means split products in shelves when adding them in batch.

  • Check “Use Vending Locations”

Archive “Food Machine Template” warehouse config

Now it throws an error, will be fixed later…

Archive “Food Machine Template” equipment item

Nexumx42 / Austrustung / Food Machine Template

In the cog, select “Archieviren”.

Archive “Food Machine Template” POS config

Kassensystem / Konfiguration / Kassensystem / Food Machine Template

In the cog, select “Archieviren”.

Fix Vendon sync after Vova’s script

====== Creating a new VU ========

Switch to the list mode view in “Nexumx42”

  • name: BUG 01
  • type: “Food Machine”

Create a new product template

Nexumx42 / Einstellungen / Vorlagen zur Aktienauswahl
  • Name: BUG01 Template - FULL8
  • Products:
    • Currywurst Rind Mexican Style
    • Chiang Mai Nudeln - 8,25 (pricelist AUT01) - HEAT
    • Lasagne vom Rind
    • Mac and Cheese - HEAT
    • Currypfanne mit Garnelen
    • Ungarische Schaschlikpfanne mit Reis und Paprikasauce - HEAT
    • Orientalische Bowl

Update stock on the automat using “Stock receipts”

Open VU “BUG 01” and using “Stock Receipts” (Wareneinguange) update stock with template “FULL 8”

Setup price list

Point of Sale / Products / Pricelists

Create a new pricelist there with the following parameters:

  • “Name” - BUG01 EUR pricelist
  • “Currency” - EUR
  • “Company” - FreshFood24 GmbH

On the “Price Rules” tab select products, enter their prices and save the price list.

Enabling price list for VU

Point of Sale / Configuration / Settings / BUG01 POS config

Stop the session!

To enable pricelists feature for the particular pos config navigate to “Point of Sale” / “Configuration” / “Settings”, select your point of sale in the dropdown list at the top and in the “Pricing” section check the box “Flexible pricelists”, select radio button “Multiple prices per product” and finally in the “Default” list select the price list that was created earlier - BUG01 EUR pricelist.

Create a new VU on nexum42-cloud server

Add item-dispenser

/opt/nexumx42/item-dispenser-service/data

Copy from another existing VU, and patch:

Update controller’s locations list

/opt/nexumx42/nexumx42-controller-service/data

"locations": [
"FRE01",
"BUG01",
...
],

Duplicate simulator config and patch it

/opt/nexumx42/nexumx42-simulator-service/data

Patch simulator config with correct kiosk URL:

{
"selfKioskUrl": "https://ff24-demo.maxcrc.de/pos-self/71?access_token=71f947c945be4ce4",
"simulators": {
"goods-dispenser": {
"url": "https://service-nexumx42.maxcrc.de/BUG01/GoodsDispenser/device?hideHeader=true"
},
"card-terminal": {
"url": "https://service-nexumx42.maxcrc.de/BUG01/CardTerminal/simulator?hideHeader=true&liteMode=true"
}
}
}

Patch docker-compose.yml file

Similar to another configs, add a new config for BUG01 automat.

/etc/docker/nexumx42/docker-compose.yml

Restart docker compose

Setup Firefox profile for testing

Run Win+R: firefox.exe -P

Create profile: CAT01

Create a shortcut on desktop:

"C:\Program Files\Mozilla Firefox\firefox.exe" -new-instance -P "CAT01"

Profile name can be taken from here:

C:\Users\aleskerov\AppData\Roaming\Mozilla\Firefox\Profiles\no2z9vv1.CAT01

Open the profile manually for the first time and add bookmark to simulator

https://service-nexumx42.maxcrc.de/CAT01/simulator

Add profile to automation python script

Open C:\Work\nexum_automate\nexum_automate_n_profiles.py , and add required profile data

Run automation script

cd C:\Work\nexum_automate\
python nexum_automate_n_profiles.py

Temporary profiles will be created in here:

C:\Users\aleskerov\AppData\Local\Temp\firefox_profile_9zw2bmb5

=====ADDITIONAL INFORMATION=====

Sync products availability manually like an animal

This awesome system doesn’t sync products available in odoo backend and on VU, so you, like an animal have to do it manyally. Gladly, someone made a button to export settings.

in “Nexumx42” menu select an automat, then in DEBUG mode you’ll see a button “Goods Sync(DEBUG)”. After pressing this button, you’ll see a line with numbers.

To sync products availability you need to copy this line and paste in in config file:

/opt/nexumx42/item-dispenser-service/data/AUT01/settings.json

replace AUT01 with the id of your automat

After that you need to restart your automat service:

docker restart dispenser-AUT01

Adding vendors to the products on automats

In order for purchase to work from backend, we need to set vendor for each product. Open products that should be sold on an automat and on the tab “Purchase”, add any vendor with the price 1.

Docker-compose commands

Stop the whole thing:

cd /etc/docker/nexumx42
docker compose down

Start the whole thing:

docker compose up -d

Kiosk URLS:

https://ff24-demo.maxcrc.de/pos-self/41?access_token=6e22ea891cc74364

https://ff24-demo.maxcrc.de/pos-self/11?access_token=735efdfc88024e26