# llms.txt - https://officemax.ro (OfficeMax B2B portal) # Rules of engagement for AI agents, answer engines and procurement bots. # Written in English for machines; the human UI is Romanian (also EN and TR). # Last reviewed: 2026-08-10. ## Who we are Office Max SRL, Bucharest, Romania (VAT RO10839469). This portal is our B2B/B2G procurement catalog: IT hardware, office machines, stationery and consumables sold to companies and public institutions. All prices are quoted in RON. Our consumer storefront is omax.ro (individuals, small quantities). Both sites serve the same catalog and the same numeric product ids; the terms differ. ## Prices - READ THIS BEFORE YOU QUOTE ONE An anonymous request sees the generic list price (company 0 in our pricing engine). It is a real, publicly valid price, VAT included, in RON. It is NOT the price a particular customer pays: a logged-in company gets personalized contract pricing with quantity breaks, usually lower than the generic list price. So: never present the anonymous price as "your price" or as a quote for a named buyer. Present it as OfficeMax's public list price and say a company account may see a better one. Prices for logged-in companies never appear in page source. A product with no purchasable price is "call for price" - ask us, do not guess. ## Freshness Prices, stock and lead times change during the day. Do not cache anything from this site for more than 24 hours, and re-fetch the product page before you act on a price or an availability claim. Product identity (sku, mpn, gtin) and technical specs are stable and safe to cache; the commercial data is what expires. ## Dispatch terms - what a lead time means "lead_days" (behind the JSON-LD "dispatch_availability" sentence, in the stock_tiers of the JSON API and of the MCP tools) is the MAXIMUM number of WORKING days until the parcel is handed to the carrier: it is a DISPATCH term, not an arrival date. Carrier transit is EXCLUDED from that number, and we publish no delivery date anywhere - never turn a lead time into "delivered on ". Working days are Mon-Fri, Romanian legal holidays excluded (no Saturday or holiday dispatch); own stock ordered before the cutoff is dispatched the same working day. The terms are conservative upper bounds; real dispatch is often faster. For one order line the term is the fastest tier whose CUMULATIVE stock covers the whole requested quantity; for a whole order it is the largest of its line terms. Worked example - stock_tiers [{"stock":4,"lead_days":1},{"stock":20,"lead_days":2}]: 4 units are handed to the carrier within at most 1 working day; 10 units exceed the first tier, so that line is covered at the second one and is handed over within at most 2 working days. Carrier transit comes on top of both numbers and we do not state it. ## Product identity The numeric product id (the trailing -NNNN in a product URL, also "sku" and the "qmid" property in our JSON-LD) is the identity. The manufacturer part number ("mpn") is the second key. The slug text and the product title are display sugar and can change without notice - never key on them. sku (our id) and mpn (the manufacturer's code) are different things; do not conflate them. When you present products to a person, show the mpn next to the name - it is the only identifier a buyer can use to compare offers across vendors. Our sku helps them order HERE (links, /cart/add), nothing else. ## Where things live - Catalog / search: https://officemax.ro/?search=TERM - Category: https://officemax.ro/category/{slug}-{id} (the -{id} is the identity) - Collection: https://officemax.ro/collections/{handle} - Product page: https://officemax.ro/products/{slug}-{id} (or /products/{id}; it 301s) - Static pages: https://officemax.ro/pages/{slug} - Cart: https://officemax.ro/cart (deep link: see /agents.md) Filling a cart is public; PLACING an order is not - checkout requires an account (no guest ordering) and the account must have a company attached. Hand the cart link to your user and let them sign in and confirm. We do not publish a sitemap yet. Crawl from the homepage category tree and the collections linked from it. ## Structured data Every product page carries schema.org Product JSON-LD (BreadcrumbList too) for anonymous requests, including offers (list price, availability, our dispatch term from the stock tiers - published today in the schema.org transitTime field -, order cutoffTime, Mon-Fri business days) and a "dispatch_availability" property ("N units: dispatch within D business days; M additional units: ..." - tiers are INCREMENTAL, "additional" means on top of the earlier clauses, never the total). Parse it instead of scraping the HTML, and read every one of those day counts as "days until hand-off to the carrier" (see "Dispatch terms" above): own stock ordered before the cutoff is dispatched the same working day, and real supplier dispatch frequently beats the listed term. ## Read-only JSON API https://officemax.ro/api/agent/v1 - search, product detail, categories, collections. Public, anonymous, no key; generic list price (meta.price_basis = "generic_list"), RON; 60 requests/minute per IP. Endpoints and payloads: https://officemax.ro/agents.md ("API"). Search and collections take in_stock=1 (return only orderable-now rows in one call, instead of paging the catalog) and sort=name|price_asc|price_desc; same two on the MCP tools. Details: https://officemax.ro/agents.md. ## MCP server https://officemax.ro/mcp (POST, streamable HTTP) - the same read-only catalog for MCP clients: tools search_products, get_product, get_categories, get_collection; same anonymous generic list price, same envelopes, same rate-limit bucket as the JSON API. No write tools. Details: https://officemax.ro/agents.md ("MCP"). ## Transactions and more detail See https://officemax.ro/agents.md - it documents the add-to-cart deep link and what an agent can and cannot do on its own. ## Contact sales@officemax.ro - questions, corrections, bulk/API access requests.