Qué incluye este ejemplo
- Ambas bases comparten los grupos
sizeycrust. Cada opción lista enproduct_idslos productos de las dos pizzas. - Las pizzas grandes tienen el grupo de modificadores
extra-toppings; las medianas no tienen ninguno. Los grupos de modificadores van en los productos variante, nunca en la base. - Las opciones de tamaño tienen imagen y descripción; las de masa no.
Qué ve el cliente
Tomando como ejemplo la pizza hawaiana:- La tarjeta muestra Desde $12.99. Como se omitió el precio desde, la sincronización lo calculó a partir de la variante seleccionable más barata (
haw-m-thin). - El detalle pregunta primero Tamaño y luego Masa, y muestra los grupos de modificadores solo cuando la variante ya está resuelta.
- Al elegir Grande, Delgada desaparece porque no existe la hawaiana grande delgada. Como Gruesa queda como única opción, se selecciona automáticamente.
- Al elegir Mediana, Gruesa sigue visible pero deshabilitada porque
haw-m-thickestá agotado. - La línea del carrito es
haw-l-thicka $17.99, más los toppings extra. La basehawaiiannunca aparece en un pedido.
Request
variants.json
Puntos clave
- La base abre las preguntas.
hawaiiandefinepricing.variant_group_ids: ["size", "crust"]y deja vacíomodifier_group_ids. - El precio de la base nunca se cobra. Aquí las bases usan
price: 0, así que la tarjeta muestra el precio Desde calculado (las tarjetas lo muestran cuandostarting_pricees mayor queprice). - Cada producto variante dice cómo se selecciona.
haw-l-thickdefinepricing.variants: [{ "product_id": "hawaiian", "variant_group_option_ids": ["large", "thick"] }], con una opción de cada grupo de la base. - Cada opción lista sus productos. La opción
largelista todas las pizzas grandes de ambas bases. La sincronización rechaza el payload si una opción y elpricing.variantsde un producto no coinciden. - Las combinaciones que no existen simplemente se omiten. No hay
haw-l-thin, así que el cliente no puede llegar a esa combinación. - Solo las categorías listan la base. Los productos variante no están en ninguna categoría; entran al menú porque una base del menú apunta a ellos.
- Un producto puede ser variante de varias bases. Agrega una entrada en
pricing.variantspor cada base, cada una con sus opciones.
Relacionado
Productos — variantes
Conceptos y reglas de validación
Grupos de modificadores multinivel
Extras que se suman a un producto