# MCP Reorder for Magento 2  -  module reference

> Let AI agents fill a signed-in B2B buyer's Magento 2 cart from past orders or a SKU list, at their own prices. The agent never places the order.

Source: https://angeo.dev/docs/modules/mcp-reorder/
Updated: 2026-10-17

Module reference

# MCP Reorder for Magento 2  -  module reference

Covers `angeo/module-mcp-reorder` 1.0.0 - Checked 16 October 2026 - MIT licensed

**MCP Reorder** lets an AI agent fill a business buyer's cart from their order history. A buyer can tell Claude, or any MCP client, *"order the same as last month, but double the gloves"*, or paste a list of SKUs. The agent reads **their own** orders, puts the lines into **their own** cart at **their own** prices, and reports what is out of stock or more expensive now.

The buyer then checks out on your store as usual. **The tools never place an order.** Payment, purchase orders, approvals and company rules stay in your checkout.

It extends [MCP Server](https://angeo.dev/docs/modules/mcp-server/). For shoppers who are not signed in, see [MCP Checkout](https://angeo.dev/docs/modules/mcp-checkout/).

Package`angeo/module-mcp-reorder`Latest version1.0.0 (released 2026-10-02)Magento2.4.6+PHP8.1 - 8.5Places ordersNo  -  the buyer checks out on your storeLicenseMIT, freeLinks[GitHub](https://github.com/angeo-dev/module-mcp-reorder) - [Packagist](https://packagist.org/packages/angeo/module-mcp-reorder) - [Changelog](https://github.com/angeo-dev/module-mcp-reorder/blob/main/CHANGELOG.md) - [Module page](https://angeo.dev/modules/mcp-reorder/)

**On this page**

1. Tools
2. How it works
3. Security model
4. Requirements
5. Installation
6. Configuration reference
7. Connecting a signed-in buyer
8. Adobe Commerce B2B
9. Known limits
10. FAQ
11. Related

## Tools

| Tool | What it does | Changes data |

| `list_my_orders` | The buyer's orders, newest first. `sku` finds orders that contain a product. | No |
| `get_my_order` | Every line of one order: SKU, options, quantity, price then | No |
| `reorder_to_cart` | Puts an order into the cart: all lines, a `multiplier`, or chosen `items`. Reports price changes and lines that cannot be added. | Cart |
| `add_items_to_my_cart` | Quick order: a list of `{sku, qty}` in one call | Cart |
| `update_my_cart_item` | Changes a line's quantity, or removes it with `qty: 0` | Cart |
| `get_my_cart` | The cart with totals and a `checkout_url` | No |
| `get_my_prices` | The buyer's own unit price and quantity breaks for up to 50 SKUs | No |

`reorder_to_cart` and `add_items_to_my_cart` accept `"preview": true`. You get the same result, prices and stock check, but the cart is not saved.

Two conversation starters are added for signed-in buyers: **Reorder from {store}** and **Quick order at {store}**.

```
list_my_orders                       -> order 000000123, 14 lines
reorder_to_cart {order_number: "000000123", multiplier: 2, preview: true}
                                     -> 13 lines OK, 1 out of stock, gloves +8 %
(buyer confirms)
reorder_to_cart {order_number: "000000123", multiplier: 2}
                                     -> cart saved, checkout_url
```

## How it works

- **The buyer's normal cart.** Changes go into the same cart the buyer sees in the mini cart.
- **Today's prices and rules.** Lines are added with Magento's own reorder logic, so options, variants and bundles come back as bought. Prices, tier prices, catalog rules and stock are today's, for the buyer's customer group.
- **All or nothing per change.** Lines are added, totals are collected, limits are checked  -  and only then is the cart saved. If a limit is broken, nothing is saved.
- **Partial success is reported.** A line Magento refuses (out of stock, minimum quantity, no longer sold) is listed with the reason. The other lines still go in.

## Security model

- **Verified buyers only.** The tools appear in `tools/list` only when the request carries a customer token that Magento verified. Anonymous and integration-only connections do not see them.
- **No identity in arguments.** No tool accepts a customer id, email or login. The buyer comes only from the token.
- **Own data only.** Orders are filtered by the buyer and by the store views of the current website. Another buyer's order number looks like one that does not exist.
- **Small output.** Orders show SKUs, names, quantities, prices and status. No addresses, email or payment data.
- **Storefront rules.** Disabled, hidden or other-website products are refused, also in `get_my_prices`. An old `custom_price` from an admin order is never copied.
- **Limits.** Lines per call, quantity per line, lines in the cart, and an optional subtotal cap. All are checked on the resulting cart before it is saved.
- **Audit log.** Each cart change is written to `var/log/angeo_mcp_reorder.log`: tool, customer id, store and line counts. No product data or prices.

## Requirements

| Magento | 2.4.6+ (Open Source, Mage-OS or Adobe Commerce)  -  `magento/framework >=103.0.6 <104` |
| PHP | 8.1 - 8.5  -  `~8.1.0||~8.2.0||~8.3.0||~8.4.0||~8.5.0` |
| Other angeo modules | [angeo/module-mcp-server](https://angeo.dev/docs/modules/mcp-server/) `^2.4.0` |

MCP Server 2.4.0 brings customer tokens and account linking, which is how connectors such as Claude reach a signed-in buyer.

## Installation

```
composer require angeo/module-mcp-reorder
bin/magento module:enable Angeo_McpReorder
bin/magento setup:upgrade
bin/magento setup:di:compile                # production mode only
bin/magento cache:flush
```

Then, in **Stores -> Configuration -> Angeo -> MCP Server**:

1. **Security -> Accept Customer Tokens** = *Yes*
2. **Customer Account Tools -> Enable** = *Yes*

Test from the shell as a real customer, without a token:

```
bin/magento angeo:mcp:tools list_my_orders -c buyer@example.com
bin/magento angeo:mcp:tools reorder_to_cart -c buyer@example.com \
  -a '{"order_number":"000000123","preview":true}'
```

## Configuration reference

All settings are under **Stores -> Configuration -> Angeo -> MCP Server**. The table shows each field, its config path (for `bin/magento config:set`) and its default value.

Customer Account Tools (Reorder & Quick Order) (6)

| Setting | Config path | Default |

| Enable Customer Account Tools | `angeo_mcp/reorder/enabled` | No |
| Max Lines per Call | `angeo_mcp/reorder/max_lines_per_call` | `50` |
| Max Quantity per Line | `angeo_mcp/reorder/max_qty_per_line` | `1000` |
| Max Cart Lines | `angeo_mcp/reorder/max_cart_lines` | `100` |
| Max Cart Subtotal (base currency) | `angeo_mcp/reorder/max_cart_subtotal` | `0` |
| Orders per Page | `angeo_mcp/reorder/orders_page_size` | `10` |

Reordering also follows Magento's own **Sales -> Reorder -> Allow Reorder** setting.

## Connecting a signed-in buyer

- **Through a connector with account linking**  -  this is how Claude connects, for example through mcp.angeo.dev. The buyer signs in **on your store** and approves. The connector gets an MCP-only token (`amc_...`) and sends it as `X-Customer-Token` next to its Integration token. See [account linking](https://angeo.dev/docs/modules/mcp-server/#account-linking-2-4-0).
- **Directly, for testing only** (Claude Code, MCP Inspector). Turn on *Accept Storefront Customer Tokens (testing)* first, and off again afterwards.

```
TOKEN=$(curl -s -X POST https://your-store.example/rest/V1/integration/customer/token \
  -H 'Content-Type: application/json' \
  -d '{"username":"buyer@example.com","password":"..."}' | tr -d '"')
claude mcp add --transport http my-store https://your-store.example/mcp \
  -H "Authorization: Bearer $TOKEN"
```

## Adobe Commerce B2B

The module works on Magento Open Source and Mage-OS with customer groups and tier prices. On Adobe Commerce with B2B, carts change through the core cart (`Quote::addProduct`), so B2B cart rules apply. Negotiable quotes, requisition lists and purchase-order approval are not touched  -  the buyer uses them at checkout as usual.

## Known limits

- `add_items_to_my_cart` adds simple, virtual and configurable products. Reorder bundles and grouped products from a past order, or add them on the store.
- `get_my_prices` shows prices before cart rules and tax, in base currency. The cart total is final.
- A search by `sku` looks at the latest 100 orders.
- On multi-currency stores, price changes are flagged only when the order and the cart use the same currency.

## FAQ

### Can the agent place the order?

No. There is no tool that places an order. The agent fills the cart and gives the buyer a checkout link. The buyer checks out on your store.

### Which prices does the agent see?

The buyer's own prices today: their customer group, tier prices and catalog rules. Cart rules and tax are applied in the cart total.

### Can an agent see another customer's orders?

No. The buyer comes only from the verified token, never from tool arguments, and orders are filtered by that buyer. Another buyer's order number looks like one that does not exist.

### Does it work with Adobe Commerce B2B?

Yes, through the core cart, so B2B cart rules apply. Negotiable quotes, requisition lists and approvals stay in the normal checkout.

### How does Claude know who the buyer is?

Through account linking in MCP Server. The buyer signs in on your store and approves the connector, which then gets an MCP-only token for that buyer.

## Related

- [MCP Server](https://angeo.dev/docs/modules/mcp-server/)  -  live, read-only catalog tools for AI agents over MCP
- [MCP Checkout](https://angeo.dev/docs/modules/mcp-checkout/)  -  guest cart and checkout tools for AI agents, with server-side limits
- [AI Agent Activity](https://angeo.dev/docs/modules/agent-activity/)  -  report on AI agent calls, crawler visits, fake bots and agent-built orders
- [MCP account linking  -  definition](https://angeo.dev/mcp-account-linking-definition/)
- [B2B AI visibility for Magento](https://angeo.dev/magento-b2b-ai-visibility/)
- [All module reference pages](https://angeo.dev/docs/modules/) - [Compatibility matrix](https://angeo.dev/docs/compatibility/)

This page was written from the `README.md`, `composer.json` and `etc/*.xml` files of [tag 1.0.0](https://github.com/angeo-dev/module-mcp-reorder/tree/1.0.0), read on 16 October 2026. Settings, commands and defaults come straight from that code. If a newer release is out, the README on GitHub wins.
