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 startFIX 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
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
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
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)
Switch to list mode, press “New”
- Name: Food Machine Template
- Typ: Food Machine
- Controller Service URL: https://service-nexumx42.maxcrc.de
Stop session for Food Machine Template
Kassensystem, find “Food Machine Template” session, and stop it
Setup POS config for Food Machine Template
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
- Name: MP4 Source
- URL: https://www.w3schools.com/tags/movie.mp4
- Content-Type - content-type of the video. (Ex: video/mp4)
- Select this video sources in POS Config
-
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
- Replace “NTN Antrie…” everywhere with “Food Machine Template”
- Referenz-Zahlungsmethoden: Card Teminal ZVT
Check “Use vending locations” in template warehouse config
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
In the cog, select “Archieviren”.
Archive “Food Machine Template” POS config
In the cog, select “Archieviren”.
Fix Vendon sync after Vova’s script
- Server URL: https://cloud.vendon.net
- Aktiviert: true
====== Creating a new VU ========
Switch to the list mode view in “Nexumx42”
- name: BUG 01
- type: “Food Machine”
Create a new product template
- 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
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
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:
- “frameUrl”: “https://service-nexumx42.maxcrc.de/BUG01/CardTerminal/simulator?hideHeader=true&liteMode=true”
- sync product amounts from “DEBUG” button manually
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.pyTemporary 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.jsonreplace AUT01 with the id of your automat
After that you need to restart your automat service:
docker restart dispenser-AUT01Adding 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/nexumx42docker compose downStart the whole thing:
docker compose up -dKiosk URLS:
https://ff24-demo.maxcrc.de/pos-self/41?access_token=6e22ea891cc74364
https://ff24-demo.maxcrc.de/pos-self/11?access_token=735efdfc88024e26