Orders commands
Reference for the `revenexx orders` commands — every subcommand with a runnable example.
Auto-generated. This page is generated from the revenexx CLI by
tools/sync-cli-reference.mjs. Don't edit it by hand — your changes will be overwritten.
Every revenexx orders subcommand. The example shows the required arguments; the options table lists every flag the command accepts, with a ✓ marking required flags. Some flag names carry a -_ (e.g. --attribute-_values) — that is the exact token the CLI accepts, so copy them verbatim. Run revenexx orders <command> --help for the live options.
acknowledge
Bash
revenexx orders acknowledge \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--external-ref <external-ref> | The FULFILLING system's reference for this order, typically the ERP order number. Written once by POST /orders/{id}/acknowledge and null until an integration acknowledged it. Keeps the existing value when omitted. |
cancel
Bash
revenexx orders cancel \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--cancelled-by <cancelled-by> | Who cancelled, as the caller reported it — an operator, a desk, a system. Free text; this app does not resolve it against a user directory. | |
--reason <reason> | Why it was cancelled, free text. Mandatory when the tenant sets cancel_requires_reason — for those merchants an unexplained cancellation is refused with a 400. |
comments-create
Bash
revenexx orders comments-create \
--id '' \
--body Called the customer, delivery agreed for next week.
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--body <body> | The comment itself. Plain text; this app neither renders nor sanitizes it. | |
--author <author> | Who wrote it, as the caller reported it. Free text; not resolved against a user directory. | |
--visibility <visibility> | Who may see it: 'internal' is a note between operators, 'customer' is meant to be shown in the customer's order view. Nothing here enforces that — this app labels the comment and the client showing it decides. Defaults to the tenant's default_comment_visibility. Defaults to the tenant's default_comment_visibility setting, which is 'internal' out of the box. |
comments-list
Bash
revenexx orders comments-list \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--id-query <id-query> | Filter to rows whose \ | |
--body <body> | Filter to rows whose \ | |
--visibility <visibility> | Filter to internal notes or to the customer-visible ones. \ | |
--author <author> | Filter by exact author, as it was reported. Free text — this is not resolved against a user directory, so it matches only what was written. Who wrote it, as the caller reported it. Free text; not resolved against a user directory. | |
--created-at <created-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--limit <limit> | Page size (default 50, max 200). A larger value is clamped to 200 rather than refused. | |
--offset <offset> | Row offset for pagination (default 0). | |
--order <order> | Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending, the direction is lower case, and the column has to exist — the value reaches the data plane verbatim and anything else is a 400. | |
--filter <column=value> | Filter rows by column equality (repeatable). |
complete
Bash
revenexx orders complete \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--completed-by <completed-by> | Who closed the order, as the caller reports it. Not stored on the order: it is carried in the order.completed event's payload, which is where the audit trail keeps who did what. Free text, not resolved against a user directory. |
events-list
Bash
revenexx orders events-list \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--id-query <id-query> | Filter to rows whose \ | |
--name <name> | Filter the trail to one kind of event — \ | |
--actor <actor> | Filter to the events one principal caused. Only order.placed and order.requested carry an actor, so this filters to those two names by construction. Who caused it: the resolved contact id of the acting principal. Only order.placed and order.requested carry one today — every other row is null — so filtering on it filters to those two names. The database constrains nothing here (the column is text); the uuid shape is what this app WRITES, which is also why no example is published: no id an app invents names a row a tenant holds. | |
--created-at <created-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--limit <limit> | Page size (default 50, max 200). A larger value is clamped to 200 rather than refused. | |
--offset <offset> | Row offset for pagination (default 0). | |
--order <order> | Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending, the direction is lower case, and the column has to exist — the value reaches the data plane verbatim and anything else is a 400. | |
--filter <column=value> | Filter rows by column equality (repeatable). |
get
Bash
revenexx orders get \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. |
hold
Bash
revenexx orders hold \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--reason <reason> | Why the order is held, in the words the shipping guard quotes back. Null when it is not held — releasing a hold clears it. |
items-cancel
Bash
revenexx orders items-cancel \
--id '' \
--positions one two three
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--positions [positions...] | The quantities to take off the order. Required here, unlike on /ship and /return: cancelling everything by default is not a thing anybody should be able to do by omission — that is what /cancel is for. | |
--cancelled-by <cancelled-by> | Who cancelled, as the caller reported it — an operator, a desk, a system. Free text; this app does not resolve it against a user directory. | |
--reason <reason> | Why it was cancelled, free text. Mandatory when the tenant sets cancel_requires_reason — for those merchants an unexplained cancellation is refused with a 400. |
list
Bash
revenexx orders list
| Flag | Required | Description |
|---|---|---|
--id <id> | Filter to exactly one order. GET /orders/{id} is the direct form and answers the aggregate; this exists because the list honours it too. Primary key of the order, and the id every other route takes. Not the order number. | |
--number <number> | Look an order up by its NUMBER — the one filter a service desk starts from, and the way to turn the number a customer quotes into the uuid every other route wants. Exact match; there is no substring search on this API. The order number a human quotes — drawn from the tenant's order range at place-time, unique per tenant and never reused. It is NOT the id: every route addresses an order by uuid, and GET /orders?number=… is how a number becomes one. | |
--customer-order-number <customer-order-number> | Look an order up by the BUYER's own PO number. Not unique: the same buyer reference can legitimately sit on several orders. The BUYER's own reference — their purchase-order number. Free text, not unique, never generated here: it exists so the paperwork can carry the number the buyer's accounts payable will look for. One of the few fields PUT /orders/{id} may still change. | |
--external-ref <external-ref> | Find the order behind a reference in the fulfilling system — the ERP order number. Exact match, and null on everything not yet acknowledged. The FULFILLING system's reference for this order, typically the ERP order number. Written once by POST /orders/{id}/acknowledge and null until an integration acknowledged it. | |
--acknowledged-at <acknowledged-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--cart-id <cart-id> | Find the order a given cart became. The reverse of the carts hand-over, and how a storefront checks whether a checkout already went through. The cart this order was placed from, when a storefront handed one over. A reference across an app boundary (the carts app), not a foreign key — nothing here checks that it resolves. Null for an order an integration or an operator created. | |
--contact-id <contact-id> | Filter to one person's orders — their order history. The PERSON who ordered — a contact in the customers app. Resolved from the acting principal whenever the caller carries one, and a body value that disagrees is refused rather than silently overridden. Null for a guest checkout. | |
--organization-id <organization-id> | Filter to one company's orders, across everyone who ordered for it. The B2B view, and the same attribution orders.reports.customer-rollup aggregates by. The COMPANY the order is booked on — an organization in the customers app, and the B2B half of who ordered. This is what orders.reports.customer-rollup aggregates by and what makes an order visible to a buyer's colleagues. Null on a private or guest order, which the rollup counts separately because it cannot attribute it. | |
--channel-id <channel-id> | Filter to rows whose \ | |
--currency <currency> | Filter by ISO 4217 code. Worth remembering before summing \ | |
--status <status> | Filter by lifecycle status. \ | |
--payment-status <payment-status> | Filter by the payment dimension, independently of the lifecycle: \ | |
--fulfillment-status <fulfillment-status> | Filter by the derived shipping dimension. \ | |
--on-hold [value] | Filter to the held orders — the list somebody has to work through before anything of theirs can ship. A business stop, ORTHOGONAL to status: a held order keeps its lifecycle state and is refused at the guards. How far the hold reaches is the tenant's call (on_hold_blocks: shipping only, shipping and cancellation, or nothing at all). | |
--hold-reason <hold-reason> | Filter to rows whose \ | |
--item-count <item-count> | Filter to rows whose \ | |
--subtotal <subtotal> | Filter to rows whose \ | |
--shipping-total <shipping-total> | Filter to rows whose \ | |
--tax-total <tax-total> | Filter to rows whose \ | |
--grand-total <grand-total> | Filter to rows whose \ | |
--placed-at <placed-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--completed-at <completed-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--cancelled-at <cancelled-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--created-at <created-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--updated-at <updated-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--limit <limit> | Page size (default 50, max 200). A larger value is clamped to 200 rather than refused. | |
--offset <offset> | Row offset for pagination (default 0). | |
--order <order> | Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending, the direction is lower case, and the column has to exist — the value reaches the data plane verbatim and anything else is a 400. | |
--filter <column=value> | Filter rows by column equality (repeatable). |
number-ranges-create
Bash
revenexx orders number-ranges-create \
--code order
| Flag | Required | Description |
|---|---|---|
--code <code> | Which counter this is, in the app's own words: 'order' numbers orders, 'delivery' numbers delivery notes, 'return' numbers returns. Unique per tenant, and the value the order_number_range_code / delivery_number_range_code / return_number_range_code settings point at — a setting naming a code no range carries is the 422 'number_range_missing'. | |
--channel-id <channel-id> | The sales channel this range was created for, as a label. It does NOT select the range: a draw finds the range by \ | |
--counter <counter> | The last number DRAWN — state, not configuration. The next draw is counter + step and writes the new value back, so moving this forward skips numbers and moving it back re-issues them (and the unique index then answers 409). Defaults to 0, so the first number drawn is step. | |
--metadata <metadata> | Free-form data for the caller. This app stores it and returns it, and reads nothing out of it. | |
--padding <padding> | How wide the counter is written, zero-padded: 6 makes 123 into 000123. 0 writes the bare number. Widening it later does not renumber what was already drawn. Defaults to 6. | |
--position-step <position-step> | The gap between the position numbers of a new order: 10 numbers the lines 10, 20, 30 — room to slot a line in between later without renumbering the rest. Read from the ORDER range only. Defaults to 10. | |
--prefix <prefix> | Literal text in front of the counter: 'ORD-' turns counter 123 into ORD-000123. Empty by default. Defaults to ''. | |
--step <step> | How far the counter moves per draw. 1 is consecutive numbering; a larger step is what a merchant chooses who does not want their order volume readable off an invoice. Defaults to 1. | |
--suffix <suffix> | Literal text after the counter — a market or year marker on merchants who number that way. Empty by default, which is what most of them use. Defaults to ''. |
number-ranges-defaults
Bash
revenexx orders number-ranges-defaults
number-ranges-delete
Bash
revenexx orders number-ranges-delete \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The number range id (uuid). |
number-ranges-get
Bash
revenexx orders number-ranges-get \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The number range id (uuid). |
number-ranges-list
Bash
revenexx orders number-ranges-list
| Flag | Required | Description |
|---|---|---|
--id <id> | Filter to rows whose \ | |
--code <code> | Look a range up by its code — 'order', 'delivery', 'return', or whatever a settings key points at. Which counter this is, in the app's own words: 'order' numbers orders, 'delivery' numbers delivery notes, 'return' numbers returns. Unique per tenant, and the value the order_number_range_code / delivery_number_range_code / return_number_range_code settings point at — a setting naming a code no range carries is the 422 'number_range_missing'. | |
--prefix <prefix> | Filter to rows whose \ | |
--suffix <suffix> | Filter to rows whose \ | |
--padding <padding> | Filter to rows whose \ | |
--counter <counter> | Filter to rows whose \ | |
--step <step> | Filter to rows whose \ | |
--position-step <position-step> | Filter to rows whose \ | |
--channel-id <channel-id> | Filter to rows whose \ | |
--created-at <created-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--updated-at <updated-at> | Exact timestamp equality — this API has no range filter. To bound a period, sort with \ | |
--limit <limit> | Page size (default 50, max 200). A larger value is clamped to 200 rather than refused. | |
--offset <offset> | Row offset for pagination (default 0). | |
--order <order> | Sort by one column: 'column' | 'column.asc' | 'column.desc'. A bare column sorts ascending, the direction is lower case, and the column has to exist — the value reaches the data plane verbatim and anything else is a 400. | |
--filter <column=value> | Filter rows by column equality (repeatable). |
number-ranges-update
Bash
revenexx orders number-ranges-update \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The number range id (uuid). | |
--channel-id <channel-id> | The sales channel this range was created for, as a label. It does NOT select the range: a draw finds the range by \ | |
--code <code> | Which counter this is, in the app's own words: 'order' numbers orders, 'delivery' numbers delivery notes, 'return' numbers returns. Unique per tenant, and the value the order_number_range_code / delivery_number_range_code / return_number_range_code settings point at — a setting naming a code no range carries is the 422 'number_range_missing'. | |
--counter <counter> | The last number DRAWN — state, not configuration. The next draw is counter + step and writes the new value back, so moving this forward skips numbers and moving it back re-issues them (and the unique index then answers 409). Defaults to 0, so the first number drawn is step. | |
--metadata <metadata> | Free-form data for the caller. This app stores it and returns it, and reads nothing out of it. | |
--padding <padding> | How wide the counter is written, zero-padded: 6 makes 123 into 000123. 0 writes the bare number. Widening it later does not renumber what was already drawn. Defaults to 6. | |
--position-step <position-step> | The gap between the position numbers of a new order: 10 numbers the lines 10, 20, 30 — room to slot a line in between later without renumbering the rest. Read from the ORDER range only. Defaults to 10. | |
--prefix <prefix> | Literal text in front of the counter: 'ORD-' turns counter 123 into ORD-000123. Empty by default. Defaults to ''. | |
--step <step> | How far the counter moves per draw. 1 is consecutive numbering; a larger step is what a merchant chooses who does not want their order volume readable off an invoice. Defaults to 1. | |
--suffix <suffix> | Literal text after the counter — a market or year marker on merchants who number that way. Empty by default, which is what most of them use. Defaults to ''. |
payment-status-update
Bash
revenexx orders payment-status-update \
--id '' \
--status open
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--status <status> | The new value of the payment dimension. Whether the order is PAID, and the dimension this app does not decide: it is fed from outside through POST /orders/{id}/payment-status (the payments app or an ERP), and only seeded at place-time from payment.status. Orthogonal to the lifecycle — a completed order can still be open, and a paid one can still be pending. | |
--payment-id <payment-id> | The reference into the payment system. MERGED into the order's payment snapshot under 'payment_id' — the rest of the snapshot is left alone — and carried in the order.payment_status.changed event. Omitted leaves the snapshot untouched. |
place
Bash
revenexx orders place \
--items one two three
| Flag | Required | Description |
|---|---|---|
--items [items...] | The order positions — at least one, and at most the tenant's max_items_per_order (500 out of the box; a longer list is a 400 naming the limit). | |
--billing-address <billing-address> | The invoice address, FROZEN at place-time. Changing the customer's address afterwards does not change what this order was billed to. | |
--buyer <buyer> | The ordering party as it was at place-time, FROZEN: a copy, not a reference, so the order still reads correctly after the customer record is renamed, merged or deleted. The caller decides what goes in; this app stores it and reads nothing out of it. | |
--cart-id <cart-id> | The cart this order was placed from, when a storefront handed one over. A reference across an app boundary (the carts app), not a foreign key — nothing here checks that it resolves. Null for an order an integration or an operator created. The carts.order hand-over sets it. | |
--channel-id <channel-id> | The sales channel the order arrived through — webshop, app, phone desk, EDI. Null when the caller named none. | |
--contact-id <contact-id> | The PERSON who ordered — a contact in the customers app. Resolved from the acting principal whenever the caller carries one, and a body value that disagrees is refused rather than silently overridden. Null for a guest checkout. Ignored when the caller carries a principal — the RESOLVED contact wins, and a body value that disagrees is a 400 rather than a silent override. | |
--currency <currency> | ISO 4217 code of EVERY amount on this order. Frozen at place-time from the market's default_currency unless the caller named one. Nothing on this order is ever converted, and the approval threshold is read in this currency — which is why the threshold is a per-market setting. Defaults to the market's default_currency setting. | |
--customer-order-number <customer-order-number> | The BUYER's own reference — their purchase-order number. Free text, not unique, never generated here: it exists so the paperwork can carry the number the buyer's accounts payable will look for. One of the few fields PUT /orders/{id} may still change. | |
--grand-total <grand-total> | Optional, and CHECKED rather than used: the order always computes its own total from the positions, the shipping cost and the tax. Send it as a checksum on that arithmetic — if it agrees the order is placed, and if it disagrees the call is refused with 400 naming both numbers, yours and the computed one. The comparison is at 2 decimal places (this app stores 4, ERPs work to 2, so a difference below a cent is agreement). It is never taken as the order value: the approval threshold and the revenue rollup read the computed number, which is why a total that disagrees is an error rather than an override. | |
--metadata <metadata> | Free-form data belonging to the INTEGRATION side — an ERP's own bookkeeping about this order. Stored and returned untouched; nothing here reads it. | |
--organization-id <organization-id> | The COMPANY the order is booked on — an organization in the customers app, and the B2B half of who ordered. This is what orders.reports.customer-rollup aggregates by and what makes an order visible to a buyer's colleagues. Null on a private or guest order, which the rollup counts separately because it cannot attribute it. A principal's own organization wins over this when it has one. | |
--payment <payment> | The payment arrangement as it was chosen, FROZEN. This app reads exactly two keys and stores the rest untouched: 'status' seeds payment_status at place-time when it names one of the permitted values (anything else is ignored and the order starts 'open'), and 'payment_id' is merged in by POST /orders/{id}/payment-status. The method itself, its provider fields and any redirect state belong to the payments app. | |
--shipping <shipping> | The shipping arrangement as it was chosen, FROZEN. Two keys are READ at place-time and feed the totals: 'price' becomes shipping_total (the shipping_total field is only the fallback when this is absent) and 'tax_rate' is what shipping is taxed at, because shipping is a Nebenleistung and is taxed too. Everything else — the carrier product, the delivery window, the pickup point — is stored untouched and belongs to the shipping app. | |
--shipping-address <shipping-address> | The delivery address, FROZEN at place-time — what goes on the label of every shipment of this order. Null on an order that is never delivered (a service, a digital item, a collection). | |
--shipping-total <shipping-total> | NET shipping cost, taken from shipping.price or, when the snapshot carries no price, from the request's shipping_total. In \ | |
--user-data <user-data> | Free-form data belonging to the ORDERING side — carried through from the storefront or the cart and handed back untouched. One of the few fields PUT /orders/{id} may still change. |
reports-customer-rollup
Bash
revenexx orders reports-customer-rollup
| Flag | Required | Description |
|---|---|---|
--as-of <as-of> | Anchor for the rolling windows (default now). Pin it and send it back on every call of a loop, otherwise the windows drift by the duration of the loop. | |
--cursor <cursor> | Continue an unfinished scan: the exact value the previous call returned, which is the id of the last order it read. Do not construct one — it is a resume point, not an offset. Omit it on the first call. It is honoured in BOTH call shapes, organization_ids included: send the whole batch again alongside it whenever \ | |
--organization-ids [organization-ids...] | Roll up exactly these organizations and no others — at most 200, because the ids travel to the data plane as one in.() filter. Naming them does NOT make the answer complete by itself: the scan is the same paged, time-budgeted loop either way, so a batch with more orders than one page can still stop early with \ | |
--statuses [statuses...] | Which lifecycle statuses count as revenue. Defaults to placed, in_fulfillment and completed: a pending order was never placed, and a cancelled one is not revenue. Widening this is how a merchant who books on approval gets their own definition of the same numbers. |
return
Bash
revenexx orders return \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--metadata <metadata> | Free-form data for the caller — the returns portal's own reference. Stored and returned untouched. | |
--positions [positions...] | What is coming back. Omitted = every position with a returnable (shipped, not yet returned) quantity, in full. | |
--reason <reason> | Why the goods are coming back, free text as the customer or the desk stated it. Also what /reject stores when it is given no resolution out of the published set. | |
--restock [value] | The default restock flag for positions that carry none of their own — and the only way to say "put it all back into stock" when the positions are defaulted. It does not restock anything itself: it decides what the completion REPORTS for the orchestrator's inventories.restock call. |
returns-complete
Bash
revenexx orders returns-complete \
--id '' \
--rid ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--rid <rid> | The return id (uuid). It must belong to the order in {id} — a return of another order is a 404, not a cross-order write. | |
--resolution <resolution> | How the return was settled. Omitted = settled without recording how. |
returns-receive
Bash
revenexx orders returns-receive \
--id '' \
--rid '' \
--data '{ "key": "value" }'
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--rid <rid> | The return id (uuid). It must belong to the order in {id} — a return of another order is a 404, not a cross-order write. | |
--data <data> | Request body |
returns-reject
Bash
revenexx orders returns-reject \
--id '' \
--rid ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--rid <rid> | The return id (uuid). It must belong to the order in {id} — a return of another order is a 404, not a cross-order write. | |
--reason <reason> | Free-text fallback for 'resolution' — a sentence about this one return, not a value out of the set. | |
--resolution <resolution> | Why the return was refused. |
ship
Bash
revenexx orders ship \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--carrier <carrier> | Who is carrying it, in the merchant's own words. Free text — this app neither validates it nor knows the carrier's API. | |
--metadata <metadata> | Free-form data for the caller — the warehouse system's own reference for this handover. Stored and returned untouched. | |
--number <number> | The DELIVERY NOTE number — drawn from the tenant's delivery range, unique per tenant, and a different series from the order number. A caller may supply its own when the number is issued by the warehouse system instead. Drawn from the 'delivery' range when omitted; supply one only when the number is issued elsewhere. | |
--positions [positions...] | What this shipment carries. Omitted = every position with an open quantity, in full. GET /orders/{id}/shippable answers exactly the budget each one is guarded against. | |
--shipped-at <shipped-at> | When the goods actually left. Defaults to now, and a caller may backdate it — a shipment booked on Monday for a Friday handover says Friday. | |
--tracking-code <tracking-code> | The consignment number the carrier issued. Free text: every carrier formats it differently and this app stores whatever it is given. | |
--tracking-url <tracking-url> | Where a human can follow the parcel. Supplied by the caller — this app does not build it, because only the caller knows the carrier's tracking address. |
shippable
Bash
revenexx orders shippable \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. |
unhold
Bash
revenexx orders unhold \
--id '' \
--data '{ "key": "value" }'
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--data <data> | Request body |
update
Bash
revenexx orders update \
--id ''
| Flag | Required | Description |
|---|---|---|
--id <id> | The order id (uuid). This segment reaches a uuid column: an order NUMBER is not accepted here — filter GET /orders by ?number= to resolve one. | |
--billing-address <billing-address> | The invoice address, FROZEN at place-time. Changing the customer's address afterwards does not change what this order was billed to. Replaced wholesale — send the whole address, not a patch of it. | |
--buyer <buyer> | The ordering party as it was at place-time, FROZEN: a copy, not a reference, so the order still reads correctly after the customer record is renamed, merged or deleted. The caller decides what goes in; this app stores it and reads nothing out of it. Replaced wholesale — send the whole snapshot, not a patch of it. | |
--customer-order-number <customer-order-number> | The BUYER's own reference — their purchase-order number. Free text, not unique, never generated here: it exists so the paperwork can carry the number the buyer's accounts payable will look for. One of the few fields PUT /orders/{id} may still change. | |
--metadata <metadata> | Free-form data belonging to the INTEGRATION side — an ERP's own bookkeeping about this order. Stored and returned untouched; nothing here reads it. Replaced wholesale. | |
--shipping-address <shipping-address> | The delivery address, FROZEN at place-time — what goes on the label of every shipment of this order. Null on an order that is never delivered (a service, a digital item, a collection). Replaced wholesale. This is the one correction that actually matters after placement: the label of every shipment still to go out is printed from it. | |
--user-data <user-data> | Free-form data belonging to the ORDERING side — carried through from the storefront or the cart and handed back untouched. One of the few fields PUT /orders/{id} may still change. Replaced wholesale. |
vocabularies-get
Bash
revenexx orders vocabularies-get \
--name cancellation-scopes
| Flag | Required | Description |
|---|---|---|
--name <name> | The vocabulary name — the part after the dot in the qualified id. |
vocabularies-list
Bash
revenexx orders vocabularies-list
| Flag | Required | Description |
|---|---|---|
--filter <column=value> | Filter rows by column equality (repeatable). |