---
title: AI Replenishment Agent: Predict When Customers Will Buy Again (2026)
description: Vitamins due next week, unless they already subscribe. Predict the window, draft one reminder, never charge the card. Cart abandonment is 70.22%; that is not a refill rate.
url: https://www.joinhorizon.co/blog/ai-replenishment-agent-ecommerce-2026/
datePublished: 2026-08-27T00:00:00.000Z
dateModified: 2026-10-28T00:00:00.000Z
author: palaniappan-p
category: AI Agents
tags: ai-agents, ecommerce, replenishment, amazon-bedrock, bedrock-agentcore, agentcore-gateway
---

# AI Replenishment Agent: Predict When Customers Will Buy Again (2026)

> Vitamins due next week, unless they already subscribe. Predict the window, draft one reminder, never charge the card. Cart abandonment is 70.22%; that is not a refill rate.

Monday kitchen counter: vitamins, litter, detergent. The shopper **will** need more, unless it was a gift, a return, or an active subscription you are about to double-sell. Stores still blast "running low?" on a 30-day timer. That is how you email someone whose box arrived yesterday, or bill them twice.

[Baymard](https://baymard.com/lists/cart-abandonment-rate) puts average cart abandonment at **70.22%** across 50 studies (updated Sep 22, 2025). That is people who never paid. Replenishment is people who did. Gorgias where-is-my-order (WISMO) **~18%** (via [Redo](https://redo.com/resources/articles/order-editing/what-is-wismo)) is "where is this order," not "when is the next one." Do not mix the templates.

This is post 21 in the [15-automations map](https://www.joinhorizon.co/blog/ai-agents-for-ecommerce-15-automations-2026/). We have no published store results that say refill conversion moved.

**The job.** Predict the next-buy window from interval and behavior. Talk once, or stay quiet. Never charge the card.

**This week.** Read purchase interval, subscription state, inventory, suppression. Suppress gifts, active subs, opt-outs. Draft one reminder for in-stock, two-interval buyers.

**A person still signs.** Any send, any new subscription, any substitute-on-out-of-stock promise.

**Skip it when** the catalog is mostly one-time fashion, you have fewer than two paid intervals, or the real ask is "auto-subscribe everyone."

**Our take:** predict, then maybe talk once. Subscription billing stays in the subscription engine. The agent will not "just subscribe them."

> **Copy the rules:** Priors, engage/suppress, goldens: [`replenishment-engagement-rules.md`](https://www.joinhorizon.co/examples/architecture-blog-2026/ecommerce-ai-agents-series/replenishment-engagement-rules.md). Journey handoff: [`post-purchase-journey-playbook.md`](https://www.joinhorizon.co/examples/architecture-blog-2026/ecommerce-ai-agents-series/post-purchase-journey-playbook.md). Ship gates: [`monday-checklist.md`](https://www.joinhorizon.co/examples/architecture-blog-2026/ecommerce-ai-agents-series/monday-checklist.md).

## When they will buy again, and whether to talk

Today: a 30-day email flow, or Recharge/Skio handling subs, or nothing. The failure mode is **spam** or **double-sell**.

The agent opportunity: `getPurchaseInterval` + `getSubscriptionState` + inventory + suppression → **engage yes/no + how**.

```mermaid
flowchart TD
  IntervalHistory --> ReplenishAgent
  SubscriptionState --> ReplenishAgent
  InventoryBehavior --> ReplenishAgent
  ReplenishAgent --> EngageDecision
  EngageDecision --> DraftOrSilence
  DraftOrSilence --> HumanOrESP
```

**Intervals, quantity, behavior, seasonality, subscription state → agent → engage or silence → human / email platform.** The model does not charge the card.

| Category | Interval shape (prior only) | Engage trap |
| -------- | --------------------------- | ----------- |
| Beauty / skin | 30–90d by size | Gift sets |
| Supplements | Bottle count × serving | January blasts in August |
| Food / CPG | SKU-specific | Oversell short shelf-life |
| Pet | Bag size / 14–45d | Medical claims |
| Household | 30–90d | Bundles vs component SKUs |

Priors are **not** a send. Replace them with **your** last-three paid intervals. One lifetime order → **refuse** a prediction.

[Post-purchase](https://www.joinhorizon.co/blog/ai-agent-post-purchase-engagement-ecommerce-2026/) **hands off** this stage. It must not invent cadence in the education drip. [Retention](https://www.joinhorizon.co/blog/ai-customer-retention-agent-ecommerce-2026/) is churn bands, not refill copy. Warehouse purchase-order timing is [inventory reorder](https://www.joinhorizon.co/blog/ai-inventory-agent-reorder-ecommerce-2026/), with a different Identity and different writes.

## What a person still owns

**Deterministic (keep out of the prompt):** charge, tax, dunning, skip/delay in the subscription portal, opt-out, "active sub on this SKU → do not remind."

**AI:** messy history (they bought 18 then 45 then 22 days), gift vs self-use, seasonality vs true lapse, whether a bundle explodes into component intervals.

**Humans:** send approval, substitute-on-out-of-stock, any new `createSubscription`. Approval can be a Next.js queue, not the agent host.

If Recharge already emails 3 days before renewal **and** that is the product, **do not** add a second reminder from Harness. Hybrid: billing engine owns money; agent owns **non-sub** next-buy guesses.

How to engage when `engage: yes`: one previewed template, one SKU, one window. Not a sequence of five "still thinking about it" pings. Out of stock → recommend delay or substitute to a **human**, not a promise date. Returns on that SKU → [support](https://www.joinhorizon.co/blog/ai-customer-support-agent-ecommerce-2026/) or retention, not refill copy.

There is **no native Shopify connector**. Shopify subscriptions, a custom order store, and warehouse inventory are signed-in targets.

## Ship suppress first, then one draft

**Automate first:** **suppress on active subscription + gift flag + opt-out.** Then draft one reminder for in-stock, two-interval buyers. Not a new subscribe button.

Eval suite: two 28-day buys → draft, not charge; active sub → silence; gift ship-to → silence; `chargeNow` attempted → DENY; out of stock → no "buy now"; duplicate inside 7 days → suppress.

Sample output (fixture, not client data):

```text
customer_ref: hashed:aa12  sku: VIT-D3-90
predicted_window: 2026-09-12 .. 2026-09-18  (getPurchaseInterval, n=3)
subscription: none  inventory: in stock  gift: false  opt_out: false
engage: yes  how: draft_reminder  approval_required: true

customer_ref: hashed:bb09  sku: FOOD-CAT-4KG
predicted_window: (tool returned active_sub)
engage: no  suppress_reason: active_sub
how: none  — billing engine already owns the charge
```

## For your technical lead

**On June 17, 2026**, Amazon Bedrock AgentCore Harness reached general availability ([What's New](https://aws.amazon.com/about-aws/whats-new/2026/06/amazon-bedrock-agentcore-harness-generally-available/)). After **July 30, 2026**, Agents Classic is in maintenance for new customers. Net-new replenishment agents should not start on Classic.

Bedrock = model. **Harness** for a single-domain predictor. **Runtime + Strands** only for hop caps with inventory/retention specialists. Strands does **not** give you Policy.

| Piece | Role |
| ----- | ---- |
| **Gateway** | `getPurchaseInterval`, `getSubscriptionState`, `getInventoryRisk`, `getEngagementSuppression`, `previewReplenishSend` |
| **Cedar** | Default-deny `chargeNow`, `createSubscription`, `enqueueSend` until reviewed |
| **Identity** | System job; shopper JWT must not bill |
| **Browser** | **Off** |

> **First-party signals we reuse (not eCommerce client outcomes):** Gateway server-side tools cut median tool round-trip **~180 ms → ~95 ms** on a **B2B CRM assistant** (12 tools, ~8k turns/day); see the [Gateway post](https://www.joinhorizon.co/blog/amazon-bedrock-agentcore-gateway-server-side-tool-execution-2026/). Platform TCO silhouette: support-style AgentCore at **50K sessions/mo ~$791/mo** platform + model ([decision guide](https://www.joinhorizon.co/blog/aws-bedrock-agentcore-vs-amazon-q-enterprise-decision-guide-2026/)). Per-SKU scoring at catalog scale is invoke volume; model it on the [AgentCore pricing calculator](https://www.joinhorizon.co/tools/amazon-bedrock-agentcore-pricing-calculator/).

Context: Harness GA **June 17, 2026**, Gateway reads, Cedar on any send. Category priors in the artifact are **starting points**. Swap them for SKU-level medians before you score production traffic.

> **What broke:** Sample harness treated every 30-day prior as a send. Fixture customer had an **active subscription** on the same SKU; the agent still drafted "time to refill" and a prototype `enqueueSend` fired because Policy was `LOG_ONLY` with no sub check. Shopper was charged on the usual date **and** clicked the reminder. **Detection:** Gateway showed `getSubscriptionState` unused; email platform + billing both moved the same day; eval 2 was not in the suite yet. **Recovery:** require `getSubscriptionState`; `engage: no` when active; strip send until `ENFORCE`; replay as must-fail. **Lesson:** replenishment without a sub gate is a second storefront.

A second counter-case: refill copy on a returned supplement. That is [support](https://www.joinhorizon.co/blog/ai-customer-support-agent-ecommerce-2026/) or retention, not a nag.

## What to do this week

1. List consumable SKUs that actually repeat. If the list is fashion-only, stop.
2. Expose `getPurchaseInterval` and `getSubscriptionState`. No billing writes.
3. Copy [`replenishment-engagement-rules.md`](https://www.joinhorizon.co/examples/architecture-blog-2026/ecommerce-ai-agents-series/replenishment-engagement-rules.md). Fill **your** intervals.
4. Harness on Gateway; Policy default-deny charge/subscribe/send; Browser off.
5. Ten goldens + three must-fail (spam, gift, active sub).
6. Human approval for any send. Named owner for evals + cost alarm.
7. Price SKU×customer scoring on the [AgentCore pricing calculator](https://www.joinhorizon.co/tools/amazon-bedrock-agentcore-pricing-calculator/). [`monday-checklist.md`](https://www.joinhorizon.co/examples/architecture-blog-2026/ecommerce-ai-agents-series/monday-checklist.md).

Need Cedar on send without touching billing? [Contact us](https://www.joinhorizon.co/contact-us/). Related: [Amazon Bedrock](https://www.joinhorizon.co/services/aws-bedrock/), [Generative AI on AWS](https://www.joinhorizon.co/services/generative-ai-on-aws/), [AWS for retail / eCommerce](https://www.joinhorizon.co/industries/aws-retail-ecommerce/).

## What this post doesn't cover

- Journey stages before refill: [post-purchase coordinator](https://www.joinhorizon.co/blog/ai-agent-post-purchase-engagement-ecommerce-2026/).
- DC / vendor reorder POs: [inventory reorder](https://www.joinhorizon.co/blog/ai-inventory-agent-reorder-ecommerce-2026/).
- Churn winback lists: [retention](https://www.joinhorizon.co/blog/ai-customer-retention-agent-ecommerce-2026/).
- Measured refill rate or subscription-attach from a FactualMinds engagement.
- AgentCore Payments / x402; PAN in Memory.
- A native Shopify / Recharge AgentCore connector.

## FAQ

### When should we NOT deploy an AI replenishment agent?

Skip it when the catalog is mostly one-time fashion or durables with no repeat SKU, when you have fewer than two prior paid intervals for the SKU, or when the real ask is "auto-subscribe everyone." A dated email "buy again" flow is enough if you already suppress active subscriptions. Also skip the older Agents Classic product after July 30, 2026.

### What could go wrong if we spam "time to refill"?

You train unsubscribes and look blind to the order they placed yesterday. One reminder in the predicted window. Dedup 7 days. Honor opt-out. Gift ship-to is not a user. Daily nag is not a cadence.

### What could go wrong if the agent touches subscription billing?

Double charges, tax mistakes, and dunning loops. Charge, retry, and skip stay in the subscription engine. The agent may recommend a reminder or a skip. It must not call chargeNow. Instructions in the prompt are not PCI or a billing SOP.

### How is this different from inventory reorder and post-purchase?

This agent predicts the shopper next buy. Inventory reorder is the warehouse / purchase-order side (post 22). Post-purchase coordinates the journey after one order and must hand replenishment here, not guess intervals in the education drip.

### Beauty vs supplements vs pet — same agent?

Same harness, different priors and evals. Replace the sample interval table with your SKU data. Vet and ingestible copy must not invent medical claims. Short shelf-life food must not oversell. Gift flags matter more in beauty than in cat litter.

### Harness or Runtime? Shopify connector?

Harness (AgentCore) is enough for interval reads plus a draft reminder. Runtime plus Strands if inventory and retention specialists share a turn with hop caps. There is no native Shopify AgentCore connector. Wrap orders, subscriptions, and inventory as signed-in lookups. Browser off. No payment tools.

## How the replenishment prediction stays bounded

Estimate when a known buyer may need the same SKU again.

- **Maturity:** Level 2 — reference architecture
- **Risk:** medium
- **Oversight:** monitored
- **Starts when:** A replenishment review for repeat consumables.
- **Tools:** Reads only, through named tools. No shell, no unrestricted SQL, and no undeclared API.
- **Stops for a person:** The prediction does not place the order or charge a card.
- **Checked by:** The date cites purchase history. Thin history is labeled thin, not filled in.
- **Untrusted data:** Product pages that tell the model to subscribe the customer.
- **If it fails:** If the replenishment prediction stops, name the reason: completed, budget_exceeded, timed_out, cancelled, guardrail_blocked, approval_required, tool_failure, verification_failed, or partial_completion. Retry a timeout at most twice. Back off on rate limits. After repeated verification failure, escalate. Stop when the budget is exhausted or a permission is denied. No unbounded loop. The prediction does not place the order or charge a card.
- **Lifecycle:** Explore, then act, then confirm, then verify. Explore gathers the context for the replenishment prediction. Act stays reversible. Confirm stops before an irreversible step. Verify is a separate check of the outcome.

Reference architecture, not a published production deployment. The shared contract is the [AWS store-agent architecture](https://www.joinhorizon.co/blog/aws-ai-agents-for-ecommerce-factualminds-2026/#operating-contract).

## FAQ

### When should we NOT deploy an AI replenishment agent?
Skip it when the catalog is mostly one-time fashion or durables with no repeat SKU, when you have fewer than two prior paid intervals for the SKU, or when the real ask is "auto-subscribe everyone." A dated email "buy again" flow is enough if you already suppress active subscriptions. Also skip the older Agents Classic product after July 30, 2026.

### What could go wrong if we spam "time to refill"?
You train unsubscribes and look blind to the order they placed yesterday. One reminder in the predicted window. Dedup 7 days. Honor opt-out. Gift ship-to is not a user. Daily nag is not a cadence.

### What could go wrong if the agent touches subscription billing?
Double charges, tax mistakes, and dunning loops. Charge, retry, and skip stay in the subscription engine. The agent may recommend a reminder or a skip. It must not call chargeNow. Instructions in the prompt are not PCI or a billing SOP.

### How is this different from inventory reorder and post-purchase?
This agent predicts the shopper next buy. Inventory reorder is the warehouse / purchase-order side (post 22). Post-purchase coordinates the journey after one order and must hand replenishment here, not guess intervals in the education drip.

### Beauty vs supplements vs pet — same agent?
Same harness, different priors and evals. Replace the sample interval table with your SKU data. Vet and ingestible copy must not invent medical claims. Short shelf-life food must not oversell. Gift flags matter more in beauty than in cat litter.

### Harness or Runtime? Shopify connector?
Harness (AgentCore) is enough for interval reads plus a draft reminder. Runtime plus Strands if inventory and retention specialists share a turn with hop caps. There is no native Shopify AgentCore connector. Wrap orders, subscriptions, and inventory as signed-in lookups. Browser off. No payment tools.

---

*Source: https://www.joinhorizon.co/blog/ai-replenishment-agent-ecommerce-2026/*
