[{"data":1,"prerenderedAt":749},["ShallowReactive",2],{"navigation":3,"/docs/concepts/attributes":174,"/docs/concepts/attributes-description":738},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"Docs",false,"/docs","docs",[10,14,37,60,98,106,137,159],{"title":11,"path":7,"stem":12,"icon":13},"Landing","docs/index","lucide:house",{"title":15,"path":16,"stem":17,"children":18,"icon":6},"Concepts","/docs/concepts","docs/concepts/1.index",[19,21,25,29,33],{"title":20,"path":16,"stem":17},"Introduction",{"title":22,"path":23,"stem":24},"External IDs","/docs/concepts/xids","docs/concepts/2.xids",{"title":26,"path":27,"stem":28},"Attributes","/docs/concepts/attributes","docs/concepts/attributes",{"title":30,"path":31,"stem":32},"Barcodes","/docs/concepts/barcodes","docs/concepts/barcodes",{"title":34,"path":35,"stem":36},"Capabilities","/docs/concepts/capabilities","docs/concepts/capabilities",{"title":38,"icon":6,"path":39,"stem":40,"children":41},"Configuration","/docs/configure","docs/configure/index",[42,43,47,51,56],{"title":20,"path":39,"stem":40},{"title":44,"path":45,"stem":46},"Devices","/docs/configure/devices","docs/configure/devices",{"title":48,"path":49,"stem":50},"Pack Stations","/docs/configure/pack-stations","docs/configure/pack-stations",{"title":52,"path":53,"stem":54,"icon":55},"Packaging","/docs/configure/packaging","docs/configure/packaging","lucide:package",{"title":57,"path":58,"stem":59},"Quarantine Locations","/docs/configure/quarantine-locations","docs/configure/quarantine-locations",{"title":61,"icon":6,"path":62,"stem":63,"children":64},"Developers","/docs/developer","docs/developer/index",[65,66,91],{"title":61,"path":62,"stem":63},{"title":67,"path":68,"stem":69,"children":70,"icon":90},"API","/docs/developer/graphql","docs/developer/graphql/1.index",[71,74,78,82,86],{"title":72,"path":68,"stem":69,"icon":73},"Overview","lucide:rocket",{"title":75,"path":76,"stem":77},"Getting started with the Jungle API","/docs/developer/graphql/getting-started","docs/developer/graphql/2.getting-started",{"title":79,"path":80,"stem":81},"API Keys","/docs/developer/graphql/obtaining-keys","docs/developer/graphql/3.obtaining-keys",{"title":83,"path":84,"stem":85},"GraphQL Reference","/docs/developer/graphql/schema","docs/developer/graphql/5.schema",{"title":87,"path":88,"stem":89},"Jungle Platform API - Global Features","/docs/developer/graphql/api-global-features","docs/developer/graphql/api-global-features","file-icons:graphql",{"title":92,"path":93,"stem":94,"children":95,"icon":6},"SDKs","/docs/developer/sdk","docs/developer/sdk/1.index",[96],{"title":97,"path":93,"stem":94},"Node.js",{"title":99,"path":100,"stem":101,"children":102,"order":104,"parent":67,"group":105,"icon":6},"Feeds","/docs/feed","docs/feed/01.index",[103],{"title":72,"path":100,"stem":101,"order":104,"parent":67,"group":105},2,"feedgroup",{"title":107,"path":108,"stem":109,"children":110},"Guides","/docs/guide","docs/guide/index",[111,112,117,121,125,129,133],{"title":107,"path":108,"stem":109},{"title":113,"path":114,"stem":115,"icon":116},"Attachments","/docs/guide/attachments","docs/guide/attachments","lucide:paperclip",{"title":118,"path":119,"stem":120},"Configuring Jungle For Your Organisation","/docs/guide/configuring-jungle-for-your-warehouse","docs/guide/configuring-jungle-for-your-warehouse",{"title":122,"path":123,"stem":124},"Updating Inventory","/docs/guide/inventory-update","docs/guide/inventory-update",{"title":126,"path":127,"stem":128},"Use Case - Orders with fulfilments","/docs/guide/orders","docs/guide/orders",{"title":130,"path":131,"stem":132},"Quickstart","/docs/guide/quickstart","docs/guide/quickstart",{"title":134,"path":135,"stem":136},"Tagging Objects","/docs/guide/tagging","docs/guide/tagging",{"title":138,"path":139,"stem":140,"children":141,"icon":6},"Types","/docs/objects","docs/objects/index",[142,143,147,151,155],{"title":138,"path":139,"stem":140},{"title":144,"path":145,"stem":146},"Location","/docs/objects/locations","docs/objects/locations",{"title":148,"path":149,"stem":150},"Product","/docs/objects/products","docs/objects/products",{"title":152,"path":153,"stem":154},"Purchase Order","/docs/objects/purchase-orders","docs/objects/purchase-orders",{"title":156,"path":157,"stem":158},"Supplier Return","/docs/objects/supplier-returns","docs/objects/supplier-returns",{"title":160,"icon":6,"path":161,"stem":162,"children":163},"Policy","/docs/policy","docs/policy/index",[164,165,170],{"title":160,"path":161,"stem":162},{"title":166,"path":167,"stem":168,"icon":169},"Privacy","/docs/policy/general-privacy","docs/policy/general-privacy","lucide:shield",{"title":171,"path":172,"stem":173},"Terms of Service","/docs/policy/general-terms","docs/policy/general-terms",{"page":175,"surround":733},{"id":176,"title":26,"body":177,"description":724,"extension":725,"links":726,"meta":727,"navigation":730,"path":27,"seo":731,"stem":28,"__hash__":732},"documentation/docs/concepts/attributes.md",{"type":178,"value":179,"toc":718},"minimark",[180,184,200,205,221,429,451,455,467,576,580,587,690,697,701,714],[181,182,183],"p",{},"Attributes let you store your own custom key/value data against most Jungle objects. They're useful for carrying information from your own systems that Jungle doesn't model directly — a loyalty tier on a customer, a handling note on a product, an approval flag on an order, and so on.",[181,185,186,187,191,192,195,196,199],{},"An attribute is a pair of an ",[188,189,190],"strong",{},"id"," (the key) and a ",[188,193,194],{},"value",", with an optional human-friendly ",[188,197,198],{},"name",".",[201,202,204],"h2",{"id":203},"setting-attributes","Setting attributes",[181,206,207,208,212,213,216,217,220],{},"Set one or more attributes on an object with the ",[209,210,211],"code",{},"attributesSet"," mutation. It takes the target ",[209,214,215],{},"object"," and a list of ",[209,218,219],{},"attributes",":",[222,223,228],"pre",{"className":224,"code":225,"language":226,"meta":227,"style":227},"language-graphql shiki shiki-themes material-theme-lighter solarized-light solarized-dark monokai","mutation {\n  attributesSet(\n    input: {\n      object: { id: \"1234\", typename: \"Product\" }\n      attributes: [\n        { id: \"brand\", name: \"Brand\", value: \"Acme\" }\n        { id: \"warranty.months\", value: \"24\" }\n      ]\n    }\n  ) {\n    ok\n  }\n}\n","graphql","",[209,229,230,243,249,260,303,314,359,390,396,402,411,417,423],{"__ignoreMap":227},[231,232,235,239],"span",{"class":233,"line":234},"line",1,[231,236,238],{"class":237},"sQUfL","mutation",[231,240,242],{"class":241},"sORuE"," {\n",[231,244,245],{"class":233,"line":104},[231,246,248],{"class":247},"seFXP","  attributesSet(\n",[231,250,252,256,258],{"class":233,"line":251},3,[231,253,255],{"class":254},"spNwU","    input",[231,257,220],{"class":241},[231,259,242],{"class":247},[231,261,263,267,269,272,274,276,280,283,286,289,292,294,296,298,300],{"class":233,"line":262},4,[231,264,266],{"class":265},"sUDaU","      object",[231,268,220],{"class":241},[231,270,271],{"class":247}," { ",[231,273,190],{"class":265},[231,275,220],{"class":241},[231,277,279],{"class":278},"sm42c"," \"",[231,281,282],{"class":265},"1234",[231,284,285],{"class":278},"\"",[231,287,288],{"class":247},", ",[231,290,291],{"class":265},"typename",[231,293,220],{"class":241},[231,295,279],{"class":278},[231,297,148],{"class":265},[231,299,285],{"class":278},[231,301,302],{"class":247}," }\n",[231,304,306,309,311],{"class":233,"line":305},5,[231,307,308],{"class":265},"      attributes",[231,310,220],{"class":241},[231,312,313],{"class":247}," [\n",[231,315,317,320,322,324,326,329,331,333,335,337,339,342,344,346,348,350,352,355,357],{"class":233,"line":316},6,[231,318,319],{"class":247},"        { ",[231,321,190],{"class":265},[231,323,220],{"class":241},[231,325,279],{"class":278},[231,327,328],{"class":265},"brand",[231,330,285],{"class":278},[231,332,288],{"class":247},[231,334,198],{"class":265},[231,336,220],{"class":241},[231,338,279],{"class":278},[231,340,341],{"class":265},"Brand",[231,343,285],{"class":278},[231,345,288],{"class":247},[231,347,194],{"class":265},[231,349,220],{"class":241},[231,351,279],{"class":278},[231,353,354],{"class":265},"Acme",[231,356,285],{"class":278},[231,358,302],{"class":247},[231,360,362,364,366,368,370,373,375,377,379,381,383,386,388],{"class":233,"line":361},7,[231,363,319],{"class":247},[231,365,190],{"class":265},[231,367,220],{"class":241},[231,369,279],{"class":278},[231,371,372],{"class":265},"warranty.months",[231,374,285],{"class":278},[231,376,288],{"class":247},[231,378,194],{"class":265},[231,380,220],{"class":241},[231,382,279],{"class":278},[231,384,385],{"class":265},"24",[231,387,285],{"class":278},[231,389,302],{"class":247},[231,391,393],{"class":233,"line":392},8,[231,394,395],{"class":247},"      ]\n",[231,397,399],{"class":233,"line":398},9,[231,400,401],{"class":247},"    }\n",[231,403,405,408],{"class":233,"line":404},10,[231,406,407],{"class":247},"  ) ",[231,409,410],{"class":241},"{\n",[231,412,414],{"class":233,"line":413},11,[231,415,416],{"class":247},"    ok\n",[231,418,420],{"class":233,"line":419},12,[231,421,422],{"class":241},"  }\n",[231,424,426],{"class":233,"line":425},13,[231,427,428],{"class":241},"}\n",[181,430,431,432,288,435,438,439,441,442,444,445,447,448,199],{},"Attribute IDs may contain letters, numbers, and the ",[209,433,434],{},"-",[209,436,437],{},"_",", and ",[209,440,199],{}," characters (3–64 characters). The ",[209,443,199],{}," is handy for namespacing your own keys, for example ",[209,446,372],{}," or ",[209,449,450],{},"my-system.ref",[201,452,454],{"id":453},"reading-attributes","Reading attributes",[181,456,457,458,460,461,288,463,438,465,220],{},"Objects that support attributes expose an ",[209,459,219],{}," field listing the attributes set on them, each with its ",[209,462,190],{},[209,464,198],{},[209,466,194],{},[222,468,470],{"className":224,"code":469,"language":226,"meta":227,"style":227},"query {\n  object(input: { id: \"1234\", typename: \"Product\" }) {\n    ... on Product {\n      id\n      attributes {\n        id\n        name\n        value\n      }\n    }\n  }\n}\n",[209,471,472,479,518,532,537,544,549,554,559,564,568,572],{"__ignoreMap":227},[231,473,474,477],{"class":233,"line":234},[231,475,476],{"class":237},"query",[231,478,242],{"class":241},[231,480,481,484,487,489,491,493,495,497,499,501,503,505,507,509,511,513,516],{"class":233,"line":104},[231,482,483],{"class":247},"  object(",[231,485,486],{"class":254},"input",[231,488,220],{"class":241},[231,490,271],{"class":247},[231,492,190],{"class":265},[231,494,220],{"class":241},[231,496,279],{"class":278},[231,498,282],{"class":265},[231,500,285],{"class":278},[231,502,288],{"class":247},[231,504,291],{"class":265},[231,506,220],{"class":241},[231,508,279],{"class":278},[231,510,148],{"class":265},[231,512,285],{"class":278},[231,514,515],{"class":247}," }) ",[231,517,410],{"class":241},[231,519,520,523,526,530],{"class":233,"line":251},[231,521,522],{"class":237},"    ...",[231,524,525],{"class":237}," on",[231,527,529],{"class":528},"sm2gz"," Product",[231,531,242],{"class":241},[231,533,534],{"class":233,"line":262},[231,535,536],{"class":247},"      id\n",[231,538,539,542],{"class":233,"line":305},[231,540,541],{"class":247},"      attributes ",[231,543,410],{"class":241},[231,545,546],{"class":233,"line":316},[231,547,548],{"class":247},"        id\n",[231,550,551],{"class":233,"line":361},[231,552,553],{"class":247},"        name\n",[231,555,556],{"class":233,"line":392},[231,557,558],{"class":247},"        value\n",[231,560,561],{"class":233,"line":398},[231,562,563],{"class":241},"      }\n",[231,565,566],{"class":233,"line":404},[231,567,401],{"class":241},[231,569,570],{"class":233,"line":413},[231,571,422],{"class":241},[231,573,574],{"class":233,"line":419},[231,575,428],{"class":241},[201,577,579],{"id":578},"reading-a-single-value","Reading a single value",[181,581,582,583,586],{},"When you only need one attribute's value, use ",[209,584,585],{},"attributeValue",", which returns the value as a string:",[222,588,590],{"className":224,"code":589,"language":226,"meta":227,"style":227},"query {\n  object(input: { id: \"1234\", typename: \"Product\" }) {\n    ... on Product {\n      id\n      brand: attributeValue(input: { attributeId: \"brand\" })\n    }\n  }\n}\n",[209,591,592,598,634,644,648,678,682,686],{"__ignoreMap":227},[231,593,594,596],{"class":233,"line":234},[231,595,476],{"class":237},[231,597,242],{"class":241},[231,599,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632],{"class":233,"line":104},[231,601,483],{"class":247},[231,603,486],{"class":254},[231,605,220],{"class":241},[231,607,271],{"class":247},[231,609,190],{"class":265},[231,611,220],{"class":241},[231,613,279],{"class":278},[231,615,282],{"class":265},[231,617,285],{"class":278},[231,619,288],{"class":247},[231,621,291],{"class":265},[231,623,220],{"class":241},[231,625,279],{"class":278},[231,627,148],{"class":265},[231,629,285],{"class":278},[231,631,515],{"class":247},[231,633,410],{"class":241},[231,635,636,638,640,642],{"class":233,"line":251},[231,637,522],{"class":237},[231,639,525],{"class":237},[231,641,529],{"class":528},[231,643,242],{"class":241},[231,645,646],{"class":233,"line":262},[231,647,536],{"class":247},[231,649,650,653,655,658,660,662,664,667,669,671,673,675],{"class":233,"line":305},[231,651,652],{"class":265},"      brand",[231,654,220],{"class":241},[231,656,657],{"class":247}," attributeValue(",[231,659,486],{"class":254},[231,661,220],{"class":241},[231,663,271],{"class":247},[231,665,666],{"class":265},"attributeId",[231,668,220],{"class":241},[231,670,279],{"class":278},[231,672,328],{"class":265},[231,674,285],{"class":278},[231,676,677],{"class":247}," })\n",[231,679,680],{"class":233,"line":316},[231,681,401],{"class":241},[231,683,684],{"class":233,"line":361},[231,685,422],{"class":241},[231,687,688],{"class":233,"line":392},[231,689,428],{"class":241},[181,691,692,693,696],{},"Using a GraphQL alias (here ",[209,694,695],{},"brand:",") lets you surface attributes as your own named properties in the response.",[201,698,700],{"id":699},"removing-an-attribute","Removing an attribute",[181,702,703,704,706,707,710,711,713],{},"To remove an attribute, set its ",[209,705,194],{}," to ",[209,708,709],{},"null"," in ",[209,712,211],{},". The attribute is removed rather than stored with an empty value.",[715,716,717],"style",{},"html pre.shiki code .sQUfL, html code.shiki .sQUfL{--shiki-light:#39ADB5;--shiki-default:#859900;--shiki-dark:#859900;--shiki-sepia:#F92672}html pre.shiki code .sORuE, html code.shiki .sORuE{--shiki-light:#39ADB5;--shiki-default:#657B83;--shiki-dark:#839496;--shiki-sepia:#F8F8F2}html pre.shiki code .seFXP, html code.shiki .seFXP{--shiki-light:#90A4AE;--shiki-default:#657B83;--shiki-dark:#839496;--shiki-sepia:#F8F8F2}html pre.shiki code .spNwU, html code.shiki .spNwU{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#657B83;--shiki-default-font-style:inherit;--shiki-dark:#839496;--shiki-dark-font-style:inherit;--shiki-sepia:#FD971F;--shiki-sepia-font-style:italic}html pre.shiki code .sUDaU, html code.shiki .sUDaU{--shiki-light:#91B859;--shiki-default:#2AA198;--shiki-dark:#2AA198;--shiki-sepia:#E6DB74}html pre.shiki code .sm42c, html code.shiki .sm42c{--shiki-light:#39ADB5;--shiki-default:#2AA198;--shiki-dark:#2AA198;--shiki-sepia:#E6DB74}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sm2gz, html code.shiki .sm2gz{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#859900;--shiki-default-font-style:inherit;--shiki-dark:#859900;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}",{"title":227,"searchDepth":104,"depth":104,"links":719},[720,721,722,723],{"id":203,"depth":104,"text":204},{"id":453,"depth":104,"text":454},{"id":578,"depth":104,"text":579},{"id":699,"depth":104,"text":700},"Store your own custom data against Jungle objects","md",null,{"date":728,"template":729},"2025-04-27T02:01:36Z","guide",true,{"title":26,"description":724},"I9_CGXC9SMFX-oGxbWJWqXqo_lRq0JNH6E7b6HNtvVg",[734,736],{"title":22,"path":23,"stem":24,"description":735,"children":-1},"Learn about XIDs and how you can use your own identifiers in Jungle",{"title":30,"path":31,"stem":32,"description":737,"children":-1},"Learn about barcodes, a core concept of the Jungle System",{"data":739,"body":740},{},{"type":741,"children":742},"root",[743],{"type":744,"tag":181,"props":745,"children":746},"element",{},[747],{"type":748,"value":724},"text",1782188177823]