openapi: 3.0.1 info: title: Cart Actions Endpoints Pages API description: fabric's **Cart API** lets you add, update, and remove items from your Storefront cart, either as a guest user or as a logged-in user. It also provides functionality to merge carts when you switch from guest user to logged-in user, and apply coupons and other attributes (for example, gift wrapping) to the line items. Additionally, the API supports more advanced tasks such as using multiple carts within a B2B organization, sharing carts, and supporting a unified cart experience for multi-region and multi-brand businesses.
The Cart API provides high performance, scalability, multi-tenancy, and configurability to the end-to-end order processing actions that start from the item being added to the cart; through the pre-checkout stage that includes billing, shipping, and payment details; to the checkout stage where the order is processed and confirmed by fabric's Order Management System (OMS)
contact:
name: Cart Support
email: support.cnc@fabric.inc
license:
name: fabric API License
url: https://fabric.inc/api-license
version: 3.0.0
servers:
- url: https://api.fabric.inc/v3
security:
- bearerAuth: []
tags:
- name: Pages
description: XM Pages API allows you to fetch all the live pages, or a live page by a specific URL
paths:
/v2/pages/live:
get:
summary: Get Live Pages for Specified Channels
description: Get a list of all the live pages for the specified channels
operationId: getLivePagesV2
tags:
- Pages
parameters:
- in: query
name: offset
description: Number of items to omit before collecting the resulting set
schema:
type: integer
default: 0
- in: query
name: limit
description: Total number of results
schema:
type: integer
default: 20
- in: query
name: channels
description: Comma-separated list of channel IDs
schema:
type: string
default: '12'
- $ref: '#/components/parameters/XSiteContent'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
description: 200 response object
properties:
message:
type: string
description: Status message
data:
type: object
description: Object holding the query information and the list of live page versions
properties:
query:
type: object
description: Query information
properties:
limit:
type: integer
description: Maximum number of records
offset:
type: integer
description: Number of items omitted before collecting the resulting set
count:
type: integer
description: Total number of records
channels:
type: array
description: Channel IDs to filter live pages
items:
type: string
description: Channel ID
livePages:
type: array
description: Array of live page versions
items:
type: object
description: Version details of the live page
allOf:
- $ref: '#/components/schemas/PageVersion'
- type: object
properties:
page:
allOf:
- $ref: '#/components/schemas/Page'
- type: object
properties:
typeId:
type: string
description: Database ID for the page type linked to the page
typeName:
type: string
description: Name of the page type
typeUrl:
type: string
description: URL associated with page type
examples:
LivePagesExist:
summary: Live Pages Exist
value:
message: List of pages with queryParams {"channels":"02SZCA,00SZAU","offset":0,"limit":20}
data:
query:
limit: 20
offset: 0
count: 1
channels:
- 02SZCA
- 00SZAU
livePages:
- _id: 613a76a1fa9449000f6c36c3
isArchived: false
name: Default
channel:
- 12
channels:
- 00SZAU
- 02SZCA
createdAt: '2021-09-09T21:03:29.712Z'
updatedAt: '2021-10-14T20:31:47.369Z'
components:
- _id: 61689237068cae000f12ef90
id: AboutUs
params:
desktopHeroImage:
url: https://imgurl.com/path/myPhoto.jpg
altText: Custom image
aboutUsContent:
- text: About us
firstText: Our Company
secondText: Our mission
thirdText: Our values
paragraph: false
dialog: false
components: []
components: []
additionalProp1: {}
order: 1
additionalProp1: {}
endDate: '2099-12-31T00:00:00.000Z'
pageId: 613a76a15363f9e9575dc953
status: SCHEDULED
versionId: 2446
page:
_id: 613a76a15363f9e9575dc953
name: Components
pageUrl: /components
__v: 0
channels:
- 00SZAU
- 02SZCA
createdAt: '2021-09-09T21:03:29.617Z'
isActive: true
isArchived: false
pageId: 1377
seoFields:
title: SEO
description: SEO description
_id: 612e4756c4b3c60010fff859
metadata:
- _id: 612e4756c4b3c60010fff85a
name: summary
content: Types of components
createdAt: '2021-08-31T15:14:30.973Z'
updatedAt: '2021-08-31T15:14:30.973Z'
createdAt: '2021-08-31T15:14:30.973Z'
updatedAt: '2021-08-31T15:14:30.973Z'
typeId: 61325fd059cbdbe62e888bc0
updatedAt: '2021-10-14T20:31:46.794Z'
typeName: Product category page
typeUrl: /category
NoLivePages:
summary: No Live Pages
value:
message: No live pages found with queryParams {"channels":"01SZUS","offset":0,"limit":20}
query:
limit: 20
offset: 0
count: 0
channels:
- 01SZUS
livePages: []
'404':
description: Request was received but no data matches the request parameters
content:
application/json:
schema:
type: object
description: 404 response object
properties:
status:
type: string
description: Status description
message:
type: string
description: String message to inform client of error
statusCode:
type: integer
description: Status code of response
example:
status: PAGE_NOT_FOUND
message: No Page Entry Found.
statusCode: 404
'500':
description: Request was received but an internal error occurred.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: INTERNAL_SERVER_ERROR
message: An internal error occurred. If the issue persists please contact support@fabric.inc.
/v2/pages/metadata:
get:
summary: Get Meta Information About Live Pages
description: Get all the meta information such as name, url, channels, and SEO fields.
operationId: getLivePagesMetaV2
tags:
- Pages
parameters:
- in: query
name: channels
description: Comma-separated list of channel IDs
schema:
type: string
default: '12'
- in: query
name: size
description: Number of records to be returned
required: false
schema:
type: integer
format: int32
minimum: 1
default: 10
maximum: 100
- in: query
name: startCursor
description: Record pointer to get items after the specified record
required: false
schema:
type: string
minLength: 15
maxLength: 15
example: H796HJHGANLSADS
- $ref: '#/components/parameters/XSiteContent'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
description: 200 response object
properties:
size:
description: Number of records to be returned
type: integer
format: int32
minimum: 1
default: 10
maximum: 100
example: 10
nextCursor:
description: Record pointer to get items in the next data set
type: string
minLength: 15
maxLength: 15
example: H796HJHGANLSADS
data:
type: array
items:
$ref: '#/components/schemas/PageMetaData'
example:
size: 10
nextCursor: H796HJHGANLSADS
data:
- id: 5f328bf0b7c15700071233b9
name: HomePage
updatedAt: '2021-09-09T21:03:29.617Z'
publishedAt: '2021-09-09T21:03:29.617Z'
metadata:
url: /home
channels:
- 00SZAU
- 02SZCA
seoFields:
title: SEO
description: SEO description
metadata:
- name: background-color
content: white
'204':
description: No live pages exist
'500':
description: Request was received but an internal error occurred
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: INTERNAL_SERVER_ERROR
message: An internal error occurred. If the issue persists please contact support@fabric.inc.
/v2/page/live:
get:
summary: Get Live Page for a Channel by URL
description: Gets live page for the specified page URL and channel
operationId: getLivePageV2
tags:
- Pages
parameters:
- in: query
name: url
description: Relative page url for which to retrieve the live page version
required: true
schema:
type: string
- in: query
name: channels
description: Comma-separated list of channel IDs
schema:
type: string
default: '12'
- name: x-site-context
in: header
description: The `x-site-context` header is a JSON object that contains information about the source you wish to pull from. The mandatory `account` is the 24 character identifier found in Copilot. The `channel` (Sales channel ID), `stage` (environment name), and `date` attributes can be used to further narrow the scope of your data source.
required: true
schema:
type: string
example: '{"date": "2023-01-01T00:00:00.000Z", "channel": 12, "account": "1234abcd5678efgh9ijklmno","stage":"production"}'
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
description: 200 response object
properties:
status_code:
type: integer
description: Response status code
message:
type: string
description: Status message
data:
type: object
description: Data object holding the live page and version details
properties:
page:
type: object
description: Page details
allOf:
- $ref: '#/components/schemas/Page'
- type: object
properties:
pageType:
type: object
description: Details of page type
properties:
isDefault:
type: boolean
description: True = page type is default
false = page type is not default
name:
type: string
description: Name of page type
urlPrefix:
type: string
description: URL prefix associated with page type
version:
type: array
description: Array holding live page version
items:
type: object
description: Version details of the live page
allOf:
- $ref: '#/components/schemas/PageVersion'
- type: object
properties:
__v:
type: integer
description: versionKey associated with the version
startDate:
type: string
format: date-time
description: Timestamp of when version was published
example:
status_code: 200
message: 'Live version: 2446 for page: /components'
data:
page:
_id: 613a76a15363f9e9575dc953
name: Components
pageUrl: /components
__v: 0
channels:
- 00SZAU
- 02SZCA
createdAt: '2021-09-09T21:03:29.617Z'
isActive: true
isArchived: false
pageId: 1377
seoFields:
title: SEO
description: SEO description
_id: 612e4756c4b3c60010fff859
metadata:
- _id: 612e4756c4b3c60010fff85a
name: summary
content: Types of components
createdAt: '2021-08-31T15:14:30.973Z'
updatedAt: '2021-08-31T15:14:30.973Z'
createdAt: '2021-08-31T15:14:30.973Z'
updatedAt: '2021-08-31T15:14:30.973Z'
updatedAt: '2021-10-14T20:31:46.794Z'
pageType:
isDefault: false
name: Product category page
urlPrefix: /category
version:
- _id: 613a76a1fa9449000f6c36c3
isArchived: false
name: Default
channel:
- 12
channels:
- 00SZAU
- 02SZCA
createdAt: '2021-09-09T21:03:29.712Z'
updatedAt: '2021-10-14T20:31:47.369Z'
components:
_id: 61689237068cae000f12ef90
id: AboutUs
params:
desktopHeroImage:
url: https://imgurl.com/path/myPhoto.jpg
altText: Custom image
aboutUsContent:
- text: About us
firstText: Our Company
secondText: Our mission
thirdText: Our values
paragraph: false
dialog: false
components: []
components: []
additionalProp1: {}
order: 1
additionalProp1: {}
endDate: '2099-12-31T00:00:00.000Z'
pageId: 613a76a15363f9e9575dc953
status: SCHEDULED
versionId: 2446
__v: 0
startDate: '2021-10-14T20:31:44.052Z'
'204':
description: Page is not live or is inactive
content:
application/json:
schema:
type: object
description: 204 response object
properties:
status_code:
type: integer
description: Response status code
status:
type: string
description: Message describing the request
message:
type: string
description: Message describing the result of the response
examples:
NoLiveVersion:
summary: No Live Versions
value:
status_code: 204
status: 'Live Page: /someUrl'
message: 'No live version available for page: /someUrl, status: SCHEDULED, Date: Tue Oct 19 2021 16:18:21 GMT-0400 (Eastern Daylight Time), Channel: 02SZCA.'
InactivePage:
summary: Inactive Page
value:
status_code: 204
status: 'Live Page: /someUrl'
message: 'page: /someUrl is inactive or archived, so there will be no live versions of page.'
'400':
description: Page url not specified
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: REQUEST_VALIDATION
message: 'Invalid data in query: must have required property URL'
'404':
description: Page not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: PAGE_NOT_FOUND
message: No page entry found
'500':
description: Request was received but an internal error occurred
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: INTERNAL_SERVER_ERROR
message: An internal error occurred. If the issue persists please contact support@fabric.inc.
components:
schemas:
PageVersion:
type: object
description: Version details
properties:
_id:
type: string
description: Database ID associated with the version
isArchived:
type: boolean
description: True = version is archived
false = version is not archived
channel:
type: array
description: Deprecated field holding channel information
items:
type: integer
description: Channel identifier
channels:
type: array
description: Channel IDs associated with the version
items:
type: string
description: Channel ID associated with the version
status:
type: string
description: Current status of the version
endDate:
type: string
description: Ending timestamp of page. That is Date and time when the version will no longer be live
format: date-time
pageId:
type: string
description: Database ID of the page associated with the version
name:
type: string
description: Version name
description:
type: string
description: Version description
components:
$ref: '#/components/schemas/Components'
versionId:
type: integer
description: Version ID
createdAt:
type: string
format: date-time
description: Timestamp of version creation
updatedAt:
type: string
format: date-time
description: Timestamp on when version was last updated
Components:
type: array
description: List of components
items:
type: object
description: Component data
properties:
_id:
type: string
description: Virtual ID associated with the component
id:
type: string
description: Identifier used in the UI by the component
params:
type: object
description: Attached fields and values of the component
additionalProperties: true
additionalProperties: true
SeoFields:
type: object
description: SEO fields
properties:
title:
type: string
description: SEO field name
description:
type: string
description: SEO field description
createdAt:
type: string
format: date-time
description: Timestamp of SEO field creation
updatedAt:
type: string
format: date-time
description: Timestamp of when SEO field was last updated
metadata:
type: array
description: list of metadata associated with the SEO field
items:
type: object
description: Metadata associated with the SEO field
properties:
name:
type: string
description: Metadata name
content:
type: string
description: Metadata content
_id:
type: string
description: Virutal ID associated with the SEO field metadata
createdAt:
type: string
format: date-time
description: Timestamp of metadata creation
updatedAt:
type: string
format: date-time
description: Timestamp of when metadata was last updated
_id:
type: string
description: Virtual ID associated with the SEO field
PageMetaData:
type: object
description: Page metadata
properties:
id:
type: string
description: Page ID
name:
type: string
description: Page name
updatedAt:
type: string
format: date-time
description: Timestamp of when the page was last updated
publishedAt:
type: string
format: date-time
description: Timestamp of when page was last published
metadata:
type: object
description: Page metadata
properties:
url:
type: string
description: Page URL
channels:
type: array
description: Page channels
items:
type: string
description: Channel identifier
seoFields:
$ref: '#/components/schemas/SeoFields'
Page:
type: object
description: Page details
properties:
name:
type: string
description: Page name
pageUrl:
type: string
description: Relative page URL
createdAt:
type: string
format: date-time
description: Timestamp of page creation
updatedAt:
type: string
format: date-time
description: Timestamp of when page was last updated
isActive:
type: boolean
description: True = page is active
false = page is not active
isArchived:
type: boolean
description: True = page is archived
false = page is not archived
pageId:
type: integer
description: Page ID
channels:
type: array
description: Channel IDs associated with the page
items:
type: string
description: Channel ID associated with the page
seoFields:
$ref: '#/components/schemas/SeoFields'
typeName:
type: string
description: Name of the page type of page (optional)
typeUrl:
type: string
description: URL of the page type of page (optional)
_id:
type: string
description: Database ID associated with the page
__v:
type: integer
description: VersionKey associated with the page
channel:
type: array
description: deprecated field holding channel information
items:
type: integer
description: Channel identifier
Error:
type: object
description: Server error response object
properties:
code:
type: string
description: Code associated with the type of server error
message:
type: string
description: Message associated with the server error
required:
- code
- message
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the [Making your first API request](/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure) section.
'