MobileCartItem
One item in the cart.
type MobileCartItem {
acceptAlternativeIfUnavailable: Boolean!
addedAt: DateTime!
blurhash: String
conversionFactor: Float
customerTier: String
discountLabel: String
id: ID!
imageUrl: String
inStock: Boolean!
lineDiscount: Float
lineGross: Float
lineTotal: Float!
maxOrderQuantity: Float
minOrderQuantity: Float
notes: String
orderMultiple: Float
originalUnitPrice: Float
otherDiscountLabel: String
otherDiscountPercentage: Float
productId: ID!
productImageUrl: String
productName: String!
quantity: Float!
quantityTierUnitDiscount: Float
tierDiscountPercentage: Float
tierUnitDiscount: Float
unitLabel: String
unitPrice: Float!
uomId: ID
variantId: ID!
variantLabel: String
}
Fields
MobileCartItem.acceptAlternativeIfUnavailable ● Boolean! non-null scalar
Buyer consent that fulfilment may ship a manually-picked substitute if this line is unavailable. Consent + visibility only — no matching or suggestion logic exists behind it on any surface.
MobileCartItem.addedAt ● DateTime! non-null scalar
When the item was added.
MobileCartItem.blurhash ● String scalar
A placeholder for the image while it loads.
MobileCartItem.conversionFactor ● Float scalar
Base units contained in one of this line's UOM (e.g. 30 for a case of 30 pcs). 1/undefined for the base unit.
MobileCartItem.customerTier ● String scalar
Buyer's effective CUSTOMER/LOYALTY tier key for this line (e.g. GOLD).
MobileCartItem.discountLabel ● String scalar
The name of the discount that applied.
MobileCartItem.id ● ID! non-null scalar
The unique ID of this record.
MobileCartItem.imageUrl ● String scalar
The URL of the product image.
MobileCartItem.inStock ● Boolean! non-null scalar
True when the item is in stock.
MobileCartItem.lineDiscount ● Float scalar
This line's discount — round(exact per-unit discount x quantity). lineGross - lineDiscount can sit one minor unit away from lineTotal on a half-cent line (833.50 - 375.08 = 458.42 against a true net of 458.43); that is the accepted per-line-accuracy trade-off the customer portal makes too, NOT a bug to 'fix' by re-deriving one row from the others.
MobileCartItem.lineGross ● Float scalar
This line's GROSS (pre-discount) amount — round(baseUnitPrice x quantity), computed server-side by the SAME expression the customer portal and admin use. Read it; never re-derive it as unitPrice x quantity on the client (the displayed unit price is rounded to cents and the charged one often is not).
MobileCartItem.lineTotal ● Float! non-null scalar
The line total.
MobileCartItem.maxOrderQuantity ● Float scalar
Largest orderable quantity for this line's UOM. Null/unset = unlimited.
MobileCartItem.minOrderQuantity ● Float scalar
Smallest orderable quantity for this line's UOM (1 = unrestricted).
MobileCartItem.notes ● String scalar
A note on the line.
MobileCartItem.orderMultiple ● Float scalar
Quantity step for this line's UOM (1 = no step restriction).
MobileCartItem.originalUnitPrice ● Float scalar
The price of one unit before a discount.
MobileCartItem.otherDiscountLabel ● String scalar
Joined name(s) of every applied non-tier discount scheme.
MobileCartItem.otherDiscountPercentage ● Float scalar
Combined % from every applied non-tier discount scheme.
MobileCartItem.productId ● ID! non-null scalar
The ID of the product.
MobileCartItem.productImageUrl ● String scalar
The PRODUCT's own image, for surfaces that group lines under a product header (the buyer-app basket does). imageUrl above is the LINE's image and is variant-first by design, so two variants of one product show different photos — but a product-level header showing the first variant's photo is simply the wrong picture next to the product name. Resolved server-side on every cart read/write, never stored on the line, so it is correct for carts that predate this field. Null when the product has no image of its own; callers fall back to imageUrl.
MobileCartItem.productName ● String! non-null scalar
The name of the product.
MobileCartItem.quantity ● Float! non-null scalar
Quantity in the line's pack units. Fractional only for non-count packs (e.g. 1.5 KG), which the portal can add to the shared cart.
MobileCartItem.quantityTierUnitDiscount ● Float scalar
Per-unit saving from a genuine QUANTITY/bulk-order pricing tier (a VariantPrice qty-break, e.g. "3-10 units @ 900") — listUnitPrice minus the tier-resolved baseUnitPrice, BEFORE any customer/scheme discount. Independent of tierUnitDiscount above (which is the customer-tier amount); both can be non-zero on the same line, and their sum plus any other-discount amount equals the total per-unit saving.
MobileCartItem.tierDiscountPercentage ● Float scalar
Effective CUSTOMER/LOYALTY tier discount % applied to this line (not the quantity-break tier).
MobileCartItem.tierUnitDiscount ● Float scalar
Exact per-unit CUSTOMER/LOYALTY tier discount amount (engine-accurate; the bill sums it).
MobileCartItem.unitLabel ● String scalar
The unit of measure.
MobileCartItem.unitPrice ● Float! non-null scalar
The price of one unit.
MobileCartItem.uomId ● ID scalar
UOM the line is ordered in (each/case/carton). Drives the per-unit price resolution and the SalesOrder line UOM so displayed == charged.
MobileCartItem.variantId ● ID! non-null scalar
The ID of the product variant.
MobileCartItem.variantLabel ● String scalar
The label of the variant.
Member Of
MobileCart object