Skip to content

RekaDijo connector

RekaDijo is TechTur's quotation-first food marketplace. Sellers (home kitchens, takeaways, caterers) run their kitchens and walk-in sales on TechTur POS, with their RekaDijo menu and orders already there.

Status: the POS side is implemented and tested (launch tickets, consent and linking, product sync, orders, webhooks — apps/api/test/platform.test.ts). The RekaDijo-side mapping is implemented and unit-tested in examples/rekadijo-connector/ against RekaDijo's real schema. Installing it into the RekaDijo application (a feature branch there) and approving the live connector application are pending.

Identity

RekaDijo POS
User.id externalUserId
Business.id externalBusinessId
Business.ownerId === user.id → businessRole: "owner"
BusinessStaff.role = MANAGER "manager" → Store Manager
BusinessStaff.role = KITCHEN / FRONT_OF_HOUSE / DRIVER_COORDINATOR "staff" → Cashier

RekaDijo's dashboard gets a POS & Store Operations entry in the vendor navigation, shown to VENDOR_OWNER and active BusinessStaff. It posts to a RekaDijo server route that calls createLaunchTicket for the signed-in user (read from RekaDijo's own getCurrentUser(); never from the request) and redirects. RekaDijo's rekadijo_session JWT never leaves RekaDijo.

Catalogue (RekaDijo owns it)

RekaDijo POS sync payload
MenuItem.id externalId (product and its single variant)
MenuItem.name, description name, description
MenuItem.basePrice (VAT-inclusive display price) variants[0].price
MenuCategory category { externalId, name }
first Media image imageUrl
MenuItemOption grouped by name modifierGroups[], each choiceLabel + priceDelta a modifier
isActive && !suppressedAt && !deletedAt isActive
— trackStock: false by default: home kitchens track daily capacity, not inventory (RekaDijo H-14)

Sync on menu create/update/delete and once nightly.

Orders

RekaDijo's quotations stay in RekaDijo. When an Order has a SUCCESS payment, RekaDijo pushes it with externalRef = Order.id, payment.provider = "rekadijo", payment.reference = Payment.id, any discountAmount as a fixed order discount, and payment.amount = subtotal − discountAmount — the seller's food value. Delivery fees and tips stay with RekaDijo and the driver. RekaDijo keeps collecting payment and settling to sellers; in POS the money sits in "Other payments clearing" until the seller records the settlement. Fulfilment updates (IN_PREPARATION → preparing, READY → ready, OUT_FOR_DELIVERY, DELIVERED) are mirrored with setFulfilment. Cancellations of paid orders are refunds and stay governed by RekaDijo's dispute rules.

Stock

Optional. A seller who tracks stock for instant-order items can let POS own it; RekaDijo then updates BranchItemAvailability.stockQuantity from inventory.changed. RekaDijo must not decrement its own count for orders it pushed.

Data ownership

RekaDijo: names, descriptions, images, categories, menu prices, active flags. POS: in-store stock, cost prices, barcodes, in-store sales.