Arena Integration¶
Arena is PopSockets' PLM (Product Lifecycle Management) system. This integration exposes Arena item data through an internal experience service, allowing downstream systems to fetch item details by SKU.
Authentication¶
Requests to the experience service require an Azure API Management subscription key passed as a request header.
| Header | Required | Description |
|---|---|---|
Ocp-Apim-Subscription-Key |
Yes | Azure API Management subscription key. Obtain from the Azure API Management portal or your team lead. |
Note
Arena session authentication is handled internally by cm-product-sys. The service manages login and token caching automatically — callers do not need to pass Arena credentials.
Service Flow¶
The following diagram shows how a Get Item request flows through the internal service stack.
sequenceDiagram
participant Client
participant EXP as cm-int-service-exp
participant PRC as cm-product-prc
participant SYS as cm-product-sys
participant Arena as Arena API
Client->>EXP: GET /arena/item?item_number=708470
EXP->>PRC: Forward request (item_number: 708470)
PRC->>SYS: direct:arenaGetItem (itemNumber: 708470)
SYS->>SYS: Check session token
alt Token missing or expired
SYS->>Arena: POST /login
Arena-->>SYS: arenaSessionId + workspaceId
SYS->>SYS: Cache token (TTL: 8 min)
end
SYS->>Arena: GET /items?item_number=708470
Arena-->>SYS: Item details + additionalAttributes
SYS->>Arena: GET /items/GUID/bom
Arena-->>SYS: BOM line items (count: 5)
SYS-->>PRC: Assembled item + BOM response
PRC-->>EXP: arenaGetItem response
EXP-->>Client: Full item JSON
Get Item¶
Fetch a single Arena item by item number (SKU).
Endpoint
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
item_number |
string | Yes | The item number (SKU) to fetch |
Example Request
GET https://integration-nonprod.popsockets.com/stage/cm-int-service-exp/arena/item?item_number=708470
Response Fields¶
Top-Level Fields¶
| Field | Type | Description |
|---|---|---|
guid |
string | Arena's unique identifier for the item |
number |
string | Item number / SKU |
name |
string | Item display name |
description |
string | Short description of the item |
assemblyType |
string | Assembly classification (e.g. TOP_LEVEL_ASSEMBLY) |
revisionNumber |
string | Current revision (e.g. C) |
revisionStatus |
string | Status of the revision (e.g. EFFECTIVE) |
effectiveDateTime |
string | ISO 8601 datetime when this revision became effective |
creationDateTime |
string | ISO 8601 datetime when the item was created |
modifiedBom |
boolean | Whether the BOM has been modified in this revision |
modifiedFiles |
boolean | Whether files have been modified |
modifiedSourcing |
boolean | Whether sourcing has been modified |
modifiedSpecs |
boolean | Whether specs have been modified |
procurementType |
string | Procurement strategy (e.g. MTS = Make to Stock) |
uom |
string | Unit of measure (e.g. EACH) |
offTheShelf |
boolean | Whether the item is an off-the-shelf component |
inAssembly |
boolean | Whether this item appears in another assembly |
isAssembly |
boolean | Whether this item has a BOM |
isLocked |
boolean | Whether the item is locked from editing in Arena |
shared |
boolean | Whether the item is shared across workspaces |
deviated |
boolean | Whether the item has an active deviation |
status |
integer | Numeric status code |
productionCost |
string | Production cost (may be "0") |
prototypeCost |
string | Prototype cost (may be "0") |
standardCost |
string/null | Standard cost |
targetCost |
string/null | Target cost |
targetPrice |
string/null | Target price |
materialEffectivityDateTime |
string | ISO 8601 datetime for material effectivity |
supersededDateTime |
string/null | ISO 8601 datetime when superseded, or null |
category¶
| Field | Type | Description |
|---|---|---|
guid |
string | Arena category GUID |
name |
string | Category name (e.g. 7. Direct Sales) |
lifecyclePhase¶
| Field | Type | Description |
|---|---|---|
guid |
string | Lifecycle phase GUID |
name |
string | Phase name (e.g. In Production) |
creator¶
| Field | Type | Description |
|---|---|---|
guid |
string | Creator's Arena GUID |
fullName |
string | Full name |
email |
string | Email address |
owner¶
| Field | Type | Description |
|---|---|---|
fullName |
string | Full name of the item owner |
url¶
| Field | Type | Description |
|---|---|---|
api |
string | Direct Arena API URL for this item |
app |
string | Arena web app URL for this item |
bom¶
Array of BOM line items. Each entry:
| Field | Type | Description |
|---|---|---|
skuCode |
string | Child item SKU |
name |
string | Child item name |
revisionNumber |
string | Revision of the child item |
additionalAttributes¶
Array of custom Arena attributes. Each entry:
| Field | Type | Description |
|---|---|---|
guid |
string | Attribute GUID (same as apiName) |
apiName |
string | API key for the attribute |
name |
string | Human-readable attribute name |
fieldType |
string | Field type: FIXED_DROP_DOWN, SINGLE_LINE_TEXT, etc. |
multiSelect |
boolean/null | Whether multiple values can be selected (null for text fields) |
value |
string | Attribute value |
Common attributes present on items:
| Name | Description |
|---|---|
BOM Needed in Jackyun? |
Whether this item's BOM should sync to Jackyun |
BOM Needed in NAV? |
Whether this item's BOM should sync to NAV |
NAV Integration |
Whether this item is enabled for NAV sync |
Jackyun Integration |
Whether this item is enabled for Jackyun sync |
UPC |
UPC barcode |
ITF-14 |
Case-level barcode |
Case Quantity (ITF-14) |
Number of units per case |
Inventory Posting Group |
NAV inventory posting group (e.g. FG) |
Item Category Code |
NAV item category (e.g. Cases) |
Product Group Code |
Product group (e.g. PopCase) |
Product Family |
Product family (e.g. Standard) |
Product Model |
Product model name |
Parent Category |
Top-level category (e.g. Mobile Accessories) |
Type |
Item type (e.g. Item) |
Unit Height/Length/Width (mm) |
Unit dimensions |
Unit Weight (g) |
Unit weight |
ITF-14 Height/Length/Width (mm) |
Case dimensions |
ITF-14 Weight (g) |
Case weight |
Example Response¶
{
"guid": "CUEX2Q4EX1KSBOMRK4J1",
"number": "708470",
"name": "PCS MS-iPh16Pr-Withes Brew Purple-GNFR",
"description": "PCS MS-iPh16Pr-Withes Brew Purple-GNFR",
"assemblyType": "TOP_LEVEL_ASSEMBLY",
"revisionNumber": "C",
"revisionStatus": "EFFECTIVE",
"effectiveDateTime": "2025-08-01T02:51:16Z",
"creationDateTime": "2024-07-29T03:25:15Z",
"procurementType": "MTS",
"uom": "EACH",
"isAssembly": true,
"isLocked": true,
"lifecyclePhase": {
"guid": "9RBUZN1BUYGJ2L4N0183",
"name": "In Production"
},
"category": {
"guid": "9RBUZN1BUYHRAT5ANNN2",
"name": "7. Direct Sales"
},
"creator": {
"email": "epan@popsockets.com",
"fullName": "Erin Pan",
"guid": "7P9SXLZ9SWDWFYH0WYJE"
},
"owner": {
"fullName": "Leslie Joseph"
},
"url": {
"api": "https://api.arenasolutions.com/v1/items/CUEX2Q4EX1KSBOMRK4J1",
"app": "https://app.bom.com/CUEX2Q4EX1KSBOMRK4J1"
},
"bom": [
{
"skuCode": "11-005085",
"name": "BULK PCS MS-iPh16Pr-Clear-NO CR",
"revisionNumber": "A"
},
{
"skuCode": "12-006744",
"name": "BULK CAMERA RING-iPh16Pr/16PMx-White",
"revisionNumber": "A"
},
{
"skuCode": "13-009155",
"name": "GRX-PCS-iPh16Pr-Withes Brew Purple",
"revisionNumber": "A"
},
{
"skuCode": "14-000450",
"name": "PKG ASSY-PCS-CBX-GNFR",
"revisionNumber": "A"
},
{
"skuCode": "15-001310",
"name": "PKG-PCS-PS Brand-5 Panel Wrap-GNFR",
"revisionNumber": "A"
}
],
"additionalAttributes": [
{
"name": "BOM Needed in Jackyun?",
"value": "Yes",
"fieldType": "FIXED_DROP_DOWN"
},
{
"name": "UPC",
"value": "840173780695",
"fieldType": "SINGLE_LINE_TEXT"
}
]
}