Files
daily_merchant_web/docs/FIESTA_BACKEND_API.md

48 KiB

Fiesta Backend API Reference

Go + Fiber backend (fiesta-backend/backend_fiesta). Server listens on :1122.

  • Base prefix: /live/api
  • Web group: /live/api/v1/web/* — used by the merchant web app (via the /fiesta proxy → https://fiesta.nearle.app).
  • Mobile group: /live/api/v1/mob/* — used by the mobile app.

Paths below omit the /live/api prefix. Query-param defaults shown in ( ). Request-body structs are defined in § Models at the end.


GET

Users

Path Query params Description
/v1/web/users/getallusers roleid:int (0), tenantid:int (0), pageno:int (1), pagesize:int (10), keyword:string List users, filterable by role/tenant
/v1/web/users/getusers · /v1/mob/users/getusers userid:int Single user profile

Orders

Path Query params Description
/v1/web/orders/getorders (+ tenant/,partner/,customer/,user/,admin/getorders) · /v1/mob/orders/tenant/getorders tenantid:int (0), partnerid:int (0), customerid:int (0), moduleid:int (0), applocationid:int (0), appuserid:int (0), locationid:int (0), configid:int (0), status:string, fromdate:string, todate:string, keyword:string, pageno:int (1), pagesize:int (10) Orders board (role-scoped by path)
/v1/web/orders/getordersummary tenantid:int (0), partnerid:int (0), customerid:int (0), locationid:int (0), fromdate:string, todate:string Order counts by status
/v1/web/orders/getlocationsummary tenantid:int Per-location order rollup
/v1/web/orders/getorderinsight tenantid:int Monthly order insight per location
/v1/web/orders/getorderdetails · /v1/mob/orders/getorderdetails orderheaderid:int Order line items + price breakdown
/v1/mob/orders/getcustomerorders customerid:string, tenantid:string, moduleid:string, fromdate:string, todate:string, orderstatus:string, keyword:string, pageno:int (1), pagesize:int (10) A customer's order history

Deliveries

Path Query params Description
/v1/web/deliveries/getdeliveries · /v1/mob/deliveries/getdeliveries partnerid:int (0), tenantid:int (0), userid:int (0), customerid:int (0), applocationid:int (0), appuserid:int (0), locationid:int (0), pageno:int (1), pagesize:int, fromdate:string, todate:string, status:string, keyword:string Deliveries board
/v1/web/deliveries/deliverysummary · /v1/mob/deliveries/deliverysummary tenantid:int (0), partnerid:int (0), userid:int (0), applocationid:int (0), locationid:int (0), fromdate:string, todate:string Delivery counts by status
/v1/web/deliveries/getdeliveryinsight tenantid:int Delivery insight per location
/v1/web/deliveries/getlocationsummary tenantid:int Per-location delivery rollup
/v1/web/deliveries/getreportsummary tenantid:int (0), partnerid:int (0), userid:int (0), applocationid:int (0), fromdate:string, todate:string Delivery report summary
/v1/web/deliveries/getridersummary applocationid:int (0), partnerid:int (0), tenantid:int (0), fromdate:string, todate:string Per-rider performance summary
/v1/mob/deliveries/getdeliveryqueues userid:int, fromdate:string, todate:string Rider's delivery queue

Products / Catalog

Path Query params Description
/v1/web/products/getproductcategories none All product categories
/v1/web/products/getproductsubcategories · /v1/mob/... categoryid:int (0), tenantid:int (0) Subcategories under a category
/v1/web/products/getproductscount tenantid:int, categoryid:int, subcategoryid:int, approve:string Total / available / out-of-stock counts
/v1/web/products/getproductvariants tenantid:int, subcategoryid:int Product variants
/v1/web/products/getcatalougeproducts tenantid:int, locationid:int, subcategoryid:int, keyword:string, pageno:int, pagesize:int Catalogue products (curated assortment)
/v1/web/products/getproductstocks tenantid:string, locationid:string Live stock levels
/v1/web/products/getstockstatement tenantid:int, locationid:int, subcategoryid:int, pageno:int, pagesize:int, keyword:string Stock ledger / statement
/v1/web/products/getlocationproducts · /v1/mob/... tenantid:int, locationid:int, subcategoryid:int, keyword:string, pageno:int, pagesize:int Products assigned to a location
/v1/web/products/getlocationproductsummary tenantid:int, locationid:int Location product summary (count by subcategory)
/v1/web/products/getallproducts · /v1/mob/... categoryid:int, subcategoryid:int, productid:int, applocationid:int, tenantid:int, locationid:int, keyword:string, productstatus:string, approve:string, pageno:int, pagesize:int All products, advanced filtering
/v1/mob/products/getproductbyvariant tenantid:int, variantid:int Products by variant
/v1/mob/products/getproductsbysubcategory categoryid:int, tenantid:int, applocationid:int, productid:int, keyword:string, locationid:int Products by subcategory (mobile)

Partners / Riders

Path Query params Description
/v1/web/partners/getriders · /v1/mob/... partnerid:int (0), applocationid:int (0), userid:int (0), tenantid:int (0) Active riders
/v1/web/partners/getpartners · /v1/mob/... partnerid:int (0), applocationid:int (0), userid:int (0) Partners
/v1/web/partners/getridershifts applocationid:int (0) Rider shifts
/v1/web/partners/getlocations userid:int (0), configid:int (0) Location config for user
/v1/web/partners/getriderlogs · /v1/mob/... partnerid:int (0), applocationid:int (0), fromdate:string, todate:string (⚠ controller reads todate from fromdate — bug) Rider activity logs
/v1/mob/partners/getriderinfo userid:int (0) Rider profile + latest log

Tenants

Path Query params Description
/v1/web/tenants/search status:string, keyword:string Search tenants
/v1/web/tenants/searchbykeyword · /v1/mob/... keyword:string Search by keyword
/v1/web/tenants/getalltenants pageno:int, pagesize:int, status:string, applocationid:int, tenanttype:string, keyword:string All tenants
/v1/web/tenants/gettenantlocations · /v1/mob/... tenantid:int Tenant's outlet locations
/v1/mob/tenants/gettenantslot none Tenant slots
/v1/mob/tenants/getcustomertenants customerid:int, categoryid:int, tenant:int (0=all,1=with orders) Tenants for a customer
/v1/mob/tenants/gettenantpricing tenantid:int, applocationid:int Tenant pricing
/v1/mob/tenants/getstaffs tenantid:int Tenant staff
/v1/mob/tenants/gettenantinfo tenantid:int, locationid:int Tenant detail

Customers

Path Query params Description
/v1/web/customers/gettenantcustomers · /v1/mob/... tenantid:int (0), locationid:int (0), pageno:int (0), pagesize:int (0), keyword:string Tenant customers, paginated
/v1/mob/customers/getbyid customerid:int (0), contactno:string Customer by id/contact
/v1/mob/customers/getcustomerlocation customerid:int Customer addresses
/v1/mob/customers/getcustomerrequests customerid:string, pageno:string (1), pagesize:string (10) Customer service requests
/v1/mob/customers/search keyword:string, tenantid:int (0) Search customers

Utils

Path Query params Description
/v1/web/utils/getapptypes · /v1/mob/... tag:string App types by tag (e.g. paymentmode)
/v1/web/utils/getsubcategories · /v1/mob/... moduleid:int (0), categoryid:int (0) Subcategories
/v1/web/utils/getapplocations · /v1/mob/... applocationid:int App location detail
/v1/web/utils/getappcategories · /v1/mob/... none App categories
/v1/mob/utils/getapplocationconfig applocationid:int App location config
/v1/mob/utils/getappconfig configid:int (0) App config

POST

Path Request body Description
/v1/web/users/applogin User (authname,password,configid,userfcmtoken…) App/web login
/v1/web/users/create · /v1/mob/... User Create user
/v1/web/users/tenant/weblogin User Tenant web login
/v1/mob/users/tenant/login User Tenant mobile login
/v1/web/orders/createorder · /v1/mob/... Orders (accepts {...} or {"orders":{...}}; tenantid required) Create order (+ items[])
/v1/web/deliveries/createdeliveries · /v1/mob/... []Deliveries (array) Batch-create deliveries
/v1/web/products/create Products Create product
/v1/web/products/createproductstock []Productstock (array) Stock entry (batch)
/v1/web/products/createproductlocation []Productlocations (array) Assign product(s) to a store location (price/min/max/qty)
/v1/web/products/createproductvariant Productvariant Create product variant
/v1/web/tenants/createtenantcustomer · /v1/mob/... CreateTenantCustomerRequest Link customer to tenant
/v1/web/tenants/createlocation · /v1/mob/... Tenantlocations Create location
/v1/web/tenants/createtenantlocation Tenantlocations Create tenant-location
/v1/mob/tenants/createstaff User Create staff
/v1/mob/tenants/createtenantuser Tenants (incl. nested tenantlocations) Create tenant user
/v1/mob/customers/createlocations Customerlocations Create customer address
/v1/mob/customers/createcustomerrequest CustomerRequest Create customer request
/v1/mob/customers/login { contactno:string } Customer login
/v1/mob/customers/create Customers Register customer

PUT

Path Request body Description
/v1/web/users/update · /v1/mob/... User Update staff/user
/v1/web/orders/updateorder · /v1/mob/... Orders (orderheaderid required; + items[]) Update order
/v1/web/deliveries/updatedelivery · /v1/mob/... UpdateDeliveryStatus (deliveryid required) Update delivery (status/rider/coords/kms)
/v1/web/products/update · /v1/mob/... Products Update product
/v1/web/products/updateproductlocation · /v1/mob/... Productlocations Update a product's location settings (price/min/max/status)
/v1/web/tenants/updatelocation · /v1/mob/... Tenantlocations Update location
/v1/web/tenants/updatetenantlocation Tenantlocations Update tenant-location
/v1/mob/customers/update Customers Update customer

DELETE

Path Query params Description
/v1/web/products/delete productid:int Delete product

Models

User

Field Type Notes
userid int
authname string
firstname string
lastname string
password string
email string
dialcode string
contactno string
configid int
authmode int
roleid int
pin int
deviceid string
devicetype string
userfcmtoken string
address string
suburb string
city string
state string
postcode string
partnerid int
tenantid int
locationid int
applocationid int
status string
shiftid int

Orders

Field Type Notes
orderheaderid int
tenantid int (required on create)
locationid int
applocationid int
moduleid int
partnerid int
configid int
categoryid int
subcategoryid int
orderid string
orderdate string
deliverytime string
deliverytype string
orderstatus string
pending/processing/ready/delivered/cancelled string
customerid int
pickupaddress/pickuplat/pickuplong/pickupcustomer/pickupcontactno/pickupsuburb/pickupcity string
deliverycustomer/deliverycontactno/deliveryaddress/deliverylocation/deliverycity string
deliverylocationid int
deliverylat/deliverylong string
promotionid int
promoname/promoterms string
promovalue int
promoamount/orderamount/taxamount/ordercharges/ordervalue float32
itemcount int
paymenttype int
paymentstatus int
deliverycharge float32
ordernotes/kms/remarks string
tenantuserid int
partneruserid int
smsdelivery int
items []OrderDetail

Deliveries

Field Type Notes
deliveryid int
orderheaderid int
applocationid int
configid int
partnerid int
tenantid int
moduleid int
locationid int
categoryid int
userid int
subcategoryid int
orderid string
deliverydate string
orderstatus string
assigntime/starttime/arrivaltime/pickuptime/deliverytime/canceltime string
itemcount int
orderamount float32
customerid int
pickupcustomer/pickupcontactno string
pickuplocationid int
pickupaddress/pickuplocation/pickuplat/pickuplon string
deliverycustomerid int
deliverylocationid int
deliverycustomer/deliverycontactno/deliveryaddress/deliverylocation/droplat/droplon/deliverylat/deliverylong string
deliverycharges/deliveryamt float32
deliverytype/notes/ordernotes/riderslat/riderslon string
firstmilekm/firstmilecharges/lastmilecharges/ridercharges float32
kms/actualkms string
smsdelivery int
paymenttype int

UpdateDeliveryStatus

Field Type Notes
deliveryid int (required)
deliverytype string
pickuplocationid int
deliverylocationid int
orderheaderid int
userid int
orderstatus string
assigntime/starttime/arrivaltime/pickuptime/deliverytime/canceltime string
pickuplat/pickuplon/riderslat/riderslon/deliverylat/deliverylong string
address/suburb/city/state/postcode string
deliveryamt float32
kms/actualkms/riderkms/kmcal string
notes/feedback string
smsdelivery int

Products

Field Type Notes
productid int
applocationid int
productlocationid int
tenantid int
categoryid int
categoryname string
subcategoryid int
Subcategoryname string
catalogueid int
addonid int
discountid int
discountvalue float64
pricingid int
productname string
productimage string
productdesc string
productsku string
brandid int
productbrand string
productunit string
unitvalue string
toppicks string
productcost float64
taxamount float64
taxpercent float64
producttax int
productstock int
productcombo int
variants int
quantity int
retailprice float64
diffprice float64
diffpercent float64
othercost float64
approve int
productstatus string

Productlocations

Field Type Notes
productlocationid int
tenantid int
locationid int
productid int
catlougeid int
minquantity int (0)
maxquantity int (0)
price float32 (0.0)
quantity int (read-only)
stocktype string (read-only)
status string

Productstock

Field Type Notes
productstockid int
tenantid int
stockdate time.Time
locationid int
productid int
quantity int
stocktype string
status string

Productvariant

Field Type Notes
variantid int
tenantid int
variantname string
categoryid int (0)
categoryname string
subcategoryid int
status string (active)

Tenantlocations

Field Type Notes
locationid int
tenantid int
applocationid int
moduleid int
roleid int
locationname string
email string
contactno string
latitude string
longitude string
address string
suburb string
city string
state string
postcode string
opentime string
closetime string
partnerid int
deliveryradius int
deliverymins int
cancelsecs int
status string

Tenants

Field Type Notes
tenantid int
tenantname string
configid int
partnerid int
moduleid int
tenanttype string
registrationno string
tenanttoken string
companyname string
devicetype string
deviceid string
firstname string
primaryemail string
primarycontact string
categoryid int
subcategoryid int
address/suburb/city/state/postcode string
latitude/longitude string
tenantimage string
tenantinfo string
paymode1 int
paymode2 int
promotion int
minorder int
applocationid int
approved *int
status string
partneruserid int
tenantlocations Tenantlocations

CreateTenantCustomerRequest

Field Type Notes
moduleid int
tenantid int
locationid int
customerid int
customerlocationid int
status int

Customers

Field Type Notes
customerid int
firstname string
lastname string
profileimage string
gender string
dob string
dialcode string
contactno string
email string
deviceid string
devicetype string
authmode int
configid int
customertoken string
address/suburb/city/state/landmark/doorno/postcode string
latitude/longitude string
applocationid int
status int
intro string

Customerlocations

Field Type Notes
locationid int
customerid int
applocationid int
address/suburb/city/state/landmark/doorno/postcode string
latitude/longitude string
primaryaddress int
status int

CustomerRequest

Field Type Notes
customerrequestid int
referencedate time.Time
referencetype string
customerid int
tenantid int
apptypeid int
locationid int
subject string
remarks string
status int

Notes: notifyuser / notifyadmin (POST utils) exist in code but are commented out. getriderlogs reads todate from the fromdate query param (controller bug).