adminGetShopOrder
#Get a single shop order by ID (admin).
Arguments
- id!
Catalog, products, vendors, categories, merchant operations, and inventory.
Get a single shop order by ID (admin).
Arguments
List shop orders with filters, sorting, and pagination (admin).
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
[]Get inventory adjustment history for an inventory record.
Arguments
Get inventory for a specific product (and optionally a variant).
Arguments
Get all inventory records for a shop.
Arguments
Get inventory summary counts for a shop.
Arguments
List product categories for admin with filtering, sorting, and pagination.
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
{
"shopId": null,
"isEnabled": null,
"search": null
}Default
[]List products for admin with filtering, sorting, and pagination.
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
{
"shopId": null,
"categoryIds": [],
"status": null,
"search": null
}Default
[]List shop categories with admin filters, sorting, and pagination. # Authorization Requires TenantAdmin or PlatformAdmin role.
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
[]List shops with admin filters, sorting, and pagination. # Authorization Requires TenantAdmin or PlatformAdmin role.
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
[]Get the current user's cart. Creates a new cart if one doesn't exist. Includes delivery fee preview and per-method delivery options when a delivery address with coordinates is set.
Get cart item count (for nav badge).
Get featured products (discounted or high display priority). Optionally filtered by category.
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Get the current user's merchant profile.
Get a single shop order by ID for the authenticated customer. Returns None if the order doesn't exist or doesn't belong to the customer.
Arguments
Get all shop orders for the current customer.
Arguments
Get shops owned by the current merchant.
Arguments
Get a product by ID.
Arguments
Get all availability schedule entries for a product.
Arguments
Discover products within a shop with optional search, category, and tag filters.
Replaces browseProducts, searchProducts, and productsByTags with a single query.
**Filter priority:**
1. If query is set → full-text search on name/description/tags
2. Else if tags is set → filter products matching any tag
3. Else if category_id is set → filter by product category
4. Else → all active products in the shop
Arguments
Get product variants for a product.
Arguments
Semantic product search. Embeds the free-text query, then ranks
products by cosine similarity against their stored
description_embedding. Requires the tenant to have
semantic_search_enabled turned on under Settings → AI Features
and at least one configured embedding-capable AI provider with
remaining monthly budget.
Arguments
Get a shop by ID.
Arguments
Get a shop by slug.
Arguments
Get all shop categories. Returns enabled categories sorted by display order.
Get all shop categories with their subcategories.
Get a shop category by ID.
Arguments
Get a shop category by slug.
Arguments
List delivery zones for a specific shop (admin).
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
[]Get orders for a specific shop owned by the current merchant. Supports filters, sorting, and pagination.
Arguments
Default
{
"limit": 10,
"page": 1,
"after": null
}Default
[]Get aggregate statistics for shop orders. Filters by currency (required) and an optional date range. Statistics are computed across all shops for the current tenant.
Arguments
Discover shops with optional search, location, category, and open-status filters.
Replaces browseShops, nearbyShops, and searchShops with a single unified query.
**Filter priority:**
1. If query is set → full-text search on name/description
2. Else if location is set → proximity search sorted by distance
3. Else if category_id is set → filter by category
4. Else if subcategory_id is set → filter by subcategory
5. Else → all enabled shops
currently_open_only is always applied as a post-filter if set.
Arguments
Default
{
"query": null,
"location": null,
"categoryId": null,
"subcategoryId": null,
"currentlyOpenOnly": null,
"limit": 10,
"page": 1,
"after": null,
"sorting": []
}Service health check query.
Get subcategories for a category.
Arguments
Accept an incoming shop order.
Arguments
Add an item to the cart.
Arguments
Add stock to an inventory record.
Arguments
Create an inventory record for a product (or product variant).
Arguments
Create a shop order on behalf of a customer (call-center dispatcher path).
# Authorization
Requires TenantAdmin or PlatformAdmin role.
# Behaviour
- Validates the shop is enabled and belongs to the calling tenant.
- Loads each product to lock in its current price (no cart/quote round-trip).
- Computes pricing: subtotal = sum of unit_price × quantity,
delivery_fee = shop.delivery_fee_minor when delivering (else 0),
total = subtotal + delivery_fee. Tax and service fees are zero in
the dispatcher path; they remain a server-driven concern for
customer-placed orders that go through the cart flow.
- Generates a fresh parent order_id UUID — shop orders persist
independently of the order-domain Order row, matching the
existing schema (no FK enforcement).
- Persists with status: New, prep_status: Pending so it appears
on the merchant's incoming-orders queue exactly like a normal order.
Arguments
Soft-delete a product by setting its status to discontinued.
Arguments
Remove stock from an inventory record.
Arguments
Set the absolute stock quantity for an inventory record.
Arguments
Update discount settings for a product. Set discount_percentage to null to remove the discount entirely.
Arguments
Update a shop's status as an admin.
# Authorization
Requires TenantAdmin or PlatformAdmin role.
# Validation
The new status must be a permitted transition from the current
status. Allowed transitions:
- PendingApproval → Enabled (alias: approve via approveMerchant)
- PendingApproval → Blocked
- Enabled → Disabled | Blocked
- Disabled → Enabled | Archived
- Blocked → Enabled | Archived
Archived is terminal. Any other transition returns an error.
Arguments
Apply a promo code to the cart.
Arguments
Approve a merchant (admin only). Sets merchant status to Approved and marks as verified.
Arguments
Checkout the current cart: validates shops, locks prices, and returns a quote ID.
The returned quoteId should be passed to createOrder(quoteId, kind: SHOP, ...).
The quote expires after 5 minutes — call again if expired.
Arguments
Clear all items from the cart.
Create a delivery zone on a shop owned by the calling merchant.
Arguments
Create a new product.
Arguments
Create a new product availability schedule entry.
Arguments
Create a new product category.
Arguments
Create a new product option within a group.
Arguments
Create a new shop.
Arguments
Create a new shop category. # Authorization Requires TenantAdmin or PlatformAdmin role.
Arguments
Create a new delivery zone for a shop.
Arguments
Delete a delivery zone — caller must own the shop it belongs to.
Arguments
Delete a product availability schedule entry.
Arguments
Delete a product category.
Arguments
Delete a product option.
Arguments
Delete a shop category by ID. # Authorization Requires TenantAdmin or PlatformAdmin role.
Arguments
Delete a delivery zone.
Arguments
Compute embeddings for every still-NULL product under this tenant
(or one shop, when shop_id is provided). Tenant-admin only.
Bounded internally; the admin re-runs until moreRemaining is
false. Plan gate (Pro+) is enforced inside the EmbeddingPort
dispatcher.
Arguments
Compute and store the embedding for one product. Tenant-admin
only. Requires the tenant to have semantic_search_enabled
turned on under Settings → AI Features and at least one
configured embedding-capable AI provider with remaining monthly
budget. Plan gate (Pro+) is enforced inside the EmbeddingPort
dispatcher.
Arguments
Generate a draft product suggestion from a single product photo.
Tenant-admin only. Requires the tenant to have
product_description_gen_enabled turned on under
Settings → AI Features and at least one configured AI provider
with remaining monthly budget.
Arguments
Mark an order as delivered.
Arguments
Mark an order as picked up.
Arguments
Mark an order as ready for pickup/delivery.
Arguments
Register as a merchant.
Arguments
Reject an incoming shop order.
Arguments
Remove an item from the cart.
Arguments
Remove a promo code from the cart.
Arguments
Reorder options within a group.
Arguments
Set the delivery address for the cart. Only requires the saved location ID — coordinates are resolved server-side from the identity service.
Arguments
Set the delivery mode for the cart.
Arguments
Replace the set of categories associated with a merchant's shop. Validates that all category IDs belong to the same tenant and are enabled before making any changes. Diffs current vs requested and issues only the needed add/remove calls.
Arguments
Atomically replace the full set of delivery zones on a shop.
Used by the onboarding form which collects all zones together —
one transactional call avoids the partial-failure / duplicate-
zone states the per-zone create_delivery_zone path produced on
retry.
Arguments
Set operating hours for a shop (bulk replace all days).
Arguments
Service health check mutation.
Start preparing an order.
Arguments
Toggle product availability.
Arguments
Toggle a product option's enabled state.
Arguments
Toggle shop open/closed state.
Arguments
Update item quantity in cart.
Arguments
Update a delivery zone — caller must own the shop the zone lives on.
Arguments
Update merchant profile.
Arguments
Update an existing product.
Arguments
Update an existing product availability schedule entry.
Arguments
Update an existing product category.
Arguments
Update an existing product option.
Arguments
Update product status (draft, active, discontinued).
Arguments
Update an existing shop.
Arguments
Update an existing shop category. # Authorization Requires TenantAdmin or PlatformAdmin role.
Arguments
Update an existing delivery zone.
Arguments
Subscribe to shop customer events (Shop service)
Receive real-time events relevant to shop customers:
- Order confirmations
- Shipment tracking updates
- Delivery notifications
- Notifications
**Requirements:**
- Must be authenticated
- Must have Customer role
- Must be using Shop app
Subscribe to vendor events (Shop service)
Receive real-time events relevant to shop vendors:
- New order notifications
- Inventory alerts
- Payment received notifications
- Notifications
**Requirements:**
- Must be authenticated
- Must have Vendor role
- Must be using Shop app
BetterSuite is built for teams who see on-demand as a business — not a feature.