Fragment Catalog
product-presentation
Product Presentation team reusable fragments
Product Presentation fragments API documentation
Edge rendered PIP fragments
OAS 3.1.0
v1
Compliance Report
Validation of OpenAPI specifications against CWF fragment requirements.
4 Warnings
3 Compliant operations
Show:
{
"namespace": "product-presentation",
"description": "Product Presentation team reusable fragments",
"specifications": [
{
"id": "v1",
"type": "openapi_v3",
"openapi": {
"openapi": "3.1.0",
"info": {
"title": "Product Presentation fragments API documentation",
"description": "Edge rendered PIP fragments",
"version": "v1"
},
"servers": [
{
"url": "https://www.cte.ikeadt.com",
"description": "CTE"
}
],
"paths": {
"/{country}/{language}/pip/fragments/head/": {
"get": {
"operationId": "head",
"parameters": [
{
"name": "country",
"in": "path",
"required": true,
"schema": {
"example": "se",
"x-id": "market",
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$"
}
},
{
"name": "language",
"in": "path",
"required": true,
"schema": {
"example": "en",
"x-id": "language",
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$"
}
},
{
"name": "fragments",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "price-module,upsell"
}
}
],
"responses": {
"200": {
"description": "Always returns 200, even if no fragments are found",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/{country}/{language}/pip/fragments/api/v1/price-module/": {
"get": {
"operationId": "price-module-api",
"description": "Returns price module props as JSON for one or multiple IKEA products. Useful for headless implementations or when you need to fetch pricing data without rendering HTML fragments.",
"tags": [
"API"
],
"parameters": [
{
"name": "country",
"in": "path",
"required": true,
"schema": {
"example": "se",
"x-id": "market",
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$"
}
},
{
"name": "language",
"in": "path",
"required": true,
"schema": {
"example": "en",
"x-id": "language",
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$"
}
},
{
"name": "context",
"in": "query",
"required": true,
"description": "Price context type",
"schema": {
"type": "string",
"enum": [
"pip",
"upsell"
],
"example": "pip"
}
},
{
"name": "itemNos",
"in": "query",
"required": true,
"description": "Comma-separated list of product item numbers (8 digits each). Min: 1, Max: 50",
"schema": {
"type": "string",
"pattern": "^[0-9]{8}(,[0-9]{8})*$",
"example": "50595526,00595524,30530574"
}
}
],
"responses": {
"200": {
"description": "Price module props for requested items",
"headers": {
"Cache-Control": {
"description": "Cache duration",
"schema": {
"type": "string",
"example": "max-age=900"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"additionalProperties": {
"type": "object",
"description": "Price module props from @ingka-group-digital/pip-price-parser"
},
"example": {
"20522046": {
"priceModuleProps": {
"currentPriceProps": {
"integerValue": "79",
"decimalValue": "00",
"decimalSign": ".",
"currencyLabel": "$",
"captionPrefix": "Price"
},
"productName": "BILLY"
}
}
}
},
"errors": {
"type": "array",
"description": "Array of errors (item-level or request-level)",
"items": {
"oneOf": [
{
"type": "object",
"description": "Item-level error - specific item failed",
"properties": {
"type": {
"type": "string",
"enum": [
"item"
],
"example": "item"
},
"itemNo": {
"type": "string",
"example": "99999999"
},
"message": {
"type": "string",
"example": "Missing communication item"
}
},
"required": [
"type",
"itemNo",
"message"
]
},
{
"type": "object",
"description": "Request-level error - entire request failed",
"properties": {
"type": {
"type": "string",
"enum": [
"request"
],
"example": "request"
},
"message": {
"type": "string",
"example": "Invalid item number format: 123. Item numbers must be 8 digits"
}
},
"required": [
"type",
"message"
]
}
]
}
}
},
"required": [
"data"
]
}
}
}
},
"400": {
"description": "Bad request - invalid parameters",
"headers": {
"Cache-Control": {
"description": "Cached for 1 hour since validation errors are deterministic",
"schema": {
"type": "string",
"example": "max-age=3600"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {}
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
}
}
},
"example": [
{
"type": "request",
"message": "Invalid item number format: 123. Item numbers must be 8 digits"
}
]
}
}
}
}
}
},
"500": {
"description": "Internal server error",
"headers": {
"Cache-Control": {
"description": "Not cached to allow immediate retry after fixes",
"schema": {
"type": "string",
"example": "no-store"
}
}
},
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"example": {}
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"example": "request"
},
"message": {
"type": "string",
"example": "Internal server error"
}
}
},
"example": [
{
"type": "request",
"message": "Internal server error"
}
]
}
}
}
}
}
}
}
}
},
"/{country}/{language}/pip/fragments/price-module/": {
"get": {
"operationId": "price-module",
"description": "Returns the price module fragment for a specific item. This fragment handles who-wins logic, price formatting, fetching of product data and other business logic related to price display.",
"parameters": [
{
"name": "country",
"in": "path",
"required": true,
"schema": {
"example": "se",
"x-id": "market",
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$"
}
},
{
"name": "language",
"in": "path",
"required": true,
"schema": {
"example": "en",
"x-id": "language",
"type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$"
}
},
{
"name": "itemNo",
"in": "query",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/productId/schema",
"example": "90495855"
}
}
],
"responses": {
"200": {
"description": "Price module HTML fragment",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"404": {
"description": "Product not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Something went wrong",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/{country}/{language}/pip/fragments/compact-price-module/": {
"get": {
"operationId": "compact-price-module",
"description": "Returns the compact price module fragment for a specific item. A compact version of the price module suitable for smaller displays or contexts.",
"parameters": [
{
"name": "country",
"in": "path",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/market/schema",
"example": "se"
}
},
{
"name": "language",
"in": "path",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/language/schema",
"example": "en"
}
},
{
"name": "itemNo",
"in": "query",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/productId/schema",
"example": "20582733"
}
}
],
"responses": {
"200": {
"description": "Compact price module HTML fragment",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"404": {
"description": "Product not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Something went wrong",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/{country}/{language}/pip/fragments/upsell/": {
"get": {
"operationId": "upsell",
"description": "Returns the upsell fragment for a specific item.",
"parameters": [
{
"name": "country",
"in": "path",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/market/schema",
"example": "se"
}
},
{
"name": "language",
"in": "path",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/language/schema",
"example": "en"
}
},
{
"name": "itemNo",
"in": "query",
"required": true,
"schema": {
"$ref": "https://fragments.web.ingka.com/shared/parameters.yaml#/components/parameters/productId/schema",
"example": "00547608"
}
}
],
"responses": {
"200": {
"description": "Upsell HTML fragment",
"content": {
"text/html": {
"schema": {
"type": "string"
}
}
}
},
"404": {
"description": "Product not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
},
"500": {
"description": "Something went wrong",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
}
},
"components": {}
}
}
]
}