api.test.showroom.fashion.cloud
Open in
urlscan Pro
52.28.142.229
Public Scan
URL:
https://api.test.showroom.fashion.cloud/
Submission: On November 30 via api from US — Scanned from US
Submission: On November 30 via api from US — Scanned from US
Form analysis
0 forms found in the DOMText Content
* Introduction * Glossary * Entities * Key DS components * Fashion terminology * Changelog * Option V2 * Customer Management * Customers * postGet * postGetByCode * postUpsert * Locations * postGet * postGetByBrandUserIDs * postGetByCodes * postGetList * postUpsert * postBulk Upsert * Brand Management * Brands * postGet * postUpdateSizeConfig * Divisions * postGet * postUpsert * Seasons * postGet * postUpsert * Delivery Drops * postGetByCode * postGetByIds * postGetBySeason * postUpsert * Catalog Management * Options V1 * postGetByCodes * postGetByIDs * postSetMediaByCodes * postUpsert * Options V2 * postFetch * postAttach media * postUpsert * postAttach 3D viewer links * postAttach images * postAttach videos * Prices * postOptionPrices * postUpsert * postBulkUpsert * Sizes * postGet by Option codes * postUpsert * postBulk Upsert * Catalogs * postGetByCode * postGetUserCatalogs * postUpsertBrandCatalog * postUpsertUserCatalogs * Marketing Assets * postGetAssetGroups * postGetAssets * postSearchAssets * postUpsertAsset * postUpsertAssetGroup * Stock * postGet Stock List * postBulk Upsert * User Management * Users * postGetUsersByBrandCode * postUpsert * Media Management * Media * postUpsert * Presentation API * Presentation * postGetByIDs * postGetList * Order Management * Draft Order * postGet * postGet List * Push API * Webhook * postGet * postSetup API docs by Redocly STITCH INTEGRATION API (1.0) Download OpenAPI specification:Download INTRODUCTION This document describes the Stitch Digital Showroom Integration API, which is meant to be used by back-end servers to import and export brand's core data. BASIC FLOW 1. Using Stitch Integration API brands can implement server side applications to send Core Data into the Digital Showroom. 2. Data is processed and persisted in the data storage through the Stitch Ingest API. 3. Stitch Digital Showroom uses the internal API and the CDN to display the data to the end user. 4. Using Stitch Integration API brands can also pull necessary data (i.e. orders) that is prepared by the Stitch Egest API. BRAND DATA All Brand Core Data should be identified with a unique brand code that is provided by Stitch during the on-boarding process. What is Brand Core Data? (check our api glossary) * Seasons * Divisions * Delivery Drops * Media * Customers/Locations * Options (Products) * Prices * Sizes * Catalogs * Marketing Assets * Stock * Users API REQUESTS All the API methods are available on a single domain https://api.showroom.stitch.fashion. You can find the full paths in the endpoint documentation pages. * For Import Data we provide UPSERT based interfaces for creating and updating the data. * All endpoints are synchronous and idempotent. * For Export Data we provide GET based interfaces for fetching a single or bulk data objects. DATA FORMAT: The integration api communicates with json using HTTP POST/GET requests. Required Headers: * Content-Type: application/json. * Authorization: Bearer {jwt} (How to get your jwt token) GLOSSARY ENTITIES BRAND * Is created by Stitch upon on-boarding * Is the top-level entity in the system. * Is identified by a short alphabetical code. * All entities in the system are tied to a particular brand. For example, theming information, divisions, seasons, options, etc DIVISION * Is a "sub-brand" within a brand. * Creates a strict separation between collections within one brand. * Options can not be shared between Divisions. SEASON * Is a part of a Division * A set period of time in which a catalog of products is being sold. * Can be limited in time with start or/and end dates. * Options and marketing materials are available within a season. DELIVERY DROP * A single possible delivery drop (a.k.a. delivery window) at which option can be delivered * Is assigned to multiple Seasons * Is assigned to multiple Options * Availability is always limited by seasons availability OPTION * Is a combination of style and color in the Stitch system. * Has a list of media items (images and videos) and media3D items attached to it. SIZE * Is assigned to the Options * Represents the lowest level of granularity for a product * Can have multiple dimensions and order constraints * Is shown on the PDP and in the order review documents. PRICE * Is assigned to the Options on the size level. * Is shown on the PDP and in the order review documents. CUSTOMER * Is a top-level entities to define your real-world customers * Is a used only to group Locations LOCATION * Is used to define real-world stores (doors). * Can have Price Groups and Currency assigned to show different Prices (price segmentation) * Can be limited to a set of users or be available to everyone within a brand MEDIA Stitch uses 2 types of media (images/videos) assets: * Option media to display on the PDP, Laydown, Product Catalog, etc. * Seasonal marketing content like Looks, marketing videos, etc. ASSET Are marketing materials used as a sales aid, showcasing a few options to be matched together. * Can be added to the presentation laydowns * Options can be linked to any Asset * During a presentation, a customer will see only the products that are available in its market segment ASSET GROUP An entity which acts like a folder to group related assets together in one place. * Can be assigned a list of tags for easy filtering * Can have a name and description to be identified quickly and easily STOCK Is the stock level of a particular SKU of an option * Stock data is not mandatory for the Stitch DS to work. If no stock data is provided, the system will assume that the stock level is unlimited. * Can be tied to a specific warehouse using the stockReferenceCode field. Same field is added to the customer Location entity to link the location to the warehouse. If stockReferenceCode is not set, the stock is assumed to be across all warehouses. * Stock code should be a unique identifier for a particular stock entity. For example if a stock entity has a stockReferenceCode, then code should be unique for that stockReferenceCode and SKU combination. The same applies if deliveryDropCode is set. In this case code should be unique for that deliveryDropCode and SKU combination and so on. * Can be soft deleted by setting the isActive field to false. USER Is representation of a system user within the Stitch DS. * Can have different roles. The list of roles is available in the API endpoint documentation. * Can have access to multiple brands. ORDER Is the output of any sales appointment. Consider it a draft order to be imported to the next processing system. * Contains an order line per delivery date/option/size BRAND CATALOG Is an implementation of catalog and customer segmentation features. * Each presentation uses a catalog as a base for it's collection * Can be limited to a set of customers, locations, or/and users KEY DS COMPONENTS LOOK CATALOG Is a catalog available to the user inside the presentation and used to browse Looks available within the Season/Division PRODUCT CATALOG Is a catalog available to the user inside the presentation and used to browse Options available within the Season/Division * Only Options that are available to the market segment of the presentation customer are shown. CMS Is a Content Management System within the Stitch DS to configure Brand settings from the UI The CMS can be used for: * setting Brand-specific theming * managing Looks * updating Seasonal presentation settings (idle screens, landing pages, etc.) LDP Is a Look Detail Page that displays a single Look with additional information attached. PDP Is a Product Detail Page that displays a single Option with additional information attached (prices, color variations, etc.) ASSORTMENT Is a slide within a presentation. LAYDOWN Is a central part of the presentation assortment where the user adds Options, Looks and text. FASHION TERMINOLOGY MARKET SEGMENTATION The process of dividing a target market into smaller, more defined categories. It segments customers and audiences into groups with similar characteristics, such as demographics, interests, needs, or location. PRICE SEGMENTATION The process of charging different prices for the same or similar product or service based on internal business rules. * To create price segmentation Stitch uses the concept of Price Groups with Currency * Price Groups and Currency must be assigned to Locations * Price Groups and Currency must be provided for each Price TBD; CHANGELOG OPTION V2 WHAT CHANGED IN V2: * New option endpoints /v2/option/{action} * tags was renamed to attributes, structure kept the same. * categories was renamed to productHierarchy and a new structure was introduced. * removed deprecated fields from V1. CUSTOMERS GET Fetch a single customer document with a set of underlying locations (by IDs). AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON customerID required string (CustomerID is the internal customer identifier) locationIDs Array of strings (List of locationIDs which are the internal location identifiers) RESPONSES 200 A successful response. default An unexpected error response. post/v1/customer/get https://api.showroom.stitch.fashion/v1/customer/get REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "customerID": "string", * "locationIDs": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "customerCode": "HAT5", * "id": "CUSTOMER_HAT_HAT5", * "locations": [ * { * "addressLine1": "867 Burnett Ridge Suite 919", * "addressLine2": "Apt. 771", * "brandCode": "HAT", * "city": "Nataliemouth", * "country": "Congo", * "currency": "EUR", * "customerCode": "HAT5", * "divisionCodes": [ * "ss" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en", * "locationCode": "HAT141", * "locationType": [ * "SellTo" ], * "name": "Nataliemouth location", * "postalCode": "44247", * "priceGroups": [ * "1", * "2" ], * "stateProvince": "Mississippi" } ], * "name": "Vans customer 5", * "phone": "001-908-397-6122x5657", * "vatNumber": "002595" } GETBYCODE Fetch a single customer document with a set of underlying locations (by Code). AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brandCode of the customer) customerCode required string (customerCode is the code of the customer) locationCodes Array of strings (List of locationCodes which are the location identifiers) RESPONSES 200 A successful response. default An unexpected error response. post/v1/customer/getByCode https://api.showroom.stitch.fashion/v1/customer/getByCode REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "customerCode": "string", * "locationCodes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "customerCode": "HAT5", * "id": "CUSTOMER_HAT_HAT5", * "locations": [ * { * "addressLine1": "867 Burnett Ridge Suite 919", * "addressLine2": "Apt. 771", * "brandCode": "HAT", * "city": "Nataliemouth", * "country": "Congo", * "currency": "EUR", * "customerCode": "HAT5", * "divisionCodes": [ * "ss" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en", * "locationCode": "HAT141", * "locationType": [ * "SellTo" ], * "name": "Nataliemouth location", * "postalCode": "44247", * "priceGroups": [ * "1", * "2" ], * "stateProvince": "Mississippi" } ], * "name": "Vans customer 5", * "phone": "001-908-397-6122x5657", * "vatNumber": "002595" } UPSERT Create or Update existing customer entity. The uniqueness of the customer is determined by the customerCode (provided by the client during creation). AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that the customer belongs to) customerCode required string (Uniquely identifies the customer in the brand's internal systems e.g. CRM) name required string (Name of the customer) phone string (Main phone number of the customer) vatNumber string (VAT number of the customer) RESPONSES 200 A successful response. default An unexpected error response. post/v1/customer/upsert https://api.showroom.stitch.fashion/v1/customer/upsert REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string", * "customerCode": "string", * "name": "string", * "phone": "string", * "vatNumber": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy { * "brandCode": "HAT", * "customerCode": "FOO", * "id": "CUSTOMER_HAT_FOO", * "name": "Customer name", * "phone": "+31629468500", * "vatNumber": "NL12345678B01" } LOCATIONS GET Fetch a single location by its internal ID AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON locationID required string (LocationID is the internal location ID) RESPONSES 200 A successful response. default An unexpected error response. post/v1/location/get https://api.showroom.stitch.fashion/v1/location/get REQUEST SAMPLES * Payload Content type application/json Copy { * "locationID": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "brandUserIds": [ * "userID1" ], * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT141", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State", * "stockReferenceCodes": [ * "warehouse_1", * "stock_reference_code_2" ] } GETBYBRANDUSERIDS DEPRECATED: use GetList instead Fetch locations by list of brandUserIDs. Response will return a list of locations with at least one of the brandUserIDs from the request set on the location AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brandCode of the customer) brandUserIDs required Array of strings (brandUserIDs that have access to locations) RESPONSES 200 A successful response. default An unexpected error response. post/v1/location/getByBrandUserIDs https://api.showroom.stitch.fashion/v1/location/getByBrandUserIDs REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "brandUserIDs": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "locations": [ * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "brandUserIds": [ * "userID1" ], * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT141", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State" } ] } GETBYCODES DEPRECATED: use GetList instead Fetch locations by their codes AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brandCode of the customer) locationCodes required Array of strings (List of locationCodes which are the location identifiers) RESPONSES 200 A successful response. default An unexpected error response. post/v1/location/getByCodes https://api.showroom.stitch.fashion/v1/location/getByCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "locationCodes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "locations": [ * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "brandUserIds": [ * "userID1" ], * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT141", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State" } ] } GETLIST Fetch locations by multiple parameters. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON GetLocationList returns Locations filtered by a number of parameters. Returns up to a 100 locations if no pagination is provided. brandCode required string (brandCode of the customer) brandUserIDs Array of strings List of brandUserIDs that have access to locations. When not specified or empty, no filtering by brandUserIDs codes happens. customerCodes Array of strings List of customerCodes locations belong to. When not specified or empty, no filtering by customer codes happens. divisionCodes Array of strings List of divisionCodes locations are related to. When not specified or empty, no filtering by division codes happens. isActiveOnly boolean Default: "false" Whether or not filter out inactive locations. locationCodes Array of strings List of locationCodes which are the location identifiers. When not specified or empty, no filtering by location codes happens. pagination object (customer.Pagination) RESPONSES 200 A successful response. default An unexpected error response. post/v1/location/getList https://api.showroom.stitch.fashion/v1/location/getList REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "brandUserIDs": [ * "string" ], * "customerCodes": [ * "string" ], * "divisionCodes": [ * "string" ], * "isActiveOnly": true, * "locationCodes": [ * "string" ], * "pagination": { * "limit": 200, * "offset": 100 } } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "locations": [ * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "brandUserIds": [ * "userID1" ], * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT141", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State" } ] } UPSERT Create or Update location entity. Uniqueness is determined by the locationCode (provided by the client during creation). You can deactivate a location by updating the entity to have isActive set to false, by doing so it will not be available during the presentation creation/to any user. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON addressLine1 string (Primary location address information) addressLine2 string (Optional additional location address information) brandCode required string (Brand identifier that the location belongs to) brandUserIds Array of strings (A list of brand user IDs which have access to this location) If value is not set or it is an empty list, location will be available to ALL users. If no user codes match existing users, location will not be available. city string (Location town or city) country string (Country of the location) currency required string (The currency for the price group of this location. Should be ISO 4217 3-letter) customerCode required string Customer identifier that the location belongs to. The value should match an existing Customer.customerCode. Locations without existing Customers will not be displayed in the system. divisionCodes required Array of strings (A list of all division codes to which the location has access) If division code does not match any existing division.divisionCode, location will not be available. isActive boolean (IsActive defines whether the customer location is active and therefore able to buy) If set to false, location will not appear in the showroom UI. languageCode string (Defines the language preference of the location. To note; we currently do not provide multi-lingual support) locationCode required string (Uniquely identifies the location in the brand's internal systems e.g. CRM) locationType required Array of strings (Defines whether the location is a store, warehouse or invoice address (sometimes referred to as point of sale, ship-to, invoice-to)) Options: SellTo, ShipTo, InvoiceTo name required string (Name of the location) postalCode string (Location postal code) priceGroups required Array of strings (A list of all price groups codes to which the location is assigned) All the product options will be filtered by the price availability within one currency+priceGroup combination. Make sure, your customer locations have proper groups assigned. stateProvince string (Location state, province or administrative area (depending on country)) stockReferenceCodes Array of strings A list of stock reference codes of this location - used to calculate stock availability (e.g. a list of warehouses that the location can order from). Stock will be aggregated across all matching stock reference codes. If stock reference codes do not match any existing stock.stockReferenceCode, location will show all products as out of stock. If no stock reference codes are provided, location will show all aggregated stock. RESPONSES 200 A successful response. default An unexpected error response. post/v1/location/upsert https://api.showroom.stitch.fashion/v1/location/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "addressLine1": "string", * "addressLine2": "string", * "brandCode": "string", * "brandUserIds": [ * "string" ], * "city": "string", * "country": "string", * "currency": "string", * "customerCode": "string", * "divisionCodes": [ * "string" ], * "isActive": true, * "languageCode": "string", * "locationCode": "string", * "locationType": [ * "string" ], * "name": "string", * "postalCode": "string", * "priceGroups": [ * "string" ], * "stateProvince": "string", * "stockReferenceCodes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "addressLine1": "Google maps, cell 862/17", * "brandCode": "HAT", * "city": "NonExisting", * "country": "USA", * "currency": "USD", * "customerCode": "CUST01", * "divisionCodes": [ * "DIV01", * "DIV02" ], * "id": "LOCATION_HAT_LOC01", * "isActive": true, * "languageCode": "en_US", * "locationCode": "LOC01", * "locationType": [ * "SellTo", * "ShipTo", * "InvoiceTo" ], * "name": "Central location of supercustomer 1", * "postalCode": "862/172225", * "priceGroups": [ * "GROUP01", * "GROUP2" ], * "stateProvince": "LA", * "stockReferenceCodes": [ * "warehouse_1", * "stock_reference_code_2" ] } BULK UPSERT Upsert multiple locations at once. Maximum 1000 locations per request. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch locations required Array of objects (Locations) list of locations to upsert RESPONSES 200 A successful response. default An unexpected error response. post/v1/location/upsert/bulk https://api.showroom.stitch.fashion/v1/location/upsert/bulk REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "locations": [ * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "brandUserIds": [ * "userID1" ], * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT141", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province ofthe State" }, * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT142", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State" } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "locations": [ * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "brandUserIds": [ * "userID1" ], * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "id": "LOCATION_HAT_HAT141", * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT141", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State" }, * { * "addressLine1": "addrline1", * "addressLine2": "addrline2", * "brandCode": "HAT", * "city": "The City", * "country": "NL", * "currency": "DKK", * "customerCode": "HAT5", * "divisionCodes": [ * "d1", * "d2" ], * "id": "LOCATION_HAT_HAT142", * "isActive": true, * "languageCode": "en-US", * "locationCode": "HAT142", * "locationType": [ * "ShipTo" ], * "name": "Name loc foo", * "postalCode": "1234AB", * "priceGroups": [ * "1", * "31" ], * "stateProvince": "The Province of the State" } ] } BRANDS GET Get Brand by brandCode AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode is the unique code of the brand and it is used as the main identifier of the brand) RESPONSES 200 A successful response. default An unexpected error response. post/v1/brand/get https://api.showroom.stitch.fashion/v1/brand/get REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "divisions": { * "DIV1": { * "divisionCode": "DIV1", * "name": "div name", * "seasons": { * "SEASON1": { * "brandCode": "HAT", * "divisionCode": "DIV1", * "market": "International", * "name": "Name 1", * "orderEndDate": "2009-02-13T23:31:30Z", * "orderStartDate": "2009-02-13T23:31:30Z", * "seasonCode": "SEASON1" }, * "SEASON3": { * "brandCode": "HAT", * "divisionCode": "DIV1", * "market": "International", * "name": "Name 3", * "orderEndDate": "2009-02-13T23:31:30Z", * "orderStartDate": "2009-02-13T23:31:30Z", * "seasonCode": "SEASON3" } } }, * "DIV2": { * "divisionCode": "DIV2", * "name": "div name", * "seasons": { * "SEASON2": { * "brandCode": "HAT", * "divisionCode": "DIV2", * "market": "local", * "name": "Name 2", * "orderEndDate": "2009-02-13T23:31:30Z", * "orderStartDate": "2009-02-13T23:31:30Z", * "seasonCode": "SEASON2" } } } }, * "isActive": true, * "name": "Name", * "theme": { * "fontFamilyBody": "font family body", * "fontFamilyDefault": "font family default", * "fontFamilyHeadings": "font family headings", * "primaryColor": "#000000", * "secondaryColor": "#111111", * "textColor": "#222222" } } UPDATESIZECONFIG UpdateSizeConfig by brandCode AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode is the unique code of the brand and it is used as the main identifier of the brand) sizeConfig object (SizeConfig to set the order of sizes shown in the size tables) RESPONSES 200 A successful response. default An unexpected error response. post/v1/brand/updateSizeConfig https://api.showroom.stitch.fashion/v1/brand/updateSizeConfig REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "sizeConfig": { * "mainSizeOrder": [ * "string" ], * "subSizeOrder": { * "property1": { * "order": [ * "string" ] }, * "property2": { * "order": [ * "string" ] } } } } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "mainSizeOrder": [ * "XS", * "S", * "M", * "L", * "XL" ], * "subSizeOrder": { * "inseam": { * "order": [ * "31", * "32", * "33" ] } } } DIVISIONS GET Get a division of a brand by divisionCode and brandCode. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode that this division belongs to) divisionCode required string (DivisionCode used by the brand internally, for example, in their ERP system, to uniquely identify a division) RESPONSES 200 A successful response. default An unexpected error response. post/v1/division/get https://api.showroom.stitch.fashion/v1/division/get REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string", * "divisionCode": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "divisionCode": "DIV1", * "seasons": { * "SEASON1": { * "brandCode": "HAT", * "divisionCode": "DIV1", * "market": "International", * "name": "Name 1", * "orderEndDate": "2020-01-01T00:00:00Z", * "orderStartDate": "2020-01-01T00:00:00Z", * "seasonCode": "SEASON1" } } } UPSERT Create or Update an existing division. The uniqueness of the division is determined by divisionCode and brandCode. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode that this division belongs to) divisionCode required string (DivisionCode used by the brand internally, for example, in their ERP system, to uniquely identify a division) name required string (Name of the division, to be used in the user interface of the digital showroom) RESPONSES 200 A successful response. default An unexpected error response. post/v1/division/upsert https://api.showroom.stitch.fashion/v1/division/upsert REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string", * "divisionCode": "string", * "name": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "divisionCode": "DIV1", * "name": "Division 1", * "seasons": { * "SEASON1": { * "brandCode": "HAT", * "divisionCode": "DIV1", * "market": "International", * "name": "Name 1", * "orderEndDate": "2009-02-13T23:31:30Z", * "orderStartDate": "2009-02-13T23:31:30Z", * "seasonCode": "SEASON1" } } } SEASONS GET Get a season of a brand by seasonCode, divisionCode and brandCode. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode that this season belongs to) divisionCode required string (DivisionCode that this season belongs to) seasonCode required string (SeasonCode used by the brand internally to uniquely identify the season) RESPONSES 200 A successful response. default An unexpected error response. post/v1/season/get https://api.showroom.stitch.fashion/v1/season/get REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string", * "divisionCode": "string", * "seasonCode": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy { * "brandCode": "HAT", * "divisionCode": "DIV1", * "market": "m", * "name": "summer 2020", * "orderEndDate": "2009-02-13T23:31:31Z", * "orderStartDate": "2009-02-13T23:31:30Z", * "seasonCode": "S1" } UPSERT Create or Update an existing season. The uniqueness of the season is determined by seasonCode, divisionCode and brandCode. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode that this season belongs to) divisionCode required string (DivisionCode that this season belongs to) market string (If the products in a catalog are unique for a particular market, this should be populated) name required string (Name of the season, to be used in the user interface of the digital showroom) orderEndDate string (Last date on which products in the season are available for ordering This is leading when determining whether a presentation can be created for products in a season If there are products available in the season with a later order end date, they will not be able to be ordered after the season has ended) orderStartDate required string (Start date from which products in the season are available for ordering This is leading when determining whether a presentation can be created for products in a season If there are products available in the season with an earlier order start date, they will not be able to be ordered until the season start date is reached) seasonCode required string (SeasonCode used by the brand internally to uniquely identify the season) RESPONSES 200 A successful response. default An unexpected error response. post/v1/season/upsert https://api.showroom.stitch.fashion/v1/season/upsert REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string", * "divisionCode": "string", * "market": "string", * "name": "string", * "orderEndDate": "string", * "orderStartDate": "string", * "seasonCode": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy { * "brandCode": "HAT", * "divisionCode": "D1", * "market": "m", * "name": "summer 2020", * "orderEndDate": "2009-02-13T23:31:31Z", * "orderStartDate": "2009-02-13T23:31:30Z", * "seasonCode": "S1" } DELIVERY DROPS GETBYCODE Get a delivery drops of a brand by code AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (The brand code assigned by Hatch) codes required Array of strings (A list of delivery drop codes used during the DeliveryDrop creation) RESPONSES 200 A successful response. default An unexpected error response. post/v1/delivery_drop/getByCodes https://api.showroom.stitch.fashion/v1/delivery_drop/getByCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "codes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all [ * { * "brandCode": "HAT", * "code": "delivery_42", * "id": "DELIVERY_DROP_DELIVERY_42", * "index": 7, * "isActive": true, * "name": "Holidays", * "seasonCodes": [ * "S1", * "S2" ] }, * { * "brandCode": "HAT", * "code": "delivery_43", * "id": "DELIVERY_DROP_DELIVERY_43", * "index": 2, * "isActive": true, * "name": "Before Holidays", * "seasonCodes": [ * "S2" ] } ] GETBYIDS Get a delivery drops of a brand by ID AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (The brand code assigned by Hatch) ids required Array of strings (A list of Hatch unique ids) RESPONSES 200 A successful response. default An unexpected error response. post/v1/delivery_drop/getByIds https://api.showroom.stitch.fashion/v1/delivery_drop/getByIds REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "ids": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all [ * { * "brandCode": "HAT", * "code": "delivery_42", * "id": "DELIVERY_DROP_DELIVERY_42", * "index": 7, * "isActive": true, * "name": "Holidays", * "seasonCodes": [ * "S1", * "S2" ] }, * { * "brandCode": "HAT", * "code": "delivery_43", * "id": "DELIVERY_DROP_DELIVERY_43", * "index": 2, * "isActive": true, * "name": "Before Holidays", * "seasonCodes": [ * "S2" ] } ] GETBYSEASON Get delivery drops of a brand by season codes AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (The brand code assigned by Hatch) seasonCodes required Array of strings (A list of season codes used during the Season creation) RESPONSES 200 A successful response. default An unexpected error response. post/v1/delivery_drop/getBySeasonCodes https://api.showroom.stitch.fashion/v1/delivery_drop/getBySeasonCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "seasonCodes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all [ * { * "brandCode": "HAT", * "code": "delivery_42", * "id": "DELIVERY_DROP_DELIVERY_42", * "index": 7, * "isActive": true, * "name": "Holidays", * "seasonCodes": [ * "S1", * "S2" ] }, * { * "brandCode": "HAT", * "code": "delivery_43", * "id": "DELIVERY_DROP_DELIVERY_43", * "index": 2, * "isActive": true, * "name": "Before Holidays", * "seasonCodes": [ * "S2" ] } ] UPSERT Create or Update an existing DeliveryDrop. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Hatch code required string <string> (Code) A value used on the brand side to uniquely identify the delivery drop index integer <integer> (Delivery Drop index) A numeric value to sort delivery drops. If 2 indexes are equal, the order is not determined. Values from -2,147,483,648 to 2,147,483,647 are supported. default: 0 isActive boolean <boolean> (Is active?) Indicates whether DeliveryDrop is active. Basically a soft-delete functionality name required string <string> (Delivery Name) Name of the delivery drop visible to the users seasonCodes required Array of strings (Season codes) A list of season codes in which this delivery drop can be used. Seasons should exist. RESPONSES 200 A successful response. default An unexpected error response. post/v1/delivery_drop/upsert https://api.showroom.stitch.fashion/v1/delivery_drop/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "code": "delivery_42", * "index": 42, * "isActive": true, * "name": "Holidays", * "seasonCodes": [ * "S1", * "S2" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "code": "delivery_42", * "id": "DELIVERY_DROP_DELIVERY_42", * "index": 7, * "isActive": "true", * "name": "Holidays", * "seasonCodes": [ * "S1", * "S2" ] } OPTIONS V1 GETBYCODES DEPRECATED: use GetByCodes in Options V2 instead Fetch options by external code AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brand identifier that the option belongs to) codes required Array of strings (external code of options for fetching) RESPONSES 200 A successful response. default An unexpected error response. post/v1/option/getByCodes https://api.showroom.stitch.fashion/v1/option/getByCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "codes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "categories": [ * "sports-dames", * "" ], * "colorCode": "G12", * "colorName": "lipstick/beta", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-14T12:33:22Z", * "2020-11-14T12:33:22Z", * "2020-12-14T12:33:22Z" ], * "description": "GRAPHIC SPORTSTYLE CLASSIC CREW", * "divisionCode": "UA1", * "fields": [ * { * "name": "fabric weight" }, * { * "name": "material composition" }, * { * "name": "care instructions" } ], * "gender": "MEN", * "id": "OPTION_HAT_OPTIONCODE1", * "imageMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-123" ], * "isActive": true, * "modifiedAt": "2020-04-06T10:37:07Z", * "optionCode": "option123", * "seasonCodes": [ * "FALL 2020" ], * "status": "new", * "styleCode": "UN241D0A3", * "videoMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-555" ] }, * { * "brandCode": "HAT", * "categories": [ * "damesschoenen", * "" ], * "colorCode": "A11", * "colorName": "white", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-14T00:00:00Z", * "2020-11-14T00:00:00Z", * "2020-12-14T00:00:00Z" ], * "description": "HOVR SONIC ", * "divisionCode": "UA1", * "fields": [ * { * "name": "fabric weight" }, * { * "name": "material composition" }, * { * "name": "care instructions" } ], * "gender": "MEN", * "id": "OPTION_HAT_OPTIONCODE2", * "imageMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-456" ], * "isActive": true, * "modifiedAt": "2020-04-06T10:37:08Z", * "optionCode": "option456", * "seasonCodes": [ * "FALL 2020" ], * "status": "new", * "styleCode": "UN241A07Q" } ] } GETBYIDS DEPRECATED: use GetByIDs in Options V2 instead Fetch options by internal ids and optional price filters AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON filtersByPrice object (Is used to filter options by the price availability) ids required Array of strings (internal ids of options for fetching) RESPONSES 200 A successful response. default An unexpected error response. post/v1/option/getByIDs https://api.showroom.stitch.fashion/v1/option/getByIDs REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "filtersByPrice": { * "brandCode": "string", * "currency": "string", * "priceGroupID": "string" }, * "ids": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "categories": [ * "sports-dames", * "" ], * "colorCode": "G12", * "colorName": "lipstick/beta", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-14T12:33:22Z", * "2020-11-14T12:33:22Z", * "2020-12-14T12:33:22Z" ], * "description": "GRAPHIC SPORTSTYLE CLASSIC CREW", * "divisionCode": "UA1", * "fields": [ * { * "name": "fabric weight" }, * { * "name": "material composition" }, * { * "name": "care instructions" } ], * "gender": "MEN", * "id": "OPTION_HAT_OPTIONCODE1", * "imageMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-123" ], * "isActive": true, * "modifiedAt": "2020-04-06T10:37:07Z", * "optionCode": "option123", * "seasonCodes": [ * "FALL 2020" ], * "sizes": [ * "XS", * "S", * "M", * "L", * "XL", * "XXL" ], * "status": "new", * "styleCode": "UN241D0A3", * "videoMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-555" ] }, * { * "brandCode": "HAT", * "categories": [ * "damesschoenen", * "" ], * "colorCode": "A11", * "colorName": "white", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-14T00:00:00Z", * "2020-11-14T00:00:00Z", * "2020-12-14T00:00:00Z" ], * "description": "HOVR SONIC ", * "divisionCode": "UA1", * "fields": [ * { * "name": "fabric weight" }, * { * "name": "material composition" }, * { * "name": "care instructions" } ], * "gender": "MEN", * "id": "OPTION_HAT_OPTIONCODE2", * "imageMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-456" ], * "isActive": true, * "modifiedAt": "2020-04-06T10:37:08Z", * "optionCode": "option456", * "seasonCodes": [ * "FALL 2020" ], * "sizes": [ * "38", * "38.5", * "40", * "40.5", * "41", * "42.5" ], * "status": "new", * "styleCode": "UN241A07Q" } ] } SETMEDIABYCODES DEPRECATED: use SetMediaByCodes in Options V2 instead Attaches the media by their internal ids to the option by option code Multiple options/media combination can be requested under the same brandCode AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON Deprecated: use SetMediaByCodesV2Request instead brandCode string <string> (Brand Code) brand identifier that the options and media belong to options Array of objects (Options) list of options and their media IDs RESPONSES 200 A successful response. default An unexpected error response. post/v1/option/setMediaByCodes https://api.showroom.stitch.fashion/v1/option/setMediaByCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "imageCodes": [ * "IMAGE_CODE_1", * "IMAGE_CODE_2" ], * "imageIDs": [ * "IMAGE_ID_1", * "IMAGE_ID_2" ], * "media3D": [ * { * "link": "https://embed.vntana.com?productUuid=21c9f4a0-a0a8-4a03-b236-7bea8e10b912&clientSlug=staud--new-balance&organizationSlug=staud", * "provider": "vntana" } ], * "videoCodes": [ * "VIDEO_CODE_1", * "VIDEO_CODE_2" ], * "videoIDs": [ * "VIDEO_ID_1", * "VIDEO_ID_2" ] } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy { * "status": true } UPSERT DEPRECATED: use Upsert in Options V2 instead Create or Update an option by option code AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brand identifier that the option belongs to) categories required Array of strings (list of categories that the option belongs to) colorCode required string (brand-specific color or pattern code of the option this is the code that will shown as the code of the option color in the catalog) colorName required string (brand-specific color or pattern name of the option this is the name that will shown as the name of the option color in the catalog) countryOfOrigin string (country of origin of the option) deliveryDates Array of strings (Use delivery drop codes instead. List of available delivery dates of the option) Deprecated: Use deliveryDropCodes field instead deliveryDropCodes Array of strings (list of available delivery drop codes of the option) description required string (style description. Used as title of the option in lists and detail pages) divisionCode required string division code to which this option belongs should match an existing Division.division.Code to be displayed. fields Array of objects (extra information to be attached to this option) gender required string (gender (and age) categorisation of a style) isActive boolean whether the option is active or not. Active works as a soft delete where the product is no longer shown in the catalog and will not be available to order in case it is set to false. optionCode required string (unique identifier for an option. For most brands this field is the combination of styleCode and colorCode) seasonCodes required Array of strings (list of season codes in which the option is available for selling) sizes Array of strings (list of available sizes) Deprecated: Use Size entity per SKU instead status string (the status of the option. This may drive how the option appears in the digital showroom. Does not affect product availability in the system) Options: soldout, cancelled, new, updated styleCode required string (unique identifier for a style) tags Array of objects (list of tags to describe the option) RESPONSES 200 A successful response. default An unexpected error response. post/v1/option/upsert https://api.showroom.stitch.fashion/v1/option/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "categories": [ * "string" ], * "colorCode": "string", * "colorName": "string", * "countryOfOrigin": "string", * "deliveryDates": [ * "string" ], * "deliveryDropCodes": [ * "string" ], * "description": "string", * "divisionCode": "string", * "fields": [ * { * "display": true, * "name": "string", * "value": "string" } ], * "gender": "string", * "isActive": true, * "optionCode": "string", * "seasonCodes": [ * "string" ], * "sizes": [ * "string" ], * "status": "string", * "styleCode": "string", * "tags": [ * { * "name": "string", * "value": "string" } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "categories": [ * "cat1", * "cat2" ], * "colorCode": "011", * "colorName": "Black", * "countryOfOrigin": "coo valid", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-17T17:55:43Z" ], * "description": "Lorem ipsum dolor sit amet", * "divisionCode": "div42", * "fields": [ * { * "display": true, * "name": "fname1", * "value": "fval1" } ], * "gender": "reptiloid", * "id": "OPTION_HAT_OPTIONCODE", * "isActive": true, * "modifiedAt": "2020-09-24T14:22:23Z", * "optionCode": "someCode", * "seasonCodes": [ * "season1" ], * "sizes": [ * "L", * "M", * "whatever" ], * "status": "new", * "styleCode": "DM0DM03810911", * "tags": [ * { * "name": "tname1", * "value": "tval1" } ] } OPTIONS V2 FETCH Fetch options by external code AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brand identifier that the option belongs to) codes required Array of strings (external code of options for fetching) RESPONSES 200 A successful response. default An unexpected error response. post/v2/option/getByCodes https://api.showroom.stitch.fashion/v2/option/getByCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "codes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "attributes": [ * { * "name": "program", * "value": "internaltional" } ], * "brandCode": "HAT", * "colorCode": "G12", * "colorName": "lipstick/beta", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-14T12:33:22Z", * "2020-11-14T12:33:22Z", * "2020-12-14T12:33:22Z" ], * "description": "GRAPHIC SPORTSTYLE CLASSIC CREW", * "divisionCode": "UA1", * "fields": [ * { * "name": "fabric weight" }, * { * "name": "material composition" }, * { * "name": "care instructions" } ], * "gender": "MEN", * "id": "OPTION_HAT_OPTIONCODE1", * "imageMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-123" ], * "isActive": true, * "modifiedAt": "2020-04-06T10:37:07Z", * "optionCode": "option123", * "productHierarchy": { * "group": "Coats", * "subgroup": "Rain Coats" }, * "seasonCodes": [ * "FALL 2020" ], * "status": "new", * "styleCode": "UN241D0A3", * "videoMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-555" ] }, * { * "attributes": [ * { * "name": "program", * "value": "internaltional" }, * { * "name": "firstDeliveryDate", * "value": "July2022" } ], * "brandCode": "HAT", * "colorCode": "A11", * "colorName": "white", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-14T00:00:00Z", * "2020-11-14T00:00:00Z", * "2020-12-14T00:00:00Z" ], * "description": "HOVR SONIC ", * "divisionCode": "UA1", * "fields": [ * { * "name": "fabric weight" }, * { * "name": "material composition" }, * { * "name": "care instructions" } ], * "gender": "MEN", * "id": "OPTION_HAT_OPTIONCODE2", * "imageMediaIDs": [ * "MEDIA_2e3ab1ab-dc04-4cff-b77f-456" ], * "isActive": true, * "modifiedAt": "2020-04-06T10:37:08Z", * "optionCode": "option456", * "productHierarchy": { * "group": "Jeans", * "subgroup": "Pants" }, * "seasonCodes": [ * "FALL 2020" ], * "status": "new", * "styleCode": "UN241A07Q" } ] } ATTACH MEDIA Attaches the media by their internal ids to the option by option code Multiple options/media combination can be requested under the same brandCode AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode string <string> (Brand Code) brand identifier that the options and media belong to options Array of objects (Options) list of options and their media IDs RESPONSES 200 A successful response. default An unexpected error response. post/v2/option/setMediaByCodes https://api.showroom.stitch.fashion/v2/option/setMediaByCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "imageCodes": [ * "IMAGE_CODE_1", * "IMAGE_CODE_2" ], * "media3D": [ * { * "link": "https://embed.vntana.com?productUuid=21c9f4a0-a0a8-4a03-b236-7bea8e10b912&clientSlug=staud--new-balance&organizationSlug=staud", * "provider": "vntana" } ], * "videoCodes": [ * "VIDEO_CODE_1", * "VIDEO_CODE_2" ] } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy { * "status": true } UPSERT Create or Update an option by option code AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON attributes Array of objects (list of option attributes. Attributes describe specific characteristics of the option and are used for filtering and search) brandCode required string (brand identifier that the option belongs to) colorCode required string (brand-specific color or pattern code of the option this is the code that will shown as the code of the option color in the catalog) colorName required string (brand-specific color or pattern name of the option this is the name that will shown as the name of the option color in the catalog) countryOfOrigin string (country of origin of the option) deliveryDropCodes Array of strings (list of available delivery drop codes of the option) description required string (style description. Used as title of the option in lists and detail pages) divisionCode required string division code to which this option belongs should match an existing Division.division.Code to be displayed. fields Array of objects (extra information to be attached to this option) gender required string (gender (and age) categorisation of a style) isActive boolean whether the option is active or not. Active works as a soft delete where the product is no longer shown in the catalog and will not be available to order in case it is set to false. optionCode required string (unique identifier for an option. For most brands this field is the combination of styleCode and colorCode) productHierarchy required object (productHierarchy described with two levels) seasonCodes required Array of strings (list of season codes in which the option is available for selling) status string (the status of the option. This may drive how the option appears in the digital showroom) styleCode required string (unique identifier for a style) RESPONSES 200 A successful response. default An unexpected error response. post/v2/option/upsert https://api.showroom.stitch.fashion/v2/option/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "attributes": [ * { * "name": "string", * "value": "string" } ], * "brandCode": "string", * "colorCode": "string", * "colorName": "string", * "countryOfOrigin": "string", * "deliveryDropCodes": [ * "string" ], * "description": "string", * "divisionCode": "string", * "fields": [ * { * "display": true, * "name": "string", * "value": "string" } ], * "gender": "string", * "isActive": true, * "optionCode": "string", * "productHierarchy": { * "group": "string", * "subgroup": "string" }, * "seasonCodes": [ * "string" ], * "status": "string", * "styleCode": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "attributes": [ * { * "name": "tname1", * "value": "tval1" } ], * "brandCode": "HAT", * "colorCode": "011", * "colorName": "Black", * "countryOfOrigin": "coo valid", * "deliveryDropCodes": [ * "delivery_42", * "2020-10-17T17:55:43Z" ], * "description": "Loremipsumdolor sitamet", * "divisionCode": "div42", * "fields": [ * { * "display": true, * "name": "fname1", * "value": "fval1" } ], * "gender": "reptiloid", * "id": "OPTION_HAT_OPTIONCODE", * "isActive": true, * "modifiedAt": "2020-09-24T14:22:23Z", * "optionCode": "someCode", * "productHierarchy": { * "group": "cat1", * "subgroup": "cat2" }, * "seasonCodes": [ * "season1" ], * "sizes": [ * "L", * "M", * "whatever" ], * "status": "new", * "styleCode": "DM0DM03810911" } ATTACH 3D VIEWER LINKS Attaches 3D links to options. Multiple options can be upserted at once. The order in which the links are sent determines the order they appear on the product detail page. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand Code) brand identifier that the options and links belong to options Array of objects (Options) list of options and their links RESPONSES 200 A successful response. default An unexpected error response. post/v2/option/upsert/3dLinks https://api.showroom.stitch.fashion/v2/option/upsert/3dLinks REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "links": [ * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "vntana" }, * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "sketchfab" } ] }, * { * "code": "OPTION_CODE_2", * "links": [ * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "vntana" } ] } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "imageCodes": [ * "IMAGE01_1" ], * "links": [ * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "vntana" }, * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "sketchfab" } ], * "videoCodes": [ * "VIDEO01_1" ] }, * { * "code": "OPTION_CODE_2", * "imageCodes": [ * "IMAGE01_1" ], * "links": [ * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "vntana" } ], * "videoCodes": [ ] } ] } ATTACH IMAGES Attaches images to options by their media codes. Multiple options can be upserted at once. The order of which the image codes are sent determines the order they appear on the product detail page. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand Code) brand identifier that the options and media belong to options Array of objects (Options) list of options and their image media codes RESPONSES 200 A successful response. default An unexpected error response. post/v2/option/upsert/images https://api.showroom.stitch.fashion/v2/option/upsert/images REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "imageCodes": [ * "OPT1_IMAGE_CODE_1", * "OPT1_IMAGE_CODE_2" ] }, * { * "code": "OPTION_CODE_2", * "imageCodes": [ * "OPT2_IMAGE_CODE_1", * "OPT2_IMAGE_CODE_2" ] } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "imageCodes": [ * "OPT1_IMAGE_CODE_1", * "OPT1_IMAGE_CODE_2" ], * "links": [ ], * "videoCodes": [ * "VIDEO01_1" ] }, * { * "code": "OPTION_CODE_2", * "imageCodes": [ * "OPT2_IMAGE_CODE_1", * "OPT2_IMAGE_CODE_2" ], * "links": [ ], * "videoCodes": [ ] } ] } ATTACH VIDEOS Attaches videos to options by their media codes. Multiple options can be upserted at once. The order of which the video codes are sent determines the order they appear on the product detail page. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand Code) brand identifier that the options and media belong to options Array of objects (Options) list of options and their video media codes RESPONSES 200 A successful response. default An unexpected error response. post/v2/option/upsert/videos https://api.showroom.stitch.fashion/v2/option/upsert/videos REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "videoCodes": [ * "OPT1_VIDEO_CODE_1", * "OPT1_VIDEO_CODE_2" ] }, * { * "code": "OPTION_CODE_2", * "videoCodes": [ * "OPT2_VIDEO_CODE_1", * "OPT2_VIDEO_CODE_2" ] } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "options": [ * { * "code": "OPTION_CODE_1", * "imageCodes": [ * "IMAGE01_1", * "IMAGE01_2", * "IMAGE01_3", * "IMAGE01_4", * "IMAGE01_5", * "IMAGE01_6", * "IMAGE01_7" ], * "links": [ ], * "videoCodes": [ * "OPT1_VIDEO_CODE_1", * "OPT1_VIDEO_CODE_2" ] }, * { * "code": "OPTION_CODE_2", * "imageCodes": [ * "IMAGE01_1", * "IMAGE01_2" ], * "links": [ * { * "link": "https://embed.3dprovider.com?id=4c55c2b8-dc0a-48e6-8f5e-64256af4ac29&organization=yourBrand", * "provider": "vntana" } ], * "videoCodes": [ * "OPT2_VIDEO_CODE_1", * "OPT2_VIDEO_CODE_2" ] } ] } PRICES OPTIONPRICES fetch prices of options by option ids, currency, priceGroupID for a specific brandCode AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brand identifier that the option price belongs to) currency required string (currency for the price group. ISO 4217 3-letter currency code) optionIDs required Array of strings (list of internal option ids) priceGroupID required string (unique identifier for the price group as set by the brand) RESPONSES 200 A successful response. default An unexpected error response. post/v1/price/getByOptionIDs https://api.showroom.stitch.fashion/v1/price/getByOptionIDs REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "currency": "string", * "optionIDs": [ * "string" ], * "priceGroupID": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "currency": "USD", * "id": "PRICE_HAT_PRICE1", * "optionCode": "OPTION1", * "priceCode": "priceCode_1", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 600, * "retailPrice": 700, * "sku": "priceCode_1_XS", * "wholesalePrice": 500 }, * { * "discountWholesalePrice": 300, * "retailPrice": 100, * "sku": "priceCode_1_XL", * "wholesalePrice": 200 } ], * "styleOptionID": "OPTION_HAT_OPTION1", * "validFrom": "1973-11-29T21:33:09Z", * "validTo": "1973-11-29T21:33:08Z" }, * { * "brandCode": "HAT", * "currency": "USD", * "id": "PRICE_HAT_PRICE2", * "optionCode": "OPTION2", * "priceCode": "priceCode_2", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 600, * "retailPrice": 400, * "sku": "priceCode_2_XS", * "wholesalePrice": 500 }, * { * "discountWholesalePrice": 300, * "retailPrice": 100, * "sku": "priceCode_2_L", * "wholesalePrice": 200 } ], * "styleOptionID": "OPTION_HAT_OPTION2", * "validFrom": "1973-11-29T21:33:09Z", * "validTo": "1973-11-29T21:33:08Z" }, * { * "brandCode": "HAT", * "currency": "USD", * "id": "PRICE_HAT_PRICE3", * "optionCode": "OPTION2", * "priceCode": "priceCode_3", * "priceGroupID": "2", * "pricePerSize": [ * { * "discountWholesalePrice": 600, * "retailPrice": 400, * "sku": "priceCode_3_XS", * "wholesalePrice": 500 }, * { * "discountWholesalePrice": 300, * "retailPrice": 100, * "sku": "priceCode_3_XL", * "wholesalePrice": 200 } ], * "styleOptionID": "OPTION_HAT_OPTION2", * "validFrom": "1973-11-29T21:33:09Z", * "validTo": "1973-11-29T21:33:08Z" } ] } UPSERT Create or Update an option price by the brand priceCode identifier AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (brand identifier that the option price belongs to) currency required string (currency for the price group. ISO 4217 3-letter currency code) optionCode required string (unique identifier for an option. For most brands this field is the combination of styleCode and colorCode) priceCode required string (unique identifier for the price) priceGroupID required string (unique identifier for the price group as set by the brand) pricePerSize required Array of objects (list of price details per size) validFrom string (start of validity window for the price (i.e.: for a discount for a specific period, or for an upcoming price change) Leave empty if it is valid immediately) validTo string (end of validity window for this price Leave empty if it is valid eternally, or until further notice) RESPONSES 200 A successful response. default An unexpected error response. post/v1/price/upsert https://api.showroom.stitch.fashion/v1/price/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "currency": "string", * "optionCode": "string", * "priceCode": "string", * "priceGroupID": "string", * "pricePerSize": [ * { * "discountWholesalePrice": 0, * "retailPrice": 0, * "size": "string", * "sku": "string", * "wholesalePrice": 0 } ], * "validFrom": "string", * "validTo": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "currency": "USD", * "id": "PRICE_HAT_SOMEPRICECODE", * "optionCode": "SOMEOPTIONCODE", * "priceCode": "somePriceCode", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "sku": "SOMEPRICECODE_L", * "wholesalePrice": 300 } ], * "styleOptionID": "OPTION_HAT_SOMEOPTIONCODE", * "validFrom": "2020-02-04T15:03:24Z", * "validTo": "2021-02-03T15:03:24Z" } BULKUPSERT create or update an option price by the brand priceCode identifier Bulk Upsert is limited to 1000 prices per request AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string prices required Array of objects (Prices) list of prices to upsert RESPONSES 200 A successful response. default An unexpected error response. post/v1/price/upsert/bulk https://api.showroom.stitch.fashion/v1/price/upsert/bulk REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "prices": [ * { * "brandCode": "HAT", * "currency": "USD", * "optionCode": "SOMEOPTIONCODE", * "priceCode": "somePriceCode", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "sku": "somePriceCode_L", * "wholesalePrice": 300 } ], * "validFrom": "2020-02-04T15:03:24Z", * "validTo": "2021-02-03T15:03:24Z" }, * { * "brandCode": "HAT", * "currency": "USD", * "optionCode": "SOMEOTHEROPTIONCODE", * "priceCode": "someOtherPriceCode", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "sku": "someOtherPriceCode_L", * "wholesalePrice": 300 }, * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "sku": "someOtherPriceCode_M", * "wholesalePrice": 300 } ], * "validFrom": "2023-03-04T15:03:24Z", * "validTo": "2024-03-03T15:03:24Z" } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "currency": "USD", * "id": "PRICE_HAT_SOMEPRICECODE", * "optionCode": "SOMEOPTIONCODE", * "priceCode": "somePriceCode", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "size": "somePriceCode_L", * "wholesalePrice": 300 } ], * "styleOptionID": "OPTION_HAT_SOMEOPTIONCODE", * "validFrom": "2020-02-04T15:03:24Z", * "validTo": "2021-02-03T15:03:24Z" }, * { * "brandCode": "HAT", * "currency": "USD", * "id": "PRICE_HAT_SOMEOTHERPRICECODE", * "optionCode": "SOMEOTHEROPTIONCODE", * "priceCode": "someOtherPriceCode", * "priceGroupID": "1", * "pricePerSize": [ * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "sku": "someOtherPriceCode_L", * "wholesalePrice": 300 }, * { * "discountWholesalePrice": 200, * "retailPrice": 500, * "size": "someOtherPriceCode_M", * "wholesalePrice": 300 } ], * "styleOptionID": "OPTION_HAT_SOMEOTHEROPTIONCODE", * "validFrom": "2023-03-04T15:03:24Z", * "validTo": "2024-03-03T15:03:24Z" } ] } SIZES GET BY OPTION CODES Fetch sizes assigned to options by their codes AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch optionCodes required Array of strings (Option codes) A list of option codes assigned during import RESPONSES 200 A successful response. default An unexpected error response. post/v1/size/getByOptionCodes https://api.showroom.stitch.fashion/v1/size/getByOptionCodes REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "optionCodes": [ * "string" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "constraints": { * "minimum": "1", * "multiplier": "2" }, * "id": "SIZE_HAT_OPTIONCODE1.M42.30", * "isActive": true, * "optionCode": "OPTIONCODE1", * "optionID": "OPTION_HAT_OPTIONCODE1", * "size": "30", * "sku": "OPTIONCODE1.M42.30", * "subSizes": { * "inseam": "32" } }, * { * "brandCode": "HAT", * "constraints": { }, * "id": "SIZE_HAT_OPTIONCODE1.M42.XXXXS", * "isActive": true, * "optionCode": "OPTIONCODE42", * "optionID": "OPTION_HAT_OPTIONCODE42", * "size": "XXXXS", * "sku": "OPTIONCODE1.M42.XXXXS", * "subSizes": { } } ] } UPSERT create or update an option size by SKU field value AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON Each size represents a unique set of dimensions for a particular option. Use Size field to specify the main dimention and subSizes map to add additional ones. Combination of Size and all the subsizes should be unique as it can be shown to a user in a table view. brandCode required string <string> (Brand code) Brand code issued by Stitch constraints object <map> (is a set of rules enforced upon the item during the draft order creation Options: `minimum: <int>`, `multiplier: <int>`) Is a set of rules enforced upon the item during the draft order creation isActive boolean <boolean> (a field to soft-delete or disable sizes from the API) A field to soft-delete or disable sizes from the API optionCode required string <string> (Option code) Code of the product option to which this size belongs size required string <string> (the human-readable size name that will be displayed for the users) The human-readable size name that will be displayed for the users sku required string <string> (SKU) This field can store any identifier that is unique on the client side. Can be sku/ean/internal id. The value will be used as the main identifier for the order line. subSizes object <map> (is useful for the multidimentional sizes like pants or bras. For example, "inseam":"32") An additional size dimensions for the main size. Is useful for the multidimentional sizes like pants or bras RESPONSES 200 A successful response. default An unexpected error response. post/v1/size/upsert https://api.showroom.stitch.fashion/v1/size/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "constraints": { * "minimum": "1", * "multiplier": "2" }, * "isActive": true, * "optionCode": "OPTIONCODE1", * "size": "30", * "sku": "OPTIONCODE1.M42.30", * "subSizes": { * "inseam": "32" } } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "constraints": { * "minimum": "1", * "multiplier": "2" }, * "id": "SIZE_HAT_OPTIONCODE1.M42.30", * "isActive": true, * "optionCode": "OPTIONCODE1", * "optionID": "OPTION_HAT_OPTIONCODE1", * "size": "30", * "sku": "OPTIONCODE1.M42.30", * "subSizes": { * "inseam": "32" } } BULK UPSERT Bulk Upsert is a request to upsert many sizes at once Bulk Upsert is limited to 1000 sizes per request AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch sizes required Array of objects (Sizes) list of sizes to upsert RESPONSES 200 A successful response. default An unexpected error response. post/v1/size/upsert/bulk https://api.showroom.stitch.fashion/v1/size/upsert/bulk REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "sizes": [ * { * "brandCode": "HAT", * "constraints": { * "minimum": "1", * "multiplier": "2" }, * "optionCode": "OPTION_CODE_1", * "size": "40", * "sku": "OPTION_CODE_1.M40.40", * "subSizes": { * "inseam": "32" } }, * { * "brandCode": "HAT", * "optionCode": "OPTION_CODE_1", * "size": "30", * "sku": "OPTION_CODE_1.M42.30", * "subSizes": { * "inseam": "32" } }, * { * "brandCode": "HAT", * "optionCode": "OPTION_CODE_2", * "size": "30", * "sku": "OPTION_CODE_2.M42.30", * "subSizes": { * "inseam": "32" } } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "constraints": { * "minimum": "1", * "multiplier": "2" }, * "id": "SIZE_HAT_OPTIONCODE1.M42.30", * "isActive": true, * "optionCode": "OPTIONCODE1", * "optionID": "OPTION_HAT_OPTIONCODE1", * "size": "30", * "sku": "OPTIONCODE1.M42.30", * "subSizes": { * "inseam": "32" } }, * { * "brandCode": "HAT", * "constraints": { }, * "id": "SIZE_HAT_OPTIONCODE1.M42.XXXXS", * "isActive": true, * "optionCode": "OPTIONCODE42", * "optionID": "OPTION_HAT_OPTIONCODE42", * "size": "XXXXS", * "sku": "OPTIONCODE1.M42.XXXXS", * "subSizes": { } } ] } CATALOGS GETBYCODE Get a catalog by it's code assigned during the creation AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch code required string <string> (Code) A value used on the brand side to uniquely identify the catalog RESPONSES 200 A successful response. default An unexpected error response. post/v1/catalog/getByCode https://api.showroom.stitch.fashion/v1/catalog/getByCode REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "HAT", * "code": "CATALOG_42" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "availCustomerCodes": [ * "CUSTOMER_CODE1", * "CUSTOMER_CODE2" ], * "availLocationCodes": [ * "LOCATION_CODE_1", * "LOCATION_CODE_2" ], * "availUserCodes": [ * "USER_CODE_1", * "USER_CODE_2" ], * "brandCode": "HAT", * "code": "CATALOG_42", * "createdAt": "2021-10-06T11:19:54Z", * "id": "CATALOG_HAT_CATALOG_42", * "isActive": true, * "modifiedAt": "2021-10-06T11:19:54Z", * "name": "Premium season Summer/Fall 2022", * "selDeliverydropCodes": [ * "DELIVERY_DROP_CODE_1", * "DELIVERY_DROP_CODE_2" ], * "selDivisionCodes": [ * "DIVISION_CODE_1", * "DIVISION_CODE_2" ], * "selOptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "selSKUs": [ * "SKU42", * "SKU9999999999" ], * "selSeasonCodes": [ * "SEASON_CODE_1", * "SEASON_CODE_2" ], * "selStyleCodes": [ * "STYLE_CODE_1", * "STYLE_CODE_2" ] } GETUSERCATALOGS Find User/Custom Catalogs within a brand AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCatalogCodes Array of strings (Code of the parent Brand Catalog) A list of brand catalog codes to filter brandCode required string <string> (Brand code) Brand code issued by Stitch codes Array of strings (Codes) A list of user Catlaog codes to fetch upon userCodes Array of strings (User codes) A list of user codes codes to filter RESPONSES 200 A successful response. default An unexpected error response. post/v1/catalog/getUserCatalogs https://api.showroom.stitch.fashion/v1/catalog/getUserCatalogs REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCatalogCodes": [ * "PREMIUM", * "CLASSIC" ], * "brandCode": "HAT", * "codes": [ * "CATALOG_42", * "CATALOG_WOOPWOOP" ], * "userCodes": [ * "DOMAIN\\USER", * "user@org.com" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "userCatalogs": [ * { * "brandCatalogCode": "PREMIUM", * "brandCode": "HAT", * "code": "CODE42", * "createdAt": "2022-10-27T13:34:46Z", * "id": "USER_CATALOG_HAT_CODE42", * "isActive": true, * "modifiedAt": "2022-10-27T13:34:46Z", * "name": "Premuim Europe 2045", * "optionCodes": [ * "opt1", * "opt2" ], * "userCodes": [ * "user1", * "user2" ] } ] } UPSERTBRANDCATALOG Upsert new or existing Brand Catalog AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON availCustomerCodes Array of strings (List of customer codes) list of customers that can be used to create presentations with this catalog. Empty list means that all customers can be used with this catalog availLocationCodes Array of strings (List of location codes) list of locations that can be used to create presentations with this catalog. Empty list means that all locations can be used with this catalog availUserCodes Array of strings (List of user codes) list of users that can access this catalog. Empty list means that all users can use this catalog to create presentations brandCode required string <string> (Brand code) Brand code issued by Stitch code required string <string> (Code) A value used on the brand side to uniquely identify the catalog isActive boolean <boolean> (is a toggle for the soft delete) Default: "false" A field to soft-delete or disable a catalog from the API name required string <string> (Name) name of a catalog to be shown on the UI selDeliverydropCodes Array of strings (Selector by Delivery Drop Codes) list of delivery drop codes to filter options upon. Empty list means that all delivery drops are available within the catalog selDivisionCodes Array of strings (Selector by Division Codes) list of division codes to filter options upon. Empty list means that all divisions are available within the catalog selOptionCodes Array of strings (Selector by Option Codes) list of option codes to filter the collection upon. Empty list means that all options are available within the catalog selSKUs Array of strings (Selector by SKU) list of SKUs to filter options upon. Empty list means that all SKUs are available within the catalog selSeasonCodes Array of strings (Selector by Season Codes) list of season codes to filter options upon. Empty list means that all seasons are available within the catalog selStyleCodes Array of strings (Selector by Style Codes) list of stlye codes to filter options upon. Empty list means that all styles are available within the catalog RESPONSES 200 A successful response. default An unexpected error response. post/v1/catalog/upsert https://api.showroom.stitch.fashion/v1/catalog/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "availCustomerCodes": [ * "CUSTOMER_CODE1", * "CUSTOMER_CODE2" ], * "availLocationCodes": [ * "LOCATION_CODE_1", * "LOCATION_CODE_2" ], * "availUserCodes": [ * "USER_CODE_1", * "USER_CODE_2" ], * "brandCode": "HAT", * "code": "CATALOG_42", * "isActive": true, * "name": "Premium season Summer/Fall 2022", * "selDeliverydropCodes": [ * "DELIVERY_DROP_CODE_1", * "DELIVERY_DROP_CODE_2" ], * "selDivisionCodes": [ * "DIVISION_CODE_1", * "DIVISION_CODE_2" ], * "selOptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "selSKUs": [ * "SKU42", * "SKU9999999999" ], * "selSeasonCodes": [ * "SEASON_CODE_1", * "SEASON_CODE_2" ], * "selStyleCodes": [ * "STYLE_CODE_1", * "STYLE_CODE_2" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "availCustomerCodes": [ * "CUSTOMER_CODE1", * "CUSTOMER_CODE2" ], * "availLocationCodes": [ * "LOCATION_CODE_1", * "LOCATION_CODE_2" ], * "availUserCodes": [ * "USER_CODE_1", * "USER_CODE_2" ], * "brandCode": "HAT", * "code": "CATALOG_42", * "createdAt": "2021-10-06T11:19:54Z", * "id": "CATALOG_HAT_CATALOG_42", * "isActive": true, * "modifiedAt": "2021-10-06T11:19:54Z", * "name": "Premium season Summer/Fall 2022", * "selDeliverydropCodes": [ * "DELIVERY_DROP_CODE_1", * "DELIVERY_DROP_CODE_2" ], * "selDivisionCodes": [ * "DIVISION_CODE_1", * "DIVISION_CODE_2" ], * "selOptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "selSKUs": [ * "SKU42", * "SKU9999999999" ], * "selSeasonCodes": [ * "SEASON_CODE_1", * "SEASON_CODE_2" ], * "selStyleCodes": [ * "STYLE_CODE_1", * "STYLE_CODE_2" ] } UPSERTUSERCATALOGS Upsert new or existing User(Custom) Catalog AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCatalogCode required string <string> (Code of the parent Brand Catalog) The User Catalog is always a subset of a Brand Catalog brandCode required string <string> (Brand code) Brand code issued by Stitch code required string <string> (Code) A value used on the brand side to uniquely identify the catalog isActive boolean <boolean> (is a toggle for the soft delete) Default: "false" A field to soft-delete or disable a catalog from the API name required string <string> (Name) name of a catalog to be shown on the UI optionCodes Array of strings (Selector by Option Codes) list of option codes to filter the collection upon. Empty list means that all options are available within the catalog userCodes Array of strings (List of user codes) list of users that can access this catalog. Empty list means that all users can use this catalog to create presentations RESPONSES 200 A successful response. default An unexpected error response. post/v1/catalog/upsertUserCatalogs https://api.showroom.stitch.fashion/v1/catalog/upsertUserCatalogs REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCatalogCode": "CATALOG_42", * "brandCode": "HAT", * "code": "CATALOG_42", * "isActive": true, * "name": "Premium season Summer/Fall 2022", * "optionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "userCodes": [ * "USER_CODE_1", * "USER_CODE_2" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCatalogCode": "PREMIUM", * "brandCode": "HAT", * "code": "CODE42", * "createdAt": "2022-10-27T13:34:46Z", * "id": "USER_CATALOG_HAT_CODE42", * "isActive": true, * "modifiedAt": "2022-10-27T13:34:46Z", * "name": "Premuim Europe 2045", * "optionCodes": [ * "opt1", * "opt2" ], * "userCodes": [ * "user1", * "user2" ] } MARKETING ASSETS GETASSETGROUPS Fetch existing asset groups by codes AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch codes required Array of strings (Codes) List of asset group codes to fetch by tags Array of strings (Tags) List of tags to filter by RESPONSES 200 A successful response. default An unexpected error response. post/v1/marketing/getAssetGroups https://api.showroom.stitch.fashion/v1/marketing/getAssetGroups REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "codes": [ * "CODE_1", * "CODE_2" ], * "tags": [ * "sustainable", * "ubermaterial", * "tennis" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "assetGroups": [ * { * "Assets": [ * { * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "The long country road disappearing between the hills", * "DivisionCodes": [ * "DIVISION_CODE_1" ], * "Fields": [ * { * "Display": true, * "Name": "DAY", * "Value": "SUNNY" } ], * "ID": "ASSET_HAT_CODE_1", * "Index": 1, * "IsActive": false, * "MediaCode": "MEDIA_CODE_1", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "A Country Road", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "COUNTRY", * "ROAD" ] }, * { * "BrandCode": "HAT", * "Code": "CODE_2", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "A huge hill with snow covering its top", * "DivisionCodes": [ * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "top cover", * "Value": "snow" } ], * "ID": "ASSET_HAT_CODE_2", * "Index": 2, * "IsActive": false, * "MediaCode": "MEDIA_CODE_2", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "The top of the hill", * "OptionCodes": [ * "OPTION_CODE_3", * "OPTION_CODE_4" ], * "SeasonCodes": [ * "SEASON_CODE_2" ], * "Tags": [ * "WEST", * "VIRGINIA" ] } ], * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "The Country Roads and it's culture", * "Fields": [ * { * "Display": true, * "Name": "style", * "Value": "Lumberjack" } ], * "ID": "ASSET_GROUP_HAT_CODE_1", * "Index": 1, * "IsActive": false, * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "Virginia", * "Tags": [ * "sustainable", * "ubermaterial", * "tennis" ] } ] } GETASSETS Fetch existing assets by codes AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch codes required Array of strings (Codes) List of asset codes to fetch by RESPONSES 200 A successful response. default An unexpected error response. post/v1/marketing/getAssets https://api.showroom.stitch.fashion/v1/marketing/getAssets REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "codes": [ * "CODE_1", * "CODE_2" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "assets": [ * { * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "we all enjoy the country roads and the nearby mountains", * "DivisionCodes": [ * "DIVISION_CODE1", * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "roads", * "Value": "beautiful" } ], * "GroupCodes": [ * "GROUP1", * "GROUP2" ], * "ID": "ASSET_HAT_CODE_1", * "Index": 1, * "IsActive": true, * "MediaCode": "MEDIA_CODE_1", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "An asset about west virginia", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "WEST", * "VIRGINIA" ] }, * { * "BrandCode": "HAT", * "Code": "CODE_2", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "we all enjoy the country roads and the nearby mountains", * "DivisionCodes": [ * "DIVISION_CODE1", * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "roads", * "Value": "beautiful" } ], * "GroupCodes": [ * "GROUP1", * "GROUP2" ], * "ID": "ASSET_HAT_CODE_2", * "Index": 2, * "IsActive": true, * "MediaCode": "MEDIA_CODE_2", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "An asset about east virginia", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "WEST", * "VIRGINIA" ] } ] } SEARCHASSETS Search marketing assets by a number of filters, like options, codes, tags, seasonCodes and divisionCodes AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch divisionCodes Array of strings (Division codes) List of division codes to search by groupCodes Array of strings (Group codes) List of group codes to search by groupIDs Array of strings (Group IDs) List of group IDs to search by onlyActive boolean <boolean> (Is Active) A field to search for assets that are soft-deleted optionCodes Array of strings (Option codes) List of option codes to search by search string <string> (Search text) text to search for in name or description of assets seasonCodes Array of strings (Season codes) List of season codes to search by tags Array of strings (Tags) List of tags to search by RESPONSES 200 A successful response. default An unexpected error response. post/v1/marketing/searchAssets https://api.showroom.stitch.fashion/v1/marketing/searchAssets REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "divisionCodes": [ * "DIVISION_CODE_1", * "DIVISION_CODE_2" ], * "groupCodes": [ * "GROUP1", * "GROUP2" ], * "groupIDs": [ * "ASSET_GROUP_HAT_GROUP_1", * "ASSET_GROUP_HAT_GROUP_2" ], * "onlyActive": true, * "optionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "search": "An asset about west virginia", * "seasonCodes": [ * "SEASON_CODE_1", * "SEASON_CODE_2" ], * "tags": [ * "WEST", * "VIRGINIA" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "assets": [ * { * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "we all enjoy the country roads and the nearby mountains", * "DivisionCodes": [ * "DIVISION_CODE1", * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "roads", * "Value": "beautiful" } ], * "GroupCodes": [ * "GROUP1", * "GROUP2" ], * "ID": "ASSET_HAT_CODE_1", * "Index": 1, * "IsActive": true, * "MediaCode": "MEDIA_CODE_1", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "An asset about west virginia", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "WEST", * "VIRGINIA" ] }, * { * "BrandCode": "HAT", * "Code": "CODE_2", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "we all enjoy the country roads and the nearby mountains", * "DivisionCodes": [ * "DIVISION_CODE1", * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "roads", * "Value": "beautiful" } ], * "GroupCodes": [ * "GROUP1", * "GROUP2" ], * "ID": "ASSET_HAT_CODE_2", * "Index": 2, * "IsActive": true, * "MediaCode": "MEDIA_CODE_2", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "An asset about east virginia", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "WEST", * "VIRGINIA" ] } ] } UPSERTASSET Create new or update existing asset AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON assetGroupCodes Array of strings (Asset Group Codes) A list of group codes which the asset should belong to brandCode required string <string> (Brand code) Brand code issued by Stitch code required string <string> (Code) A value used on the brand side to uniquely identify the group description string <string> (Description) description of the asset to be upserted divisionCodes Array of strings (Division Codes) A list of division codes assigned to the asset fields Array of objects (Fields) A list of fields with extra information to be attached with the asset to be shown on the UI index string <integer> (Index) A numeric value to sort on the UI. If 2 indexes are equal, the order is not determined. Values from -2,147,483,648 to 2,147,483,647 are supported. default: 0 isActive boolean <boolean> (a field to soft-delete or disable assets from the API) A field to soft-delete or disable assets from the API mediaCode required string <string> (Media Code) media code of the asset. Should match one used during media upload, might be code of a video or an image name string <string> (Name) name of the asset to be upserted optionCodes Array of strings (Option Codes) A list of options codes assigned to the asset seasonCodes Array of strings (Season Codes) A list of season codes assigned to the asset tags Array of strings (Tags) A list of tags assigned to the asset used for filtering RESPONSES 200 A successful response. default An unexpected error response. post/v1/marketing/upsertAsset https://api.showroom.stitch.fashion/v1/marketing/upsertAsset REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "assetGroupCodes": [ * "GROUP1", * "GROUP2" ], * "brandCode": "HAT", * "code": "CODE_1", * "description": "we all enjoy the country roads and the nearby mountains", * "divisionCodes": [ * "DIVISION_CODE_1", * "DIVISION_CODE_2" ], * "fields": [ * { * "display": true, * "name": "Key Features: ", * "value": "Sustainable" } ], * "index": 1, * "isActive": true, * "mediaCode": "MEDIA_CODE_1", * "name": "West Virgina Mountains", * "optionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "seasonCodes": [ * "SEASON_CODE_1", * "SEASON_CODE_2" ], * "tags": [ * "WEST", * "VIRGINIA" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "we all enjoy the country roads and the nearby mountains", * "DivisionCodes": [ * "DIVISION_CODE1", * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "roads", * "Value": "beautiful" } ], * "GroupCodes": [ * "GROUP1", * "GROUP2" ], * "ID": "ASSET_HAT_CODE_1", * "Index": 1, * "IsActive": true, * "MediaCode": "MEDIA_CODE_1", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "West Virgina Mountains", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "WEST", * "VIRGINIA" ] } UPSERTASSETGROUP Create new or update existing asset group AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch code required string <string> (Code) A value used on the brand side to uniquely identify the group description required string <string> (Description) The Country Roads and it's culture fields Array of objects (Fields) Custom brand defined fields with extra information to be shown on the UI index string <integer> (Index) A numeric value to sort groups. If 2 indexes are equal, the order is not determined. Values from -2,147,483,648 to 2,147,483,647 are supported. default: 0 isActive boolean <boolean> (Is Active) A field to soft-delete or disable groups name required string <string> (Name) Name of the group to be shown on the UI tags Array of strings (Tags) A list of tags to be assigned to the asset group RESPONSES 200 A successful response. default An unexpected error response. post/v1/marketing/upsertAssetGroup https://api.showroom.stitch.fashion/v1/marketing/upsertAssetGroup REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "code": "CODE_1", * "description": "Group containing all key looks for our brand", * "fields": [ * { * "display": true, * "name": "style", * "value": "Lumberjack" } ], * "index": 1, * "isActive": true, * "name": "Virginia", * "tags": [ * "Virginia" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "Assets": [ * { * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "The long country road disappearing between the hills", * "DivisionCodes": [ * "DIVISION_CODE_1" ], * "Fields": [ * { * "Display": true, * "Name": "DAY", * "Value": "SUNNY" } ], * "ID": "ASSET_HAT_CODE_1", * "Index": 1, * "IsActive": false, * "MediaCode": "MEDIA_CODE_1", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "A Country Road", * "OptionCodes": [ * "OPTION_CODE_1", * "OPTION_CODE_2" ], * "SeasonCodes": [ * "SEASON_CODE_1" ], * "Tags": [ * "COUNTRY", * "ROAD" ] }, * { * "BrandCode": "HAT", * "Code": "CODE_2", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "A huge hill with snow covering its top", * "DivisionCodes": [ * "DIVISION_CODE_2" ], * "Fields": [ * { * "Display": true, * "Name": "top cover", * "Value": "snow" } ], * "ID": "ASSET_HAT_CODE_2", * "Index": 2, * "IsActive": true, * "MediaCode": "MEDIA_CODE_2", * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "The top of the hill", * "OptionCodes": [ * "OPTION_CODE_3", * "OPTION_CODE_4" ], * "SeasonCodes": [ * "SEASON_CODE_2" ], * "Tags": [ * "WEST", * "VIRGINIA" ] } ], * "BrandCode": "HAT", * "Code": "CODE_1", * "CreatedAt": "2009-02-13T23:31:30Z", * "Description": "The Country Roads and it's culture", * "Fields": [ * { * "Display": true, * "Name": "style", * "Value": "Lumberjack" } ], * "ID": "ASSET_GROUP_HAT_CODE_1", * "Index": 1, * "IsActive": false, * "ModifiedAt": "2009-02-13T23:31:30Z", * "Name": "Virginia", * "Tags": [ * "VIRGINIA" ] } STOCK GET STOCK LIST GetList returns a filtered list of stock items AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch - if brandCode is the only filter provided then pagination is mandatory codes Array of strings (Codes) list of stock unique identifiers isActiveOnly boolean <boolean> (Is Active Only) Default: "false" if set to true will only return active stock items optionCodes Array of strings (Option codes) list of option codes to filter stock by pagination object (Pagination is used to paginate the stock items) RESPONSES 200 A successful response. default An unexpected error response. post/v1/stock/getList https://api.showroom.stitch.fashion/v1/stock/getList REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "codes": [ * "123_456", * "OPCODE_42" ], * "isActiveOnly": true, * "optionCodes": [ * "123", * "opcode" ], * "pagination": { * "limit": 100, * "offset": 100 } } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "code": "123_456", * "deliveryDropCode": "SUMMER_2020", * "isActive": true, * "minQuantity": 10, * "modifiedAt": "2020-01-01T00:00:00Z", * "optionCode": "123", * "quantity": 100, * "sku": "456", * "stock_reference_code": "WAREHOUSE_UK" }, * { * "brandCode": "HAT", * "code": "OPCODE_42", * "isActive": true, * "modifiedAt": "2020-01-01T00:00:00Z", * "optionCode": "opcode", * "quantity": 50, * "sku": "42", * "stock_reference_code": "ALOHA" } ] } BULK UPSERT Upsert multiple stock items at once Bulk Upsert is limited to 1000 stock per request AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string <string> (Brand code) Brand code issued by Stitch stock required Array of objects (Stock) list of stock to upsert RESPONSES 200 A successful response. default An unexpected error response. post/v1/stock/upsert/bulk https://api.showroom.stitch.fashion/v1/stock/upsert/bulk REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "stock": [ * { * "brandCode": "HAT", * "code": "123_456", * "deliveryDropCode": "SUMMER_2020", * "isActive": true, * "minQuantity": 10, * "optionCode": "123", * "quantity": 100, * "sku": "456", * "stockReferenceCode": "WAREHOUSE_UK" }, * { * "brandCode": "HAT", * "code": "OPCODE_42", * "deliveryDropCode": "", * "isActive": true, * "minQuantity": 0, * "optionCode": "opcode", * "quantity": 50, * "sku": "42", * "stockReferenceCode": "ALOHA" } ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandCode": "HAT", * "code": "123_456", * "deliveryDropCode": "SUMMER_2020", * "isActive": true, * "minQuantity": 10, * "modifiedAt": "2020-01-01T00:00:00Z", * "optionCode": "123", * "quantity": 100, * "sku": "456", * "stock_reference_code": "WAREHOUSE_UK" }, * { * "brandCode": "HAT", * "code": "OPCODE_42", * "isActive": true, * "modifiedAt": "2020-01-01T00:00:00Z", * "optionCode": "opcode", * "quantity": 50, * "sku": "42", * "stock_reference_code": "ALOHA" } ] } USERS GETUSERSBYBRANDCODE List users by brand code AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (BrandCode is the unique code of the brand and it is used as the main identifier of the brand) non-empty limit integer <int32> (Limit is the limit to how many users the list should return) non-empty offset integer <int32> (Offset is used for pagination) non-empty RESPONSES 200 A successful response. default An unexpected error response. post/v1/user/getUsersByBrandCode https://api.showroom.stitch.fashion/v1/user/getUsersByBrandCode REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "BRAND", * "limit": 10, * "offset": 0 } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "list": [ * { * "brandUser": [ * { * "brandCode": "HAT", * "brandUserID": "HAT_TEST_USER_1234", * "id": "USER_TEST@USER.EMAIL", * "roles": [ * "presenter", * "contentManager" ], * "userName": "test user" } ], * "email": "test@user.email" } ] } UPSERT Create or Update existing user entity. The uniqueness of the user is determined by the brandUserID and brandCode. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (The main identifier of the brand) non-empty brandUserID required string (Identifier used by a brand's internal systems to uniquely identify a user) non-empty email required string (User's company email address) non-empty isActive boolean (Defines if the user is active or not) name required string (The user name to display in the system) non-empty roles required Array of strings (List of the comma separated user roles) [ items non-empty ] Options:integration, presenter, contentManager, brandAdmin RESPONSES 200 A successful response. default An unexpected error response. post/v1/user/upsert https://api.showroom.stitch.fashion/v1/user/upsert REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "BRAND", * "brandUserID": "albert.einstein", * "email": "albert.einstein@company.co", * "isActive": true, * "name": "Albert Einstein", * "roles": [ * "presenter", * "contentManager" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandUser": [ * { * "brandCode": "HAT", * "brandUserID": "HAT_TEST_USER_1234", * "id": "USER_TEST@USER.EMAIL", * "roles": [ * "presenter", * "contentManager" ], * "userName": "test user" } ], * "email": "test@user.email" } MEDIA UPSERT Implements versioned media uploads. Using this endpoint you can both create and update existing media assets. If the media asset does not exist in the system or there is one with an older version and the same mediaCode, the file will be downloaded and saved with overwrite. Otherwise, API will respond with the existing document immediately. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that the media belongs to) mediaCode required string (Unique identifier for a media) type string (- General: If the uploaded media is used in the digital showroom - Library: If the uploaded media is used in the content management system) Default: "General" Enum: "General" "Library" url required string (Publicly available URL of the media. The service will try to pull the asset only once and will expect `2xx` status in the response) version string <int64> Current version of the media file on the client-side. To update an asset, send a newer version than the last time. If the version is older of the same mediaCode, API will return the existing result immediately. Values from -2,147,483,648 to 2,147,483,647 are supported. default: 0 RESPONSES 200 A successful response. default An unexpected error response. post/v1/media/upsert https://api.showroom.stitch.fashion/v1/media/upsert REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "string", * "mediaCode": "string", * "type": "General", * "url": "string", * "version": "string" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "HAT", * "dimensions": { * "height": 762, * "width": 590 }, * "id": "MEDIA_HAT_EXTERNALCODE", * "mediaCode": "externalcode", * "mimeType": "image/jpeg", * "name": "img.jpg", * "version": 4 } PRESENTATION GETBYIDS Fetch full presentation information (metadata with assortments) by presentation ids AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON ids required Array of strings (list presentation IDs for fetching) RESPONSES 200 A successful response. default An unexpected error response. post/v1/presentation/getByIDs https://api.showroom.stitch.fashion/v1/presentation/getByIDs REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "ids": [ * "PRESENTATION_55555555-5555-5555-5555-555555555555", * "PRESENTATION_66666666-6666-6666-6666-666666666666" ] } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "presentations": [ * { * "assortments": [ * { * "id": "some_assortment_id", * "name": "assort1", * "textItems": [ * { * "content": "Hello", * "id": "item_id_1", * "position": { * "scale": 1 }, * "textFormat": { * "align": "center", * "color": "black", * "size": 3, * "style": "header" }, * "width": 10 } ] } ], * "metadata": { * "assetSelector": { * "division": { * "code": "05", * "name": "DIV5" }, * "gender": "WOMEN", * "season": { * "code": "S55", * "name": "FALL2222" } }, * "brand": { * "code": "STITCH", * "name": "StitchDS" }, * "creator": { * "email": "hello@stitch.com", * "id": "hello@stitch.com", * "name": "StitchAPI" }, * "customer": { * "code": "CODE_5", * "currency": "EUR", * "fields": [ * { * "display": true, * "name": "accountNumber", * "value": "000005555" }, * { * "display": false, * "name": "buyerNumber", * "value": "000005552" } ], * "id": "CUSTOMER_STITCH_CODE_5", * "locations": [ * { * "code": "LCODE1", * "id": "location1", * "name": "Location1" }, * { * "code": "LCODE2", * "id": "location2", * "name": "Location2" } ], * "name": "Customerwithcode5", * "priceGroup": "21" }, * "id": "PRESENTATION_55555555-5555-5555-5555-555555555555", * "name": "Testpresentation5", * "sortedAssortments": [ * "ASSORTMENT_8cf05737-810d-4c0e-b2ae-4c90c1421a3c" ], * "welcomeMessage": "WelcometoStitch" } } ] } GETLIST Fetch presentation list of brand with pagination List is sorted by modifiedAt in descending order AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that presentations belong to) creatorID string (Optional filter by creatorID which is the brandUserID of the user who created the presentation - for reference check Users_GetUsersByBrandCode) pagination required object (presentation.Pagination) RESPONSES 200 A successful response. default An unexpected error response. post/v1/presentation/getList https://api.showroom.stitch.fashion/v1/presentation/getList REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "string", * "creatorID": "string", * "pagination": { * "limit": 0, * "offset": 0, * "sortBy": "modifiedAt", * "sortDescending": true } } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "presentations": [ * { * "assetSelector": { * "division": { * "code": "05", * "name": "DIV5" }, * "gender": "WOMEN", * "season": { * "code": "S55", * "name": "FALL2222" } }, * "brand": { * "code": "STITCH", * "name": "StitchDS" }, * "createdAt": { * "seconds": 1564751941 }, * "creator": { * "email": "hello@stitch.com", * "id": "hello@stitch.com", * "name": "StitchAPI" }, * "customer": { * "code": "CODE_5", * "currency": "EUR", * "fields": [ * { * "display": true, * "name": "accountNumber", * "value": "000005555" }, * { * "display": false, * "name": "buyerNumber", * "value": "000005552" } ], * "id": "CUSTOMER_STITCH_CODE_5", * "locations": [ * { * "code": "LCODE1", * "id": "location1", * "name": "Location1" }, * { * "code": "LCODE2", * "id": "location2", * "name": "Location2" } ], * "name": "Customerwithcode5", * "priceGroup": "21" }, * "id": "PRESENTATION_55555555-5555-5555-5555-555555555555", * "name": "Testpresentation5", * "sortedAssortments": [ * "ASSORTMENT_8cf05737-810d-4c0e-b2ae-4c90c1421a3c" ], * "welcomeMessage": "WelcometoStitch" } ] } DRAFT ORDER GET Get a single order with all the order lines by order id. Orders are never updated. If multiple orders are created during single appointment, it's up to you, to keep them as separate orders or update existing order, using presentationID as PK. Contains an order line per delivery date, option and size. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that the order belongs to) id required string (Internal order identifier) RESPONSES 200 (empty) default An unexpected error response. post/v1/order/get https://api.showroom.stitch.fashion/v1/order/get REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "BRAND", * "id": "ORDER_871a963f-56a4-4ba4-8f2f-af6ae39a9e97" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "BRAND", * "catalogCode": "CATALOG_123", * "createdAt": "2020-01-11T16:24:52Z", * "customerCode": "FSHN74", * "customerLocationCode": "FSHN74_IT171931", * "groupEventID": "123456789", * "id": "ORDER_871a963f-56a4-4ba4-8f2f-af6ae39a9e97", * "lines": [ * { * "deliveryDropCode": "delivery_42", * "divisionCode": "MW12", * "optionCode": "4111567AB", * "quantity": 1, * "seasonCode": "SUMMER2020", * "sku": "4111567AB00L" }, * { * "deliveryDropCode": "delivery_43", * "divisionCode": "MW12", * "optionCode": "4111567AB", * "quantity": 1, * "seasonCode": "SUMMER2020", * "sku": "4111567AB00XL" }, * { * "deliveryDropCode": "252943b0-d69c-4420-92dd-79f174e4cdc3", * "divisionCode": "MW12", * "optionCode": "4111567AB", * "quantity": 1, * "seasonCode": "SUMMER2020", * "sku": "4111567AB00M" }, * { * "deliveryDropCode": "2020-03-14T00:00:00Z", * "divisionCode": "MW12", * "optionCode": "FGFYELLOW2", * "quantity": 1, * "seasonCode": "SUMMER2020", * "sku": "FGFYELLOW20042" }, * { * "deliveryDropCode": "2020-03-14T00:00:00Z", * "divisionCode": "MW12", * "optionCode": "FGFYELLOW2", * "quantity": 1, * "seasonCode": "SUMMER2020", * "sku": "FGFYELLOW20041" } ], * "orderName": "Your Selection", * "presentationID": "PRESENTATION_d78bc7aa-0f28-4a07-8a5a-7147b99c6b97", * "presentationName": "PRESENTATION Spring 2022", * "selectionID": "DRAFT_123455", * "userID": "super.name@company.com" } GET LIST Get all orders after specified date. This list does not include order lines. Empty response means no orders were created since createdAfter time. Data is in sync. Try again later. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that the order belongs to) createdAfter required string <date-time> RFC3339 Returns orders created after specified date. Orders are returned in chronological order. This field should be used as cursor. Selecting new orders, created after the latest order you received during previous call. limit integer <int64> [ 1 .. 100 ] Default: "100" limits number of orders for a single request. RESPONSES 200 (empty) default An unexpected error response. post/v1/order/getList https://api.showroom.stitch.fashion/v1/order/getList REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "BRAND", * "createdAfter": "2019-08-24T14:15:22Z", * "limit": 100 } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all [ * { * "brandCode": "BRAND", * "catalogCode": "CATALOG_123", * "createdAt": "2020-01-11T16:24:52Z", * "customerCode": "FSHN74", * "customerLocationCode": "FSHN74_IT171931", * "groupEventID": "123456789", * "id": "ORDER_871a963f-56a4-4ba4-8f2f-af6ae39a9e97", * "orderName": "Your Selection", * "presentationID": "PRESENTATION_d78bc7aa-0f28-4a07-8a5a-7147b99c6b97", * "presentationName": "PRESENTATION Spring 2022", * "selectionID": "DRAFT_123455", * "userID": "super.name@company.com" } ] WEBHOOK GET Current webhook configuration AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that the webhook belongs to) non-empty RESPONSES 200 A successful response. default An unexpected error response. post/v1/webhook/get https://api.showroom.stitch.fashion/v1/webhook/get REQUEST SAMPLES * Payload Content type application/json Copy { * "brandCode": "BRAND" } RESPONSE SAMPLES * 200 * default Content type application/json Copy Expand all Collapse all { * "brandCode": "BRAND", * "headers": [ * { * "name": "Authorization", * "values": [ * "Bearer 123456" ] } ], * "skipTLSVerify": false, * "subscriptions": [ * { * "name": "order:create", * "withPayload": true } ], * "url": "https://your-webhook-url.co/webhook" } SETUP Upsert new webhook configuration. You can set up an HTTP(S) request and subscribe to events you want to receive. Webhook mechanism is not meant to be reliable. To keep data consistent, you should periodically call API to check the current state and reconcile the data. There is no retries. Error responses are ignored. AUTHORIZATIONS: Bearer REQUEST BODY SCHEMA: APPLICATION/JSON brandCode required string (Brand identifier that the webhook belongs to) non-empty headers Array of objects (Collection of HTTP headers) One can use this for authentication and client keys, like authorization, client-id and client-secret, along with additional flags for ETL or proxy. Additionaly you will receive brand and event headers with brand code and event type respectively. skipTLSVerify boolean Default: "false" If true, TLS certificate validity check will be skiped. Should not be used in production! If enabled the call will be made even with self-signed or invalid certificate. Which can lead to data breach. subscriptions Array of objects (List of events you want to receive with additional configuration) url required string URL address to receive your push events. Do not store credentials in URL address! HTTP requests are often logged by nginx so URLs like http(s)://user:password@... or ...?client_secret=PA$$WORD should not be used. RESPONSES 200 A successful response. default An unexpected error response. post/v1/webhook/set https://api.showroom.stitch.fashion/v1/webhook/set REQUEST SAMPLES * Payload Content type application/json Copy Expand all Collapse all { * "brandCode": "BRAND", * "headers": [ * { * "name": "Authorization", * "values": [ * "Bearer 123456" ] } ], * "skipTLSVerify": false, * "subscriptions": [ * { * "name": "order:create", * "withPayload": true } ], * "url": "https://your-webhook-url.co/webhook" } RESPONSE SAMPLES * 200 * default Content type application/json Copy { }