Skip to main content
Una sola forma de objeto fluye por todo el SDK. Es lo que getCart() devuelve, lo que cart_loaded y cart_updated entregan a tu handler, y lo que recibe un bloque Custom code.
Todo el dinero está en la unidad menor de la moneda (centavos para USD), nunca una cadena formateada. 5779 es $57.79. Usa formatMoney para mostrarlo.

El carrito

itemCount no siempre es la suma de items. items refleja el carrito real de Shopify, incluyendo líneas de complemento que el drawer oculta, como la protección de envío. itemCount es el número visible para el comprador que coincide con la insignia del carrito. Para “cuántas cosas ha elegido el comprador”, usa itemCount; para iterar sobre las líneas que el carrito está renderizando, usa items.Dos cosas faltan por completo en items: las líneas ocultas con setHidden, y los hijos de bundle, que se mueven a su ancla. Ambos siguen contando para los totales del carrito, que vienen directamente de Shopify.

Líneas del carrito

Cada entrada en items, y el item en item_added e item_removed:
properties puede llevar entrada proporcionada por el comprador, como el campo de texto personalizado de un formulario de producto. Renderízalo como texto, nunca como HTML sin procesar.

Identificar una línea

Usa key para cualquier cosa que actúe sobre una línea, y variantId o productId para cualquier cosa que identifique un producto:
La misma variante puede aparecer en varias líneas cuando las propiedades difieren. Dos tazas grabadas con distinto texto de grabado son dos líneas que comparten un mismo variantId. Por eso las acciones toman key.

Precios en una línea

Tres precios, fáciles de confundir:

Bundles

Cuando las líneas se agrupan en un bundle, la línea ancla lleva un objeto bundle. Los hijos se pliegan dentro de él y ya no aparecen en items por su cuenta. Consulta Agrupar líneas de bundle de otra app para ver cómo se configura la agrupación. Cada hijo lleva key (null para un componente nativo), title, variantTitle, quantity, perAnchorQty, imageUrl, finalLinePrice, originalLinePrice y compareAtPrice.

Planes de suscripción

El plan activo de una línea es sellingPlan, o null para una compra única. Para una respuesta a nivel de todo el carrito, lee hasSubscriptionItems en lugar de escanear las líneas tú mismo, ya que también cuenta líneas de complemento que items presenta pero itemCount omite:
Los planes disponibles en una línea, los del selector, no están en el objeto cart. Dales forma con registerSubscriptionOptionsTransform y registerDefaultSubscriptionOptionSelector.

Adónde ir después

  • Acciones: lee y cambia el carrito.
  • Eventos: de dónde viene este objeto.
  • Hooks: agrega tus propios datos a una línea con un enriquecedor.
  • Casos de uso: soluciones completas que leen estos campos.