Skip to main content

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