Skip to content

Data dictionary

Every field defined by the .cart format, in one flat table, keyed by dotted path (array elements use the [] suffix). This is generated from the canonical spec/data-dictionary.json; the JSON Schema remains authoritative for validation.

Profilecore fields are the minimum Core profile; expanded fields are everything else (see spec §2.1). Sensitivity — see spec §8: normal (not PII), personal (GDPR-relevant), sensitive (sensitive PII).

Download: JSON · CSV

Path Type Req. Profile Sensitivity Description
cart_version string yes core normal Version of this spec the file conforms to ("0.1").
id string yes core normal Unique identifier for this cart snapshot (UUID recommended).
created_at string yes core normal When the cart was captured / exported (ISO 8601 with timezone).
updated_at string no expanded normal Last modification of this file.
expires_at string no expanded normal When the captured prices / quote stop being valid, if the merchant states it.
locale string no expanded normal Locale the cart was presented in (e.g. "he-IL", "en-US"). Helps interpret names and formatting.
transaction_type string no expanded normal "b2c" (default) or "b2b". When "b2b", the buyer object and both parties' VAT details become relevant. Values: b2c, b2b.
source object no expanded normal Where and how the cart was captured (provenance).
source.platform string no expanded normal Ecommerce backend / storefront platform powering the merchant, if known or detected (e.g. "shopify", "woocommerce", "magento", "custom").
source.platform_detected boolean no expanded normal true if platform was auto-detected by the capturing agent rather than supplied by a human.
source.platform_confidence number no expanded normal Detector confidence in platform, 0-1, when platform_detected is true.
source.cart_url string no expanded personal URL of the live cart, if one exists. May embed a session token.
source.captured_by string no expanded normal Tool / agent that produced the file (e.g. "cart-exporter-mcp/0.3").
source.capture_method string no expanded normal How the cart was captured. Values: browser_agent, api, manual, ocr, other.
merchant object yes core normal The seller the cart belongs to.
merchant.name string yes core normal Merchant / vendor display name.
merchant.legal_name string no expanded normal Registered company name, if different.
merchant.website string no expanded normal Merchant homepage URL.
merchant.merchant_id string no expanded normal Merchant identifier (company / VAT registration number, etc.).
merchant.vat_id string no expanded normal Seller VAT / tax registration number (the seller side of a B2B transaction).
merchant.vat_issuing_authority string no expanded normal Authority / country that issued the seller's VAT ID (e.g. "IL", "DE").
merchant.country string no expanded normal Seller's country; defaults to merchant.address.country when present.
merchant.compliance array no expanded normal Data-protection / security standards the merchant attests to (e.g. ["soc2", "iso_27001", "gdpr"]). Useful for (government) procurement.
merchant.global_merchant_id string no expanded normal Reserved / placeholder for a future universal merchant identifier. Populate only against an agreed scheme.
merchant.address object no expanded normal Postal address.
merchant.address.street string no expanded normal Street address.
merchant.address.city string no expanded normal City.
merchant.address.region string no expanded normal State / province / region.
merchant.address.postal_code string no expanded normal Postal / ZIP code.
merchant.address.country string no expanded normal Country code.
merchant.contact object no expanded personal Merchant contact details. Treat as personal data when a named person.
merchant.contact.email string no expanded personal Contact email.
merchant.contact.phone string no expanded personal Contact phone.
buyer object no expanded personal The purchasing party (chiefly for B2B). Supplies the buyer side of a PO / RFQ / reverse-charge VAT document.
buyer.business_name string no expanded personal Legal name of the purchasing organization.
buyer.vat_id string no expanded personal Buyer's VAT / tax registration number.
buyer.vat_issuing_authority string no expanded personal Authority / country that issued the buyer's VAT ID.
buyer.country string no expanded personal Buyer's country.
buyer.contact object no expanded personal Optional name / email / phone for the purchaser.
buyer.contact.name string no expanded personal Purchaser name.
buyer.contact.email string no expanded personal Purchaser email.
buyer.contact.phone string no expanded personal Purchaser phone.
currency string yes core normal Currency for all amounts in the file.
multi_currency boolean no expanded normal false by default. When true, individual items may carry their own currency and exchange-rate fields; totals stay in the top-level currency.
tax object no expanded normal Cart-level tax context.
tax.scheme string no expanded normal Tax scheme in effect. Values: vat, sales_tax, none.
tax.default_rate number no expanded normal Default rate (decimal fraction, 0.18 = 18%) applied to items unless overridden per item.
tax.prices_include_tax boolean no expanded normal Whether the merchant's displayed prices include tax.
items array yes core normal Line items.
items[].sku string conditional expanded normal Merchant SKU / catalog number. Required if the merchant exposes a SKU.
items[].name string yes core normal Short product name.
items[].description string no expanded normal Longer description.
items[].variant string no expanded normal Human-readable variant label (e.g. "Blue / XL").
items[].options array no expanded normal Structured variant selections.
items[].options[].name string no expanded normal Option name (e.g. "Color").
items[].options[].value string no expanded normal Option value (e.g. "Blue").
items[].quantity number yes core normal Quantity in the cart.
items[].unit string no expanded normal Unit of measure ("each", "box", "m", "kg"...). Defaults to "each".
items[].unit_price_excl_tax number yes expanded normal Price per unit before VAT / tax.
items[].unit_price_incl_tax number yes core normal Price per unit after VAT / tax.
items[].rrp_excl_tax number no expanded normal Regular / reference price (RRP) per unit before tax, when discounted from a higher list price.
items[].rrp_incl_tax number no expanded normal Regular / reference price (RRP) per unit after tax. Discount percentage is measured against this.
items[].currency string no expanded normal Item currency. Only when cart multi_currency is true and it differs from the cart currency.
items[].exchange_rate number no expanded normal Rate used to convert this item's currency to the cart currency.
items[].exchange_rate_calculated boolean no expanded normal true if the rate was computed by the producing tool rather than quoted by the merchant.
items[].tax_rate number no expanded normal Item-level tax rate if it differs from tax.default_rate.
items[].line_total_excl_tax number yes expanded normal quantity x unit_price_excl_tax (after line discounts).
items[].line_total_incl_tax number yes core normal Line total after VAT / tax.
items[].discount object no expanded normal Discount applied to this line (already reflected in line totals).
items[].discount.description string no expanded normal Human-readable label ("Summer sale", "Contract price").
items[].discount.amount number no expanded normal Absolute discount per line, in cart currency.
items[].discount.percentage number no expanded normal Discount as a decimal fraction of the RRP (0.15 = 15%).
items[].discount.type string no expanded normal Distinguishes a manually applied discount from an automatic one. Values: automatic, manual, coupon, negotiated, promotion.
items[].product_url string no expanded normal Canonical product page URL.
items[].image_url string no expanded normal Product image URL.
items[].manufacturer string no expanded normal Brand / manufacturer name.
items[].mpn string no expanded normal Manufacturer part number (distinct from merchant SKU).
items[].gtin string no expanded normal Barcode (EAN / UPC), when known. Key for cross-vendor comparison.
items[].availability string no expanded normal Stock availability. Values: in_stock, backorder, preorder, unknown.
items[].min_order_quantity number no expanded normal Minimum orderable quantity (MOQ), common in B2B.
items[].lead_time_days number no expanded normal Quoted lead time in days for backordered / made-to-order items.
items[].price_breaks array no expanded normal Quantity-tiered pricing offered for this item. Essential for B2B comparison and RFQs.
items[].price_breaks[].min_quantity number yes expanded normal Quantity at which this tier's price applies.
items[].price_breaks[].unit_price_excl_tax number no expanded normal Per-unit price at this tier, before tax.
items[].price_breaks[].unit_price_incl_tax number no expanded normal Per-unit price at this tier, after tax.
items[].notes string no expanded normal Free-text line notes.
shipping object no expanded normal Shipping methods and destination.
shipping.ship_to object no expanded personal Destination address (merchant.address shape plus name and address_type).
shipping.ship_to.name string no expanded personal Recipient name.
shipping.ship_to.address_type string no expanded normal Affects carrier options and, sometimes, surcharges. Values: residential, business, warehouse, other.
shipping.ship_to.street string no expanded personal Street address.
shipping.ship_to.city string no expanded personal City.
shipping.ship_to.region string no expanded personal State / province / region.
shipping.ship_to.postal_code string no expanded personal Postal / ZIP code.
shipping.ship_to.country string no expanded personal Country code.
shipping.incoterms string no expanded normal Delivery terms for (international) B2B (ICC Incoterms 2020). Values: EXW, FCA, CPT, CIP, DAP, DPU, DDP, FAS, FOB, CFR, CIF.
shipping.selected_method_id string no expanded normal id of the chosen method from available_methods.
shipping.available_methods array no expanded normal All methods the merchant offered at capture time.
shipping.available_methods[].id string no expanded normal Stable identifier within this file (e.g. "courier-48h").
shipping.available_methods[].name string no expanded normal Display name ("Courier, 2 business days").
shipping.available_methods[].cost_excl_tax number no expanded normal Shipping cost before VAT / tax.
shipping.available_methods[].cost_incl_tax number no expanded normal Shipping cost after VAT / tax.
shipping.available_methods[].estimated_delivery string no expanded normal Free-text or ISO 8601 estimate.
totals object yes core normal Cart-level monetary totals (all in currency).
totals.items_subtotal_excl_tax number yes expanded normal Sum of line totals before tax, before shipping.
totals.items_subtotal_incl_tax number yes expanded normal Sum of line totals after tax, before shipping.
totals.shipping_excl_tax number no expanded normal Cost of the selected shipping method, before tax.
totals.shipping_incl_tax number no expanded normal Cost of the selected shipping method, after tax.
totals.discount_total number no expanded normal Cart-level discounts (already reflected in the grand total).
totals.tax_total number yes expanded normal Total VAT / tax across items and shipping.
totals.grand_total number yes core normal Final amount: items + shipping - discounts, tax included.
totals.amount_pending_payment number yes core normal Amount currently awaiting payment (usually equals grand_total; may differ with deposits / partial payments).
payment object no expanded normal Payment status / expectations.
payment.status string no expanded normal Lifecycle status of the cart / order. Values: cart, quote_requested, po_issued, awaiting_payment, partially_paid, paid.
payment.method string no expanded normal The payment method the buyer has selected or intends to use (a single value drawn from methods_accepted).
payment.terms string no expanded normal Payment terms if known (e.g. "net_30", "net_60", "prepaid", "cod").
payment.methods_accepted array no expanded normal Methods the merchant offers (e.g. ["credit_card", "bank_transfer", "purchase_order"]).
payment.reference string no expanded normal Quote / PO / invoice reference once one exists.
payment.card object no expanded sensitive The payment card the buyer intends to use. Never store full PAN, CVV/CVC, PIN, or full expiry.
payment.card.cardholder_name string no expanded sensitive Name printed on the card.
payment.card.is_business_card boolean no expanded normal true if a business / corporate card, false for a personal card.
payment.card.brand string no expanded normal Card network if known (e.g. "visa", "mastercard", "amex").
payment.card.last4 string no expanded sensitive Last four digits, when a masked reference is needed to disambiguate which card.
notes string no expanded normal Free-text notes (human or agent authored).
extensions object no expanded normal Namespaced vendor / tool-specific data. Consumers must preserve content they don't understand when re-writing a file.