RUNELORESUPPLY

Connect your store

Test in your terminal

curl "https://runeloresupply.com/discovery/v1/products?search=shirt&limit=3"

This public lookup needs no key. Merchant ordering requires the authorization below.

RuneLore LLC supplies custom products to businesses. Connect your shop or AI through the merchant API, or install the WooCommerce connector for a WordPress store. Stripe processes RuneLore payments.

Authorize your shop or AI Merchant OpenAPI

Complete merchant setup before automatic ordering

Requires an active RuneLore account, a compatible working connector with order permission, published approved product mappings, a saved Stripe payment method, and explicitly enabled spending limits. Orders support US delivery and USD only.

  1. Sign in, create a connection for your shop’s HTTPS address, and save the key in your server or AI client’s secret storage.
  2. Set per-order and daily limits, save a payment method with Stripe, and explicitly enable automatic purchases. A read-only key cannot place orders. Keys cannot change spending consent.
  3. Customize a product and save the approved design in your cart. Approve its resale artwork rights and publish the exact size, color and design to the connection.
  4. Your shop verifies its customer payment, maps the approved listing, and sends the paid order. RuneLore checks current stock and price, prepares and verifies a supplier draft, charges the authorized method, and confirms production. Status and tracking return through polling.

Connect your AI

Use a Streamable HTTP MCP client that supports a secret Authorization header:

POST /mcp/merchant
Authorization: Bearer YOUR_CONNECTION_KEY
Content-Type: application/json
Accept: application/json, text/event-stream

Tools: merchant_status, merchant_listings, merchant_publish, merchant_submit_order, merchant_orders, merchant_order, merchant_cancel, merchant_restock_rules, merchant_inventory, merchant_received. Submit and inventory tools can initiate real purchases. Browse all products anonymously at /mcp/catalog, then order only your shop’s approved listings. This does not grant access to other shops. AI clients must support a secret bearer header, directly or through an adapter. Native OAuth login is not supported.

Any-platform API

All requests use the bearer key over HTTPS. GET requests need no signature. POST notifications also require a fresh signature; this authenticates your connector, while your shop remains responsible for verifying the customer’s payment.

key = SHA256(JSON.stringify(connectionKey)) as raw bytes
bodyHash = SHA256(exact UTF-8 request body) as lowercase hex
message = timestamp + "\n" + nonce + "\n" + method + "\n" + path + "\n" + bodyHash
signature = HMAC-SHA256(key, message) as lowercase hex
X-RuneLore-Timestamp: Unix seconds
X-RuneLore-Nonce: new 32–64 character hexadecimal nonce or UUID
X-RuneLore-Signature: signature

Timestamps must be within five minutes. Reused nonces are rejected. A transport retry uses a fresh nonce and signature with the original body and external order ID. MCP requests use authenticated protocol calls instead of this REST signature.

EndpointUse
GET /merchant-api/v1/connectionConnection identity and permissions.
GET /merchant-api/v1/listingsApproved product/variant, size, color, design digest, merchant retail price, current RuneLore unit price and availability timestamp.
POST /merchant-api/v1/published{listingId, externalProductId}: acknowledge a stable store or AI listing mapping.
POST /merchant-api/v1/orders{externalOrderId, paid:true, maximumTotalMinor, recipient, items:[{listingId,quantity,expectedUnitMinor,designDigest}]}. Cents, USD. Save expected price and design when your customer orders. Size and color come from the immutable listing.
GET /merchant-api/v1/ordersRecent orders, sanitized event logs, failures, refund amounts and tracking packages. Poll every 30–60 seconds.
GET /merchant-api/v1/orders/ORDER_IDOne order, including older orders.
POST /merchant-api/v1/cancel{id}: request cancellation and eligible original-payment refund.
GET /merchant-api/v1/restockSeparately authorized stock rules and incoming units.
POST /merchant-api/v1/inventory{ruleId,available,sequence,observedAt}. Increasing sequence; observedAt in Unix milliseconds within 15 minutes. Never report unknown stock as zero.
POST /merchant-api/v1/received{ruleId,orderId,receiptId,quantity}. Confirm physical receipt of shipped goods after updating shop inventory. Reuse receiptId on retry. Partial receipts keep remaining units incoming.

Recipient: name, email, address1, optional address2, city, stateCode, countryCode:"US", zip, optional phone. A repeated externalOrderId with identical contents returns the original purchase; changed contents return 409. Reconnecting the same store address preserves its identity. Never create a new order ID to retry an uncertain purchase.

Sync timing and failure alerts

Products and tracking update through scheduled polling, not instantly. Keep WordPress scheduled tasks running for WooCommerce, or run polling in your own integration. Review failures in your RuneLore account, API or WooCommerce order notes; email and SMS failure alerts are not provided.

Exceptions and recovery

Unavailable products, stale or changed prices, invalid addresses, artwork problems, spending limits and payment failures pause the order. The account and API show a failure code and order log. Pause automatic purchases in your account at any time. Resolve the cause; cancel an uncharged order before replacing it. Payment authentication failures are not retried as fresh charges. A known supplier rejection triggers cancellation and refund; unaccepted orders are checked for cancellation after one hour. Ambiguous supplier writes remain under reconciliation until cancellation or production is confirmed. An in-production order is never automatically refunded as if it were unfulfilled. Refund settlement depends on the payment network.

An incoming restock order blocks repeat buying. Canceled, expired or refunded replenishment pauses its rule for review. Receipt never increases reported stock automatically: update actual inventory, confirm receipt and send a new observation.

WooCommerce store connection

WooCommerce runs your WordPress storefront. Stripe processes the authorized RuneLore supply payment. They perform separate jobs and work together in this ordering flow.

Download version 0.2.0 for an existing WordPress/WooCommerce shop. Install it, enter the key under WooCommerce → RuneLore, enable sync and ensure WordPress scheduled tasks run every minute. The connector signs paid-order notifications, syncs approved products and stock checks, and stores returned status and tracking on the order. Products rotate through a bounded sync queue; stock is checked again before charging.

Choose your buying path

Buy stock for your business directly, or connect your online store for approved customer orders. The WooCommerce connector and merchant API are available; automatic purchases require account setup, approved products, payment authorization and spending limits. Stripe remains RuneLore’s payment processor. Other shop platforms use the merchant API through an adapter; native Shopify and Etsy apps are not supplied.

Service availability · Resale, costs, delivery and returns.