Resumen del esquema ItemDef
Esquema principal y tipos de artículos
Estas son las propiedades principales que Steam comprende y puede interpretar, y son necesarias para el correcto funcionamiento de la economía, los intercambios y la visualización del inventario. La mayoría de estas propiedades son las mismas que devuelve la Web API
ISteamEconomy/GetAssetClassInfo.
El ItemDef tiene que ser de uno de los siguientes tipos:
Nombre | Descripción |
item | un tipo de artículo que se puede encontrar en el inventario de un jugador. |
bundle | Representa una colección de ItemDef, con una cantidad asociada de cada tipo. Cuando se otorga este artículo, se expande automáticamente en el conjunto de artículos configurados en la propiedad bundle . |
generator | Representa un artículo aleatorio. Al otorgar este artículo, se seleccionará aleatoriamente un tipo de artículo de la propiedad bundle y se creará una instancia de ese tipo. (Por ejemplo: imagina cuando se desbloquea una caja y luego se crea uno de los posibles artículos) |
playtimegenerator | Es una forma especial de generator que se puede otorgar mediante la llamada a ISteamInventory::TriggerItemDrop desde la aplicación. |
tag_generator | Definición especial de artículos que aplica etiquetas a instancias de artículos (consulta Etiquetas de artículos de inventario de Steam para obtener más detalles). |
Dirígete
más abajo para obtener detalles sobre cómo especificar tipos de artículos complejos.
Propiedades de ItemDef
Nombre | Descripción |
appid | Identificador de tu aplicación |
name | El nombre en inglés de tu artículo. Se pueden incluir versiones traducidas del nombre del artículo usando el siguiente ejemplo como pauta: name_english: "Hat"
name_spanish: "Sombrero"
Consulta la documentación de Localización e idiomas para conocer los nombres de idiomas válidos para usar como sufijo. |
description | La descripción en inglés de tu artículo. Puedes proporcionar versiones localizadas de la descripción de tu artículo utilizando el siguiente ejemplo como guía: description_english: "This is a tall hat"
description_spanish: "Este es un sombrero de copa"
Consulta la documentación de Localización e idiomas para conocer los nombres de idiomas válidos para usar como sufijo. |
display_type | La descripción en inglés del "tipo" de artículo. Puedes proporcionar versiones localizadas del tipo de tu artículo utilizando el siguiente ejemplo como guía: display_type_english: "Weapon"
display_type_spanish: "Arma"
Consulta la documentación de Localización e idiomas para conocer los nombres de idiomas válidos para usar como sufijo. |
itemdefid | El id. de este itemdef. Debe ser inferior a 1 000 000 para artículos que no sean de Workshop. |
type | Valor interno. ('item' | 'bundle' | 'generator' | 'playtimegenerator' | 'tag_generator') |
bundle | (Mira lotes y generadores de artículos más abajo). |
promo | (Mira el formato de promociones más abajo). |
drop_start_time | Marca de tiempo UTC: previene las concesiones de promociones antes de este tiempo, solo aplica cuando promo = manual (mira formato de promociones más abajo). |
exchange | (Mira el formato de intercambio más abajo). |
price | (Mira el formato de los precios más abajo). |
price_category | Un precio preestablecido, donde manejamos los distintos valores de moneda para ti. (Mira el formato de los precios más abajo). |
background_color | El color del fondo del inventario, en formato hexadecimal. |
name_color | El color del nombre del inventario, en formato hexadecimal. |
icon_url | La dirección URL del icono pequeño del artículo. El URL debe ser accesible públicamente porque los servidores de Steam lo descargarán y lo guardarán en caché. El tamaño recomendado es de 200 x 200 píxeles. |
icon_url_large | La dirección URL de la imagen grande del artículo. El URL debe ser accesible públicamente porque los servidores de Steam la descargarán y la guardarán en caché. El tamaño recomendado es de 2048 x 2048 píxeles. |
marketable | false/true. Determina si se puede vender el artículo a otros usuarios en el Mercado de la comunidad de Steam. |
tradable | false/true. Determina si se puede intercambiar el artículo con otros usuarios utilizando intercambios de Steam. |
tags | (Consulta Etiquetas de artículos de inventario de Steam). |
tag_generators | Lista de los identificadores de definición de artículos de tag_generator para aplicar (consulta Etiquetas de artículos de inventario de Steam). |
tag_generator_name | Nombre del token de la categoría de etiqueta (consulta Etiquetas de artículos de inventario de Steam) |
tag_generator_values | Lista de valores de etiquetas y la posibilidad de que sean seleccionados (consulta Etiquetas de artículos de inventario de Steam) |
store_tags | Cadena con "etiquetas" delimitada por ";". Estas etiquetas se utilizarán para ordenar por categorías o filtrar los artículos en la tienda de artículos de Steam para la aplicación. |
store_images | Los URL de las imágenes, delimitados por ";". Estas imágenes se entregan mediante proxy y se utilizan en la página de detalles de la tienda de artículos de Steam de tu aplicación. |
game_only | false/true. Si el valor es true, los artículos no se mostrarán en la mochila de Steam, incluyendo las notificaciones de nuevos artículos. Usos comunes en este caso: artículos que otorgas, que se consumen inmediatamente. |
hidden | false/true. Si el valor es true , los clientes no verán la definición del artículo ni podrán comprarlo. Esto se utiliza para ocultar los ItemDef que no se usan o no se han terminado de desarrollar. |
store_hidden | false/true. Si el valor es true, este artículo se ocultará en la tienda de artículos de Steam de tu aplicación. Por defecto, se mostrará cualquier artículo con un precio. |
use_drop_limit | false/true. Si es true, usaremos drop_limit para limitar la concesión de artículos a través de ISteamInventory::TriggerItemDrop. (Consulta el apartado Entrega de artículos por tiempo de juego más abajo). |
drop_limit | Entero. Limita la cantidad de veces que este artículo se entregará a un usuario específico mediante ISteamInventory::TriggerItemDrop. Si se fija en cero, se evitará cualquier futura entrega de este artículo. (Consulta el apartado Entrega de artículos por tiempo de juego más abajo). |
drop_interval | Entero. Tiempo de juego en minutos antes de que el artículo pueda ser otorgado al usuario. (Consulta el apartado Entrega de artículos por tiempo de juego más abajo). |
use_drop_window | false/true. Si es true, usaremos «drop_window» para este ItemDef. (Consulta el apartado Entrega de artículos por tiempo de juego más abajo). |
drop_window | Entero. Tiempo (en minutos) que tendrá que transcurrir antes de que concedamos un artículo. (Consulta el apartado Entrega de artículos por tiempo de juego más abajo). |
drop_max_per_window | Entero. Número de veces que se puede otorgar el artículo, dentro del plazo disponible hasta que se reinicie el contador. El valor predeterminado es 1. (Consulta el apartado Entrega de artículos por tiempo de juego más abajo). |
granted_manually | false/true. Si el valor es true, solo se otorgará cuando se llame a las funciones AddPromoItem() o AddPromoItems() con el id. de definición del artículo explícito. En caso contrario, se puede otorgar por medio de la llamada a GrantPromoItems(). Por defecto: false. |
use_bundle_price | false/true. Mira el apartado Venta de lotes más abajo. Por defecto: false. |
auto_stack | false/true. Si es true, las concesiones de objetos se añadirán automáticamente a una pila del tipo dado. Las concesiones aparecerán en el resultado de funciones callback de inventario a medida que cambie la cantidad. Por defecto: false. |
Esquema ampliado
Se pueden definir también otras propiedades cualesquiera que se necesiten en el juego.
Uso de definiciones de artículos complejas
Tipos de lotes y generadores de artículos
Las reglas para lote, generador y generador por tiempo de juego se definen en el campo
bundle
.
En el caso de los lotes, se describen el tipo y cantidad de artículos que contienen.
En el de los generadores o generadores por tiempo de juego, se describen los tipos de artículos que se pueden generar, así como el peso relativo de cada uno. No es necesario que los pesos sumen 100 en total, aunque puede ser conveniente.
El campo
bundle
se expresa como una serie de recetas de artículos separadas por ";". Cada receta consta de un id. de ItemDef, al que siguen de manera opcional un separador "x" y la cantidad deseada.
Si no se especifica la cantidad, se usa "1" por defecto.
Formato de los lotes
bundle_def : item_recipe , { ";" , item_recipe }
item_recipe : item_def , []
Ejemplos de lotes
- Concede un artículo ItemDef 201, otro ItemDef 202 y otro ItemDef 203:
type: bundle
bundle: 201;202;203
- Concede una instancia de ItemDef 101 y cinco de ItemDef 102:
type: bundle
bundle: 101x1;102x5
- 90 % de probabilidades de que conceda un artículo ItemDef 501, 9 % del ItemDef 502 y 1 % del ItemDef 503:
type: generator
bundle: 501x90;502x9;503x1
- Un 90 % de que conceda un artículo común; un 10 % de que sea uno especial.
itemdefid: 600
name: Common generator
type: generator
bundle: 601;602;603;604;605
itemdefid: 700
name: Special generator
type: generator
bundle: 701;702;703;704;705
itemdefid: 800
name: Master generator
type: generator
bundle: 600x9;700x1
Como se puede ver en el último ejemplo, se pueden encadenar las definiciones de lote y de generador. En el momento en que se otorgan, todos los artículos complejos de cualquier tipo se expanden repetidas veces hasta que solo quedan ItemDef sencillos.
Fórmulas de intercambio
La API ExchangeItems te permite definir recetas de fabricación o transformación de artículos que se pueden llamar de manera segura desde el cliente. Los servidores de Steam comprobarán el inventario del jugador y consumirán de manera atómica los materiales dados y otorgarán el artículo objetivo si se cumplen los requisitos.
El artículo objetivo puede ser de tipo lote o generador.
La fórmula se especifica en el campo
exchange
del artículo objetivo. La fórmula se especifica como un conjunto de una o más
recetas separadas por punto y coma.
Cada receta es un conjunto de artículos
materiales requeridos, separados por comas.
Los materiales requeridos se pueden indicar explícitamente en el id. de ItemDef (itemdefid) o en la etiqueta (tag). Si no se indica la cantidad, tomará como valor 1.
Al usar ExchangeItems, el autor de la llamada facilita una lista de artículos materiales para ser intercambiados por el artículo especificado. El servidor comprueba cada receta y elige la primera que se corresponde con la lista de materiales proporcionados.
Los intercambios son flexibles: con estas fórmulas se puede lograr usar una llave para abrir una caja, construir un artículo sofisticado a partir de piezas de componentes y reciclar y actualizar artículos.
Formato de intercambio
<exchange>: <recipe> { ";" <recipe> }
<recipe>: <material> { "," <material> }
<material>: <item_def_descriptor> / <item_tag_descriptor>
<item_def_descriptor>: <itemdefid> []
<item_tag_descriptor>: <tag_name> ":" <tag_value> []
Si no se especifica explícitamente, la cantidad requerida es 1.
Ejemplo de intercambio
// requiere uno de:
// - un artículo#100 y un artículo#101; o,
// - cinco de artículo#102; o,
// - 3 de artículo#103 y tres de artículo#104.
"exchange":"100,101;102x5;103x3,104x3"
// requiere de un guante izquierdo y un guante derecho:
"exchange":"handed:left,handed:right"
// requiere tres árboles más algo elegante:
"exchange":"type:tree*3,quality:fancy"
// requiere de cualquiera de los dos:
// - artículo#201 y artículo#202; o,
// - un artículo con sabor a plátano y un objeto pesado
"exchange":"201x1,202x1;flavor:banana,mass:heavy"
// recicla cinco artefactos "comunes" para obtener un artefacto "especial" :
{
"name":"special_generator",
"type":"generator",
"tags":"rarity:special",
"bundle":....,
"exchange":"rarity:common*5",
...
}
Artículos promocionales
Se pueden otorgar artículos promocionales a los jugadores basándose en diferentes criterios:
- Posesión de un id. de aplicación (incluidos los de DLC).
- Un logro.
- Tiempo de juego en un id. de aplicación.
- De forma manual: el cliente debe realizar una llamada a AddPromoItem con el id. del artículo concreto.
Steam realiza las verificaciones de los artículos promocionales, por lo que estos artículos se pueden solicitar de manera segura al cliente; echa un vistazo a:
ISteamInventory::AddPromoItem. Para definir un artículo promocional, hay que establecer una o más reglas de concesión en la propiedad "promo" de la definición del artículo.
Un artículo promocional también puede ser un lote.
Además, los artículos promocionales que se otorgan de manera manual pueden tener intervalos de aparición. Por ejemplo, puede usarse para regalar algunos artículos cada semana si el jugador completa determinadas tareas (como misiones en el juego). Para utilizar esta función, establece los valores de
drop_start_time
y
drop_interval
en el ItemDef.
No se otorgan artículos promocionales al tener un juego gratuito de forma temporal (por un fin de semana gratis o a través del préstamo familiar, etc.).
Formato de las reglas de las promociones
<promo>: <rule> { ";" <rule> }
<rule>: app_rule / ach_rule / played_rule / manual_rule
<app_rule>: "owns:" <appid>
<ach_rule>: "ach:" <achievement name>
<played_rule>: "played:" <appid>/<minutes played, defaults to 1>
<manual>: "manual"
Ejemplos de promociones
// definiciones de regla de promoción simple:
"promo":"owns:440;owns:480"
// ha jugado al menos 15 minutos en el id. de aplicación 570:
"promo":"played:570/15"
// artículo consumible que puede ser otorgado una vez por semana:
"itemdefid": 404,
"type": "item",
"name": "Weekly Quest Item",
"promo": "manual",
"drop_start_time": "20170801T120000Z",
"drop_interval": 10080,
...
Hora de inicio de aparición
Al establecer una hora de inicio para la aparición de los artículos de la promoción, se evita que se otorguen antes de tiempo. Esto permite poner en funcionamiento el código que otorga el artículo antes de la hora establecida. El horario debe especificarse en el formato ISO 8601 en la zona horaria UTC:
YYYYMMDDTHHMMSSZ
. Por ejemplo:
20050515T171151Z
.
Entrega de artículos por tiempo de juego
La característica de entrega de artículos por tiempo de juego permite a los servidores de Steam llevar el seguimiento y control de los artículos que se conceden basándose en el tiempo de juego del usuario. Tu juego solo necesita llamar a la función
ISteamInventory::TriggerItemDrop cuando crees que debería ocurrir una concesión. Debes crear elementos del tipo "playtimegenerator" para realizar la entrega.
La concesión por tiempo de juego la controla tu aplicación. No es posible hacer concesiones automáticas que se basen únicamente en el tiempo de juego del usuario. En otras palabras, el tiempo de juego es una condición para la concesión, mientras que la aplicación es la que desencadena la evaluación de esta concesión.
La frecuencia de apariciones de artículos se puede controlar desde el Administrador de datos de la aplicación en Comunidad > Servicio de inventario > Concesiones de artículos por tiempo de juego. Hay tres controles que permitirán la siguiente personalización:
(1) ¿Cuánto falta para que aparezca un artículo?
(2) ¿Cuántos artículos aparecen por intervalo? Y,
(3) ¿Cuánto hay que esperar antes de conceder otro artículo?
Estos mismos controles existen para cada ItemDef. Los valores establecidos para el artículo reemplazarán cualquier ajuste de la aplicación para ese artículo en concreto. De esta forma, cada artículo puede tener su propia frecuencia de aparición, el máximo por intervalo y el tiempo hasta la siguiente concesión.
Cada concesión del generador por tiempo de juego será rastreada por separado si se especifica alguna de las configuraciones de aparición ('drop_interval', 'use_drop_window', 'drop_window', 'drop_max_per_window' ). En otras palabras, si el ItemDef
NO tiene ninguna configuración de aparición, compartirá las apariciones de todos los otros generadores por tiempo de juego que tampoco la tengan, y todas están limitadas por el intervalo de aparición de la aplicación. Por el contrario, si el ItemDef
especifica explícitamente algún ajuste de aparición, sus apariciones se controlarán de forma separada en el nivel del generador, con independencia de la aplicación y de otros ItemDef generadores por tiempo de juego.
Ejemplo de concesión de ItemDef por tiempo de juego
- Permite que el usuario obtenga un artículo transcurridos 30 minutos de juego. Una desventaja de esta configuración por sí sola es que permite
acumular ese artículo, ya que cada 30 minutos se les otorgará un artículo por tiempo de juego. Te recomendamos encarecidamente que configures un intervalo de aparición:
"drop_interval" : 30
- Limita las apariciones a solo una por día tras 30 minutos de tiempo de juego. Esto recompensa a tus jugadores todos los días cuando vuelven a jugar tu título.
"drop_interval" : 30,
"use_drop_window" : "true",
"drop_window" : "1440"
- Permite que el usuario obtenga tres artículos cada día si juega al menos 90 minutos. No es necesario que los minutos sean seguidos. Esto recompensa el pasar más tiempo jugando.
"drop_interval" : 30,
"use_drop_window" : "true",
"drop_window" : "1440",
"drop_max_per_window" : "3"
Si falta algún ajuste de ItemDef, se usará el ajuste definido en la aplicación.
Límites de aparición
La variable
drop_limit
permite un máximo de tiempo de juego para un generador específico.
Puedes usarla para limitar las veces que se genera un artículo (por ejemplo: solo la primera vez que ganan el juego en
Dificultad legendaria).
Alternativamente, se puede usar para evitar futuras apariciones de un artículo obsoleto si el valor se establece en cero. Solo reconocemos esta configuración si
use_drop_limit
se establece en "true".
Venta de artículos
Para que ciertos artículos del juego se puedan poner a la venta, simplemente define los precios o las categorías de precios en los ItemDefs que correspondan.
Consulta la documentación de la a
Tienda de artículos para obtener más información sobre cómo habilitar y personalizar tu página de tu tienda.
Especificación de precios
Los precios de los artículos pueden definirse en cualquiera de los siguientes campos, pero no en ambos.
Nombre | Descripción |
price | Define un precio concreto para cada divisa. Cualquier divisa no definida se convertirá automáticamente en el momento de la compra. |
price_category | Define un precio, que se presentará en todas las divisas compatibles por medio de una tabla de precios gestionada por Valve. |
El campo
price_category
se especifica en la divisa especial "VLV". VLV100 equivale a 0.99 USD, y se convierte a todas las divisas compatibles usando los tipos de cambio de Valve.
Gestionamos con el máximo cuidado los tipos de cambio para adaptarnos a las fluctuaciones de las divisas. Actualizamos los precios cuando es necesario, aunque permitimos fluctuaciones pequeñas para garantizar a nuestros usuarios precios estables y brindarles una experiencia de usuario mejor.
Formato de los precios
Precio: <version>;<pricelist>
Versión: "1"
<pricelist> : <originalprice>(;<price>)*
<originalprice>: <currency><integer>(,<currency><integer)*
<price>: (<daterange>)<currency><integer>(,<currency><integer)*
<currency> 3 letras como "USD"
<integer> importe en unidades específicas de la moneda
<daterange>: YYYYMMDDTHHMMSSZ-YYYYMMDDTHHMMSSZ
<daterange>
debe tener exactamente 33 caracteres.
La lista de rangos de fechas debe estar en orden decreciente (primero las fechas futuras).
Ejemplos de precios
-
price_category: 1;VLV100
Categoría de precio preestablecida utilizando la tabla de precios mantenida por Valve.
-
price: 1;USD100
(1.00 USD)
-
price: 1;USD100,EUR080
(1.00 USD o 0.80 en euros)
-
price: 1;USD100,EUR080;20130607T080000Z-20130606T080000ZUSD50,EUR40
(1 USD o 0.80 en euros, excepto desde el 6/6/2013 cuando el precio se reduce a 0.50 USD / 0.40 euros)
-
price: 1;USD100,EUR080;20130609T080000Z-20130606T080000ZUSD50,EUR40
(1 USD o 0.80 en euros, excepto del 6/6/2013 hasta el 6/9/13 cuando el precio se reduce a 0.50 USD / 0.40 euros)
Venta de lotes
Los lotes de artículos se pueden poner a la venta en la tienda de artículos. El lote se expandirá al finalizar la compra para que el usuario vea la lista de lo que recibe. La política de reembolsos de Steam permite reembolsar los precios de las compras con algunas limitaciones temporales, pero todos los artículos del paquete deben permanecer en el inventario del jugador sin ninguna modificación.
Precios del lote
Cuando se valora un lote, hay algunos pasos adicionales a considerar. Steam utiliza los precios del artículo individual dentro del lote para determinar el precio del lote, y para asignar los ingresos del lote proporcionalmente. Esta asignación determinará el valor de los pagos de los colaboradores del Workshop. Un lote puede mezclar fácilmente el contenido de diferentes colaboradores del Workshop, o incluir contenido de este con tu propio contenido.
Para asignar precio a un lote de artículos:
- Especifica la información del precio para cada artículo del lote.
- Si alguno de los artículos contenidos no debería estar disponible para la venta individual, configura
store_hidden
a "true" para esos artículos.
- Establece el campo
price
o price_category
del lote en un precio simple (como VLV0).
Este precio no se utilizará en la tienda, pero es necesario indicar a la tienda de artículos que este es un artículo vendible.
- Opcionalmente, configura
purchase_bundle_discount
en un porcentaje de descuento para el lote.
Si lo prefieres, puedes especificar un precio del lote exacto en cada moneda. Sobrescribir el precio del lote ignorará cualquier valor especificado en
purchase_bundle_discount
. Sin embargo, los precios de los artículos individuales todavía se utilizan para asignar proporcionalmente los ingresos del lote, por lo que deben proporcionarse.
Para sobreescribir el precio del lote automático:
- Especifica el precio deseado en el campo
price
o price_category
del lote.
- Establece
use_bundle_price
a true
para el artículo de lote.
Venta de artículos de tipo "generator"
No intentes vender artículos del tipo
generator
directamente en la tienda de artículos.
Para vender un artículo con un componente aleatorio (un cofre), debes definir el artículo del cofre como de tipo
item
simple. A continuación se crea un generador que acepta el cofre como entrada para una receta de intercambio.
Después de la compra, el jugador puede elegir "abrir" el cofre, en cuyo momento puedes llamar a
ISteamInventory::ExchangeItems para ejecutar el generador. Una vez abierto el cofre, no se podrá reembolsar su precio.
Tabla de precios preestablecidos en VLV
Estos son los valores posibles actualmente que puedes usar para especificar en price_category el precio de tu artículo.
Nombre | Precio en USD |
VLV25 | 0.25 USD |
VLV50 | 0.49 USD |
VLV75 | 0.75 USD |
VLV100 | 0.99 USD |
VLV150 | 1.49 USD |
VLV200 | 1.99 USD |
VLV250 | 2.49 USD |
VLV300 | 2.99 USD |
VLV350 | 3.49 USD |
VLV400 | 3.99 USD |
VLV450 | 4.49 USD |
VLV500 | 4.99 USD |
VLV550 | 5.49 USD |
VLV600 | 5.99 USD |
VLV650 | 6.49 USD |
VLV700 | 6.99 USD |
VLV750 | 7.49 USD |
VLV800 | 7.99 USD |
VLV850 | 8.49 USD |
VLV900 | 8.99 USD |
VLV950 | 9.49 USD |
VLV1000 | 9.99 USD |
VLV1100 | 10.99 USD |
VLV1200 | 11.99 USD |
VLV1300 | 12.99 USD |
VLV1400 | 13.99 USD |
VLV1500 | 14.99 USD |
VLV1600 | 15.99 USD |
VLV1700 | 16.99 USD |
VLV1800 | 17.99 USD |
VLV1900 | 18.99 USD |
VLV2000 | 19.99 USD |
VLV2500 | 24.99 USD |
VLV3000 | 29.99 USD |
VLV3500 | 34.99 USD |
VLV4000 | 39.99 USD |
VLV4500 | 44.99 USD |
VLV5000 | 49.99 USD |
VLV6000 | 59.99 USD |
VLV7000 | 69.99 USD |
VLV8000 | 79.99 USD |
VLV9000 | 89.99 USD |
VLV10000 | 99.99 USD |
Ejemplo del esquema ItemDef:
{
"appid": 480,
"items": [
{
"itemdefid": 10,
"type": "playtimegenerator",
"bundle": "100x100;101x50;102x25;103x2;110x20;111x20;120x5;121x3",
"name": "Drop Generator",
"name_color": "7D6D00",
"background_color": "3C352E",
"item_slot": "generator",
"icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png",
"icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png",
"tradable": false,
"marketable": false
},
{
"itemdefid": 100,
"type": "item",
"name": "Hat decoration",
"description": "Hat decoration description",
"price": "1;USD99",
"name_color": "7D6D00",
"background_color": "3C352E",
"item_slot": "decoration",
"icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png",
"icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png",
"tradable": true,
"marketable": true
},
{
"itemdefid": 200,
"type": "item",
"price": "1;VLV100",
"name_english": "Red Hat",
"name_german": "Roter Hut",
"description_english": "Red Hat",
"description_german": "Roter Hut",
"store_tags": "hat;featured",
"icon_url": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png",
"icon_url_large": "http://cdn.beta.steampowered.com/apps/440/icons/c_fireaxe_pyro_xmas_large.fa878752e1aa09a721a03042a234063b6c929278.png",
"tradable": true,
"marketable": true
}
]
}