> For the complete documentation index, see [llms.txt](https://agpt.co/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://agpt.co/docs/integrations/block-integrations/carts.md).

# Rmfg Carts

Blocks that build and update an RMFG cart. A cart is a quoted basket with a website link a person can pay from; setting an address and shipping option completes its totals, after which Pay Cart can charge the saved card. Creating a cart does not place an order.

## RMFG Create Cart

### What it is

Creates an RMFG cart with a website checkout link for one or more configured designs, priced live with shipping and tax once an address is set. A cart is not an order; the person pays on the link or Pay Cart charges the saved card after approval

### How it works

Posts the same basket shape as Create Quote to `/v1/carts`, optionally with `ship_to` and a `shipping_option_id`, under an `Idempotency-Key`; `quantity` and `quantity_options` are validated as for quotes. RMFG quotes the cart immediately and returns `cart_url`, an unguessable checkout link, plus `totals` with subtotal, shipping and tax (once the address is known) and the amount that will be charged. `is_payable` is true only when the cart is open, its quote is `ready`, and both address and shipping option are set.

A `shipping_option_id` that does not belong to the given address is rejected by RMFG and surfaced as `RMFG <code>: <message>`; a missing material shows up as `quote_status` `requires_input` with `requirements` rather than as an error. `order_id` is emitted only after the cart has been paid. The cart URL grants access to anyone holding it, so treat it as a secret.

### Inputs

| Input                 | Description                                                                                                                                                                                                                                              | Type                       | Required |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | -------- |
| design\_id            | Design ID from Analyze Design.                                                                                                                                                                                                                           | str                        | Yes      |
| quantity              | Completed units of the design: exactly the number the customer asked for (one part means 1). Repeated parts in an assembly are multiplied by their instance count automatically.                                                                         | int                        | No       |
| material\_id          | Sheet-metal stock for every sheet part, from List Materials. Required for a price: pick the stocked thickness closest to the part's detected thickness and mention the difference. Leave empty only for tube-only designs or when configuration sets it. | str                        | No       |
| configuration         | Full manufacturing configuration: per-part material, tube profile, finish, powder coat, hole operations, welds and accepted risks. A non-empty material\_id above overrides defaults.material\_id.                                                       | ManufacturingConfiguration | No       |
| quantity\_options     | Up to ten other quantities to price alongside quantity, only when the customer wants a comparison; the main quantity stays as requested.                                                                                                                 | List\[int]                 | No       |
| additional\_items     | Further configured designs to price in the same basket.                                                                                                                                                                                                  | List\[QuoteItemRequest]    | No       |
| client\_reference\_id | Your own reference for this item, echoed back on the result.                                                                                                                                                                                             | str                        | No       |
| ship\_to              | Delivery address. Needed for shipping options, tax and API payment.                                                                                                                                                                                      | ShipTo                     | No       |
| shipping\_option\_id  | A shipping\_options\[].id from a quote or cart with the same address. Can be chosen later with Update Cart.                                                                                                                                              | str                        | No       |
| idempotency\_key      | Stable key for identical retries; defaults to the node execution ID.                                                                                                                                                                                     | str                        | No       |

### Outputs

| Output                  | Description                                                                      | Type                                                                               |
| ----------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| error                   | Error message if the request failed                                              | str                                                                                |
| cart                    | The full cart, including its latest quote                                        | Cart                                                                               |
| cart\_id                | Cart ID                                                                          | str                                                                                |
| cart\_url               | Website checkout link; anyone holding it can pay, keep it private                | str                                                                                |
| status                  | open, checked\_out or expired                                                    | "open" \| "checked\_out" \| "expired"                                              |
| quote\_status           | Status of the cart's latest quote; only ready carts can be paid                  | "processing" \| "requires\_input" \| "ready" \| "blocked" \| "expired" \| "failed" |
| is\_payable             | True when the cart is open, quoted ready, and has an address and shipping option | bool                                                                               |
| totals                  | Subtotal, shipping, tax and total                                                | CartTotals                                                                         |
| amount\_total\_cents    | What checkout will charge, in USD cents                                          | int                                                                                |
| shipping\_options       | Delivery choices once ship\_to is set; pass an id to Update Cart                 | List\[ShippingOption]                                                              |
| requirements            | Selections or decisions still needed before ordering                             | List\[Requirement]                                                                 |
| manufacturing\_warnings | Advisories from automatic file preparation; they do not block ordering           | List\[ManufacturingReviewWarning]                                                  |
| order\_id               | Order ID; only emitted once the cart has been paid                               | str                                                                                |

### Possible use case

**Website Checkout Hand-Off**: Create a cart with the customer's address and send them `cart_url` to pick delivery, sign in and pay.

**Agent Ordering Prep**: Build a cart with address and shipping option so Pay Cart can charge the saved card after approval.

**Tax-Inclusive Total**: Show a customer the final total including shipping and tax before they commit.

***

## RMFG Get Cart

### What it is

Fetches an RMFG cart and its latest quote by ID

### How it works

Fetches `/v1/carts/{id}`, including re-quoted totals, the current `status` (`open`, `checked_out` or `expired`) and the `order_id` once paid. Use it after a person edits the cart on the website, or to check the outcome of a payment that returned `processing`.

An unknown ID is reported as `RMFG not_found_error: <message>`. `order_id` is only emitted for a paid cart, so a graph can branch on its presence, and `is_payable` is recomputed on every read.

### Inputs

| Input    | Description              | Type | Required |
| -------- | ------------------------ | ---- | -------- |
| cart\_id | Cart ID from Create Cart | str  | Yes      |

### Outputs

| Output                  | Description                                                                      | Type                                                                               |
| ----------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| error                   | Error message if the request failed                                              | str                                                                                |
| cart                    | The full cart, including its latest quote                                        | Cart                                                                               |
| cart\_id                | Cart ID                                                                          | str                                                                                |
| cart\_url               | Website checkout link; anyone holding it can pay, keep it private                | str                                                                                |
| status                  | open, checked\_out or expired                                                    | "open" \| "checked\_out" \| "expired"                                              |
| quote\_status           | Status of the cart's latest quote; only ready carts can be paid                  | "processing" \| "requires\_input" \| "ready" \| "blocked" \| "expired" \| "failed" |
| is\_payable             | True when the cart is open, quoted ready, and has an address and shipping option | bool                                                                               |
| totals                  | Subtotal, shipping, tax and total                                                | CartTotals                                                                         |
| amount\_total\_cents    | What checkout will charge, in USD cents                                          | int                                                                                |
| shipping\_options       | Delivery choices once ship\_to is set; pass an id to Update Cart                 | List\[ShippingOption]                                                              |
| requirements            | Selections or decisions still needed before ordering                             | List\[Requirement]                                                                 |
| manufacturing\_warnings | Advisories from automatic file preparation; they do not block ordering           | List\[ManufacturingReviewWarning]                                                  |
| order\_id               | Order ID; only emitted once the cart has been paid                               | str                                                                                |

### Possible use case

**Payment Settlement**: Poll a cart after a `processing` payment until it is `checked_out`, then pass `order_id` to Get Order.

**Customer Edits**: Re-read a cart the customer changed on rmfg.com before quoting the final total back to them.

**Expiry Guard**: Check a cart is still `open` before asking for approval to pay it.

***

## RMFG Update Cart

### What it is

Updates an open RMFG cart's address, shipping option or items

### How it works

Patches `/v1/carts/{id}` with whichever of `ship_to`, `shipping_option_id` or `items` you set; omitted fields keep their current values, and an empty `items` list keeps the current basket rather than emptying it. The cart re-quotes on every change, so read the returned totals and `quote_status` before paying.

The block refuses to run with nothing to change (`Nothing to update: set ship_to, shipping_option_id or items`). RMFG rejects updates to a `checked_out` or `expired` cart and shipping options that do not match the address; both are surfaced as `RMFG <code>: <message>`.

### Inputs

| Input                | Description                                                          | Type                    | Required |
| -------------------- | -------------------------------------------------------------------- | ----------------------- | -------- |
| cart\_id             | Cart ID from Create Cart                                             | str                     | Yes      |
| ship\_to             | New delivery address; leave empty to keep the current one.           | ShipTo                  | No       |
| shipping\_option\_id | A shipping\_options\[].id to select; empty keeps the current one.    | str                     | No       |
| items                | Replacement basket; empty keeps the current items.                   | List\[QuoteItemRequest] | No       |
| idempotency\_key     | Stable key for identical retries; defaults to the node execution ID. | str                     | No       |

### Outputs

| Output                  | Description                                                                      | Type                                                                               |
| ----------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| error                   | Error message if the request failed                                              | str                                                                                |
| cart                    | The full cart, including its latest quote                                        | Cart                                                                               |
| cart\_id                | Cart ID                                                                          | str                                                                                |
| cart\_url               | Website checkout link; anyone holding it can pay, keep it private                | str                                                                                |
| status                  | open, checked\_out or expired                                                    | "open" \| "checked\_out" \| "expired"                                              |
| quote\_status           | Status of the cart's latest quote; only ready carts can be paid                  | "processing" \| "requires\_input" \| "ready" \| "blocked" \| "expired" \| "failed" |
| is\_payable             | True when the cart is open, quoted ready, and has an address and shipping option | bool                                                                               |
| totals                  | Subtotal, shipping, tax and total                                                | CartTotals                                                                         |
| amount\_total\_cents    | What checkout will charge, in USD cents                                          | int                                                                                |
| shipping\_options       | Delivery choices once ship\_to is set; pass an id to Update Cart                 | List\[ShippingOption]                                                              |
| requirements            | Selections or decisions still needed before ordering                             | List\[Requirement]                                                                 |
| manufacturing\_warnings | Advisories from automatic file preparation; they do not block ordering           | List\[ManufacturingReviewWarning]                                                  |
| order\_id               | Order ID; only emitted once the cart has been paid                               | str                                                                                |

### Possible use case

**Shipping Selection**: Let the customer pick from `shipping_options`, then select it so tax and total are final.

**Address Correction**: Replace a mistyped delivery address and re-read the re-quoted totals.

**Quantity Change**: Replace `items` with the same design at a new quantity after the customer changes their order.

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://agpt.co/docs/integrations/block-integrations/carts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
