> ## Documentation Index
> Fetch the complete documentation index at: https://www.kitemc.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fulfillment preview and confirmation

> Inspect real inventory matches and quantities to take and leave before confirming fulfillment.

export const ScreenshotPlaceholder = ({image, src, title, caption, description, lang = "zh"}) => {
  const source = image || src;
  const label = title || caption || (lang === "en" ? "Gameplay screenshot" : "游戏截图");
  const [ready, setReady] = useState(false);
  const imageRef = useRef(null);
  useEffect(() => {
    const current = imageRef.current;
    setReady(Boolean(current && current.complete && current.naturalWidth > 0));
  }, [source]);
  return <figure className="km-screenshot">
      <div className="km-screenshot-frame">
        {source ? <img ref={imageRef} src={source} alt={label} className={ready ? "km-screenshot-image" : "km-screenshot-image km-screenshot-pending"} onLoad={() => setReady(true)} onError={() => setReady(false)} /> : null}
        {!ready ? <div className="km-screenshot-placeholder">
            <svg width="36" height="36" viewBox="0 0 36 36" fill="none" aria-hidden="true">
              <rect x="5" y="6" width="26" height="24" rx="4" stroke="currentColor" strokeWidth="1.5" />
              <circle cx="13" cy="13" r="2.5" stroke="currentColor" strokeWidth="1.5" />
              <path d="M6 26L14 19L19 23L24 16L31 24" stroke="currentColor" strokeWidth="1.5" strokeLinejoin="round" />
            </svg>
            <strong>{label}</strong>
            <p>{description || (lang === "en" ? "A real gameplay screenshot will be added here." : "此处预留真实游戏截图。")}</p>
          </div> : null}
      </div>
      <figcaption>{label}</figcaption>
    </figure>;
};

Previewing does not move or modify inventory items. Fulfillment transfers snapshots of the actual selected items instead of generating replacements from the buyer's sample.

<ScreenshotPlaceholder image="https://mintcdn.com/kitemc/uE-YKoIH7aParWyf/images/kitemarket/screenshot-supply-preview.png?fit=max&auto=format&n=uE-YKoIH7aParWyf&q=85&s=1ba2a4d52f7b7053dc92f982b1e9e524" title="Fulfillment preview: low-durability items stay in your inventory" description="Each inventory slot shows its match result, rejection reason and quantities to take and leave." lang="en" width="1717" height="1058" data-path="images/kitemarket/screenshot-supply-preview.png" />

<h2 id="fulfillment-preview">
  Fulfillment steps
</h2>

<Steps>
  <Step title="Inspect matching items">
    Click **Supply** in a buy order to preview your inventory storage slots.

    Icons retain the real name, enchantments, and original lore, with added match results, rejection reasons, and quantities to take and leave.
  </Step>

  <Step title="Protect items you want to keep">
    Click a matching slot to protect it; click again to include it. Protected items are excluded from this fulfillment.

    Protection belongs only to this preview flow, not a permanent inventory setting; select it again when starting another fulfillment.
  </Step>

  <Step title="Set the fulfillment quantity">
    Set a quantity or use **Maximum available** to recalculate from unprotected matching items and the order's remaining demand.

    Items are selected in inventory-slot order. A shortfall is shown and prevents final confirmation.

    **Refresh** reads the order and inventory again for the latest available quantity.
  </Step>

  <Step title="Review items and proceeds">
    Review the quantity from each slot, gross proceeds, tax, and net income.

    The confirmation also lists source slots and quantities so you can catch a selected tool or collectible before submitting.
  </Step>

  <Step title="Confirm fulfillment">
    After final confirmation, the actual inventory properties and quantities are checked again before removal; submitting the order rechecks its revision and remaining demand. Inventory changes reject removal.

    If the order expires or another supplier fills it, use the operation record to check any items already escrowed and inspect claims before starting a new operation.
  </Step>
</Steps>

For items that do not match, see [advanced buy orders and conditions](/en/kitemarket/trading/buy-orders). After a trade or item return, open [claims](/en/kitemarket/trading/claims).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.