Skip to main content

Pilas

Economy v2 ya está disponible con carácter general. Para obtener soporte técnico y enviar comentarios, vaya al foro de PlayFab.
El servicio de inventario de Economy V2 introduce el concepto de pilas, que puede agregar mayor flexibilidad y compatibilidad para sus necesidades de inventario. Las pilas permiten que existan instancias separadas y distintas del mismo artículo dentro del mismo inventario. Esta característica permite escenarios de organización dentro del juego, la posibilidad de establecer distintas propiedades de artículo, ¡y mucho más! Los artículos con el mismo Id se pueden almacenar como pilas del artículo, cada una con su propia cantidad y diferenciadas por StackId. Si no se especifica, las acciones de inventario suelen usar la pila predeterminada con el StackId: default. La pila predeterminada se puede eliminar. La próxima vez que se produzca una adición o transferencia sin un StackId (o que use el StackId predeterminado), la pila predeterminada se vuelve a crear

Administración de inventarios y pilas

A continuación se ofrece un desglose detallado de las API de inventario y sus interacciones con las pilas.

Adición de artículos al inventario

En la API AddInventoryItems, puede definir un StackId en el parámetro Item. Este parámetro define la pila que se está incrementando o el identificador de la nueva pila que se está creando. Un ejemplo de solicitud AddInventoryItems con un StackId:
La solicitud anterior crearía una pila completamente nueva del artículo con una cantidad de 5 y un StackId de NewStack, o bien agregaría 5 a la pila NewStack existente si ya existiera

Sustracción de artículos del inventario

En la API SubtractInventoryItems, el StackId se usa para definir de qué pila se sustrae. Además, hay un valor booleano DeleteEmptyStacks que se puede establecer y que elimina la pila si la cantidad sustraída hace que la pila tenga una cantidad de 0. Intentar sustraer de una pila más de la cantidad actual de la pila generará un error. Un ejemplo de solicitud SubtractInventoryItems con StackId:
La solicitud anterior sustraería 5 de la pila con el identificador NewStack y eliminaría la pila si tuviera exactamente una cantidad de 5.

Actualización de artículos del inventario

En la API UpdateInventoryItems, puede definir un StackId en el parámetro Item. Este parámetro define la pila que se está actualizando o el identificador de la nueva pila que se está creando. Un ejemplo de solicitud UpdateInventoryItems:
La solicitud anterior crearía una pila completamente nueva del artículo con una cantidad de 5 y un StackId de NewStack, o bien establecería la cantidad de NewStack en 5 si ya existiera

Eliminación de artículos del inventario

La API DeleteInventoryItems se usa para eliminar una pila completa de artículos del inventario de un jugador. Se puede proporcionar un StackId para definir la pila específica del artículo que se va a eliminar. Un ejemplo de solicitud DeleteInventoryItems:

Compra de artículos de inventario

La API PurchaseInventoryItems usa el precio del artículo definido en el catálogo, deduce el costo del inventario del jugador y lo intercambia por la cantidad deseada del artículo. Debe especificar el Item que quiere comprar y el Amount del artículo que quiere comprar. Cuando realiza compras con pilas, hay algunos parámetros relevantes:
  • Para PriceAmounts, puede definir un StackId opcional para cada artículo del precio (es decir, los artículos que se gastan) para definir de qué pila se deducirán los artículos gastados
  • Para el objeto Item, puede definir un StackId opcional que representa la pila en la que se colocarán los artículos recibidos
  • Hay un valor booleano DeleteEmptyStacks que se puede establecer y que elimina la pila si la cantidad sustraída hace que la pila tenga una cantidad de 0.
Para obtener más información sobre la compra de artículos, consulte PurchaseInventoryItems.
Un ejemplo de solicitud PurchaseInventoryItems con pilas:

Transferencia de artículos de inventario

Cuando usa la API TransferInventoryItems con pilas, hay algunos parámetros relevantes:
  • En el objeto GivingItem, puede definir un StackId opcional que representa la pila de la que se tomarán los artículos entregados
  • En el objeto ReceivingItem, puede definir un StackId opcional que representa la pila en la que se colocarán los artículos recibidos
  • Hay un valor booleano DeleteEmptyStacks que se puede establecer y que elimina la pila si la cantidad de GivingItem hace que la pila tenga una cantidad de 0
Un ejemplo de solicitud TransferInventoryItems con pilas:

API ExecuteInventoryOperations

Puede usar los parámetros StackId y DeleteEmptyStacks en los objetos Operation de la API ExecuteInventoryOperations. Estos parámetros le permiten agrupar por lotes varias operaciones de inventario mediante pilas. Un ejemplo de solicitud ExecuteInventoryOperations con pilas:

Adición de propiedades personalizadas con DisplayProperties y NewStackValues

Puede establecer propiedades de artículo personalizadas en los artículos del inventario con el parámetro DisplayProperties. El establecimiento de propiedades se puede realizar en las API AddInventoryItems, PurchaseInventoryItems y TransferInventoryItems, pero solo cuando se crea una pila nueva. Para establecer propiedades de presentación en artículos nuevos, se debe establecer el parámetro NewStackValues en la solicitud de la API. Un ejemplo de solicitud AddInventoryItems con NewStackValues:
Para actualizar las propiedades de presentación de artículos existentes, se puede usar la API UpdateInventoryItems para modificar directamente las propiedades.
Última modificación el 28 de agosto de 2026