API AtelierHUB TecDoc
API AtelierHUB TecDoc
Technical Documentation
Version 3.32
DATE CHANGES
2019-09-20 Added “retailer” filter on GoodsList, GoodsDetailList, GoodsStockList, GoodsStockPointList,
GoodsPriceList
2019-09-24 Added method “RetailersList” (active retailers for Marketplace)
Added field “PurchaseNo” in GetOrderShippingInfo method
2019-09-27 Orders status list updated
2019-09-30 Added “modifiedDate” filter on GoodsStockList, GoodsStockPointList methods
2019-10-15 Added new fields destination in CreateNewOrder and UpdateOrderBuyerInfo
2019-12-11 Added new field ReferencePrice in CreateNewOrder
2020-02-11 Added PhoneNumber in BuyerInfo of CreateNewOrder
2020-04-23 Added “DESCRIPTION” header to activate the optional field “Description” in the method GoodsList
2020-06-15 Added “Surname” and “DestinationSurname” in CreateNewOrder and UpdateOrderBuyerInfo methods
2020-06-22 Added “SIZEPRICE” header to activate the optional array field “SizePrices” in the method GoodsPriceList
2020-08-10 Added “Barcode” field on “SizePrices” array in the method GoodsPriceList
2020-11-12 Added Method ”RetailerStockPointList”, and the field “StockPointId” in CreateNewOrder
2020-11-24 Added “DESCRIPTION”=”ALL” to enable the reading of 3 new fields containing descriptions in GoodsList
2021-01-05 Added filter “barcode” in GoodsList, GoodsDetailList, GoodsPriceList, GoodStockList, GoodStockPointList,
GoodsStockRetailerList
2021-04-08 Activated HTTPS on the production endpoints, some corrections on the document
2021-04-19 Methods RequestedAction, UpdateOrderBuyerInfo and UpdateOrderStatus are deprecated
2021-04-27 Added “DETAILEDSIZE” header – Activates the fields SizeCountry and SizeType on GoodsDetailList
2021-08-03 Added methods GetStepOrder and UpdateStepOkPackage for manage courier labels
2022-02-09 Added querystring modifiedTimestamp accept format YYYYMMDD-hhmmss
2022-03-07 Added Email and Phone in BuyerInfo of CreateNewOrder
2022-04-20 Added ShippingCosts, CustomsCosts, OtherCosts in CreateNewOrder
2022-09-30 Added VatNumber and FiscalCode in BuyerInfo of CreateNewOrder
2023-12-13 Removed Test e Deprecated method
2024-05-15 Added querystring goodIDs accept format comma separated GoodsID
2024-06-10 Added “BARCODEALL” header – Activates the fields IntBarcode and SupBarcode
Atelier FASHION HUB – 3.32
Getting Started
• Authentication
o Production
▪ URL: furtherly provided – Now is in secured with a certificate (HTTPS)
▪ End Point authentication: Username / Password (furtherly provided)
▪ Each Marketplace have a Username and Password for identification to be sent in each
method call by two headers: USER_MKT and PWD_MKT
▪ Notes: 200 calls per day are available per each Marketplace
• Language choose
o Choose of the language by LANGUAGE header – accepted value: en (English) it (Italian)
all(entrambe)
• Automatic paging
o All methods are subject to paging that can be set by the Marketplace. Calls must be made with
PageNum and PageSize parameters. For further specifications see paragraph Best practices
Best Practices
3. Media
• Download from url as specified in GoodsDetailList
2. Place orders:
• CreateNewOrder
• Concurrency calls
Max 20 call per minute
Technical documentation
General
1. Methods Authentication (mandatory only for the production endpoint)
Headers:
USER_MKT – Marketplace Username
PWD_MKT – Marketplace Password
2. Language and other preferences
Headers:
LANGUAGE – (optional) Choose the API language (accepted values: en (English) , it (Italian))
Note: If this header isn’t specified or if it is different from any accepted value, the language choosen is
always English
DESCRIPTION – (optional) in the GoodsList method
Value “ON” activates the field “Description”
Value “ALL” activates the fields “Description”, “ShortDescription”, “SpecialDescription”
SIZEPRICE – (optional) If its value is equal to “ON” it activates an array field called “SizePrices” in the
GoodsPriceList method. The field contains the list of the prices for each size, if they’re different otherwise
it’s a void array.
DETAILEDSIZE – (optional) If its value is equal to “ON” it activates the fields “SizeCountry” and “SizeType” in
the method GoodsDetailList
BARCODEALL – (optional) If its value is equal to “ON” it activates the fields “IntBarcode” (internal barcode)
and “SupBarcode” (supplier barcode/GTIN) in the method GoodsDetailList, GoodsStockList,
GoodsStockPointList, , GoodsStockRetailerList
Basic Data
1. BrandList
Input: N/A
Output: ID, Name, Series
{
"BrandList": {
"Brand": [
{
"ID":1",
"Name":"Aglini"
},
{
"ID":"2",
"Name":"Gucci"
}
]
}
}
2. SeasonList
Input: N/A
Output: Season
{
"SeasonList": {
"Season": [
{
"ID":20",
Atelier FASHION HUB – 3.32
"Name":"FW18"
},
{
"ID":"21",
"Name":"SS18"
}
]
}
}
3. ColorList
Input: N/A
Output: SuperColor, ColorName
{
"ColorList": {
"Color": [
{
"SuperColor": "White",
"ColorName": "Milk"
},
{
"SuperColor": "",
"ColorName": ""
}
]
}
}
4. OrderStatusList
Input: N/A
Output: StatusID, StatusName
{
"OrderStatusList": {
"Status": [
{
"StatusID": "10000002",
"StatusName": "Valid"
},
{
"StatusID": "10000004",
"StatusName": "Confirmed"
},
{
"StatusID": "10000003",
"StatusName": "Shipped"
},
{
"StatusID": "10000006",
"StatusName": "Checked"
},
{
"StatusID": "10000011",
"StatusName": "Out of Stock"
},
{
"StatusID": "100000021",
"StatusName": "Canceled"
},
{
"StatusID": "100000022",
"StatusName": "Management"
}
Atelier FASHION HUB – 3.32
]
}
}
5. RetailersList
Input: N/A
Output: ID, Name
{
"RetailersList": {
"Retailer": [
{
"ID": "0",
"Name": "Atelier On Web"
}
]
}
}
6. GenderList
Input: N/A
Output: ID, Name
{
"GenderList": {
"Gender": [
{
"ID": "1",
"Name": "WOMAN"
},
{
"ID": "2",
"Name": "MAN"
}
]
}
}
7. CategoryList
Input: N/A
Output: ID, Name, ParentID, ParentName, GenderID
{
"CategoryList": {
"Category": [ {
"ID": "5032235",
"Name": "jacket",
"ParentID": "1",
"ParentName": "Clothing-Up",
"GenderID": "1"
} ]
}
}
Atelier FASHION HUB – 3.32
8. SubCategoryList
Input: N/A
Output: SubCategoryID, SubCategoryName , CategoryID, CategoryName, ParentID, ParentName, GenderID
{
"SubCategoryList": {
"SubCategory": [ {
"SubCategoryID": "26451258",
"SubCategoryName": "blazer",
"CategoryID": "5032235",
"CategoryName": "jacket",
"ParentID": "1",
"ParentName": "Clothing-Up",
"GenderID": "1"
} ]
}
}
9. RetailerStockPointList?retailer=
Input: retailer
Output:
{
"RetailerStockPoints":
{
"Retailer": [{
"RetailerID": "287",
"RetailerName": "BAMBOO SPA",
"StockPoints": [{
"ID": "3",
"Name": "BAMBOO2 FR"
},
{
"ID": "5",
"Name": "BAMBOO2 IT"
}]
}]
}
}
Atelier FASHION HUB – 3.32
Goods
10. GoodsList
Input: N/A
Output: ID, Model, Variant, Season, Collection, SupplierID, BrandID, ParentCategoryID, CategoryID,
GenderID, Code, GoodsName, BrandReferencePriceIT, Stock, MainPicture, CreatedTime, ModifiedTime,
SubCategoryID, Description (optional)
{
"GoodsList": {
"Good": [
{
"ID": "1687",
"Model": "598ALA",
"Variant": "LABAM203",
"Season": "",
"Collection": "",
"BrandID": "",
"ParentCategoryID": "",
"CategoryID": "",
"GenderID": "",
"Code": "598ALA LABAM203 F502.50BLUC",
"GoodsName": "",
"Description": "", //Optional – See: “General - Language and other preferences”
"ShortDescription": "", //Optional – See: “General - Language and other pref.”
"SpecialDescription": "", //Optional – See: “General - Language and other pref.”
"InStock": "1",
"MainPicture": "",
"CreatedTime": "",
"ModifiedTime": "",
"SubCategoryID": "",
}
]
}
}
10.a. GoodsList?pageNum=&pageSize=
Input: pageNum, pageSize
It returns records per page according to specific paging options! pageNum starts from 1
Returned JSON is the same as GoodsList
10.b. GoodsList?pageNum= &pageSize=&categoryID=
Input: categoryID
It returns only goods under a specific category
Returned JSON is the same as GoodsList
10.c. GoodsList?pageNum= &pageSize=&seasonID=
Input: seasonID
It returns only goods under a specific season
Returned JSON is the same as GoodsList
10.d. GoodsList?pageNum= &pageSize=&seasonID=&categoryID=
Input: seasonID, categoryID
It returns only goods under a specific season and category
Returned JSON is the same as GoodsList
Atelier FASHION HUB – 3.32
10.e. GoodsList?GoodsID=
Input: GoodsID
Returned JSON is the same as GoodsList
11. GoodsDetailList
Input: N/A
Output: ID, SuperColor, Color, Fabric, Composition, SizeAndFit, MadeIn, Stock\Size, Stock\Qty, Picture\No,
Picture\PictureUrl, Picture\PictureThumbUrl, CreatedTime, ModifiedTime
{
"GoodsDetailList": {
"Good": [ {
"ID": "1687",
"SuperColor": "Black",
"Color": "Black and grey",
"Fabric": "",
"Composition": "100% cotton",
"SizeAndFit": "Model wears size M",
"MadeIn": "ITALY",
"SizeCountry": "IT", //Optional – See: “General - Language and other preferences”
"SizeType": "Shirt Woman", //Optional – See: “General - Language and other pref.”
"Stock": {
"Item": [
{
"Barcode": "8002592637545",
"IntBarcode": "2101234567890",//Optional – See: “General – Language..”
"SupBarcode": "8002592637545", //Optional – See: “General – Language..”
"Size": "34",
"Qty": "3"
},
{
"Barcode": "8079426358877",
"Size": "35",
"Qty": "4"
}
]
},
"Pictures": {
"Picture": [
{
"No": "1",
"PictureUrl": "",
"PictureThumbUrl": ""
},
{
"No": "2",
"PictureUrl": "",
"PictureThumbUrl": ""
}
]
},
"CreatedTime": "",
"ModifiedTime": ""
} ]}}
12. GoodsStockList
Input: N/A
Output: GoodslD, Stock\Size, Stock\Qty
{
"GoodsStockList": {
"Goods": [
{
"ID": "1687",
"Stocks": {
"Stock": [
{
"Barcode": "8025926375485",
"IntBarcode": "2101234567890",//Optional – See: “General …”
"SupBarcode": "8002592637545", //Optional – See: General …”
"Size": "35",
"Qty": "10"
},
{
"Barcode": "8089256375485",
"Size": "34",
"Qty": "8"
}
]
}
}
]
}}
12.a. GoodsStockList?pageNum= &pageSize=
Input: pageNum, pageSize
Returned JSON is the same as GoodsStockList
12.c. GoodsStockList?pageNum= &pageSize=&categoryID=
Input: categoryID
Returned JSON is the same as GoodsStockList
12.d. GoodsStockList?pageNum= &pageSize=&SeasonID=
Input: seasonID
Returned JSON is the same as GoodsStockList
12.e. GoodsStockList?pageNum= &pageSize=&SeasonID=&categoryID=
Input: seasonID, categoryID
Returned JSON is the same as GoodsStockList
12.f. GoodsStockList?goodsID=
Input: goodsID
Returned JSON is the same as GoodsStockList
12.g. GoodsStockList?retailer=RETAILER NAME
Input: the name of the retailer
It returns only goods from the specified retailer
12.h. GoodsStockList?modifiedTime= YYYYMMDD
Input: modifiedTime
It returns only goods whose stock availability is changed since a specified time
12.i. GoodsStockList?barcode=BARCODE
Input: barcode
It returns only goods with the specified barcode
12.j. GoodsStockList?modifiedTimestamp= YYYYMMDD-hhmmss
Atelier FASHION HUB – 3.32
Input: modifiedTimestamp
It returns only goods whose stock availability is changed since a specified timestamp
12.k. GoodsStockList?goodIDs= GoodsID1, GoodsID2,….. .GoodsID100
Input: goodIDs, accept format comma separated GoodsID (max 100 element)
13. GoodsStockRetailerList
Input: N/A
Output: GoodslD, Retailer, Stock\Size, Stock\Qty
{
"GoodsStockList": {
"Goods": [
{
"ID": "1687",
"Retailer": "Retailer1,
"Stocks": {
"Stock": [
{
"Barcode": "8025926375485",
"IntBarcode": "2101234567890",//Optional – See: “General …”
"SupBarcode": "8002592637545", //Optional – See: General …”
"Size": "35",
"Qty": "10"
},
{
"Barcode": "8089256375484",
"Size": "34",
"Qty": "8"
}
]
}
}
]
}
}
13.a. GoodsStockRetailerList?pageNum= &pageSize=
Input: pageNum, pageSize
Returned JSON is the same as GoodsStockPointList
13.b. GoodsStockRetailerList?pageNum= &pageSize=&categoryID=
Input: categoryID
Returned JSON is the same as GoodsStockPointList
13.c. GoodsStockRetailerList?pageNum= &pageSize=&SeasonID=
Input: seasonID
Returned JSON is the same as GoodsStockPointList
13.d. GoodsStockRetailerList?pageNum= &pageSize=&SeasonID=&categoryID=
Input: seasonID, categoryID
Returned JSON is the same as GoodsStockPointList
13.e. GoodsStockRetailerList?goodsID=
Input: goodsID
Returned JSON is the same as GoodsStockList
13.f. GoodsStockRetailerList?retailer=RETAILER NAME
Input: the name of the retailer
It returns only goods from the specified retailer
Atelier FASHION HUB – 3.32
14. GoodsStockPointList
Input: N/A
Output: GoodslD, Retailer, Points, GPS, Shared,Stock\Size, Stock\Qty
{
"GoodsStockPointList": {
"StockPoint": [
{
"Retailer": "Retailer1"
"Points": [
{
"Point": "Point1"
"GPS": "45.465454, 9.186516"
"Shared" : "False"
"Goods": [
{
"ID": "1687",
"Stocks": {
"Stock": [
{
"Barcode": "8025926375485",
"IntBarcode": "2101234567890",
"SupBarcode": "8002592637545",
"Size": "35",
"Qty": "2"
},
{
"Barcode": "8089256375485",
"Size": "34",
"Qty": "4"
}
]
}
}
]
}
]
}
]
}}
14.a. GoodsStockPointList?pageNum= &pageSize=
Input: pageNum, pageSize
Returned JSON is the same as GoodsStockPointList
14.b. GoodsStockPointList?pageNum= &pageSize=&categoryID=
Atelier FASHION HUB – 3.32
Input: categoryID
Returned JSON is the same as GoodsStockPointList
14.c. GoodsStockPointList?pageNum= &pageSize=&SeasonID=
Input: seasonID
Returned JSON is the same as GoodsStockPointList
14.d. GoodsStockPointList?pageNum= &pageSize=&SeasonID=&categoryID=
Input: seasonID, categoryID
Returned JSON is the same as GoodsStockPointList
14.e. GoodsStockPointList?goodsID=
Input: goodsID
Returned JSON is the same as GoodsStockList
14.f. GoodsStockPointList?retailer=RETAILER NAME
Input: the name of the retailer
It returns only goods from the specified retailer
14.g. GoodsStockPointList?modifiedTime= YYYYMMDD
Input: modifiedTime
It returns only goods whose stock availability is changed since a specified time
14.h. GoodsStockPointList?barcode=BARCODE
Input: barcode
It returns only goods with the specified barcode
14.i. GoodsStockPointList?modifiedTimestamp= YYYYMMDD-hhmmss
Input: modifiedTimestamp
It returns only goods whose stock availability is changed since a specified timestamp
14.j. GoodsStockPointList? goodIDs= GoodsID1, GoodsID2,….. .GoodsID100
Input: Input: goodIDs, accept format comma separated GoodsID (max 100 element)
Atelier FASHION HUB – 3.32
15. GoodsPriceList
Input: N/A
Output: ID, BrandReferencePrice, BrandReferencePriceExVAT, Discount, NetPrice, Currency, PercentTax,
Country, SizePrices (array - optional)
{
"GoodsPriceList": {
"Price": [
{
"ID": "1687",
"Retailers": [
{
"Retailer": "Retailer1",
"BrandReferencePrice": "220,00",
"BrandReferencePriceExVAT": "180,33",
"Discount": "18",
"NetPrice": "147,87",
"Currency": "EUR",
"PercentTax": "22",
"Country": "IT",
"SizePrices": [ //Optional – See: “General - Language and other preferences”
{
"Size": "30",
"Barcode": "2110461085633",
"SizeBrandReferencePrice": "200,00",
"SizeBrandReferencePriceExVAT": "163,93"
"SizeDiscount": "20"
"SizeNetPrice": "131,14"
},
{
"Size": "32",
"Barcode": "2014121696170",
"SizeBrandReferencePrice": "220,00",
"SizeBrandReferencePriceExVAT": "180,33"
"SizeDiscount": "18"
"SizeNetPrice": "147,87"
}
]
}
]
}
]
}
}
16. GoodsRemoved
Input: N/A
Output: ID, RemovedTime
{
"GoodsList": {
"Good": [
{
"ID": "821501",
"RemovedTime": "2019-05-08T08:00:00"
},
{
"ID": "954575",
"RemovedTime": "2019-05-08T08:00:00"
}
]
}
}
16.e. GoodsRemoved?goodsID=
Input: goodsID.
Returned JSON is the same as GoodsRemoved
{
"OrderId": "",
"Retailer": "",
"StockPointId": "", //See further documentation for activation”
"BuyerInfo": {
"Name": "",
"Surname": "",
"Address": "",
"ZipCode": "",
"City": "Roma",
"PhoneNumber": "",
"Email": "",
"VatNumber": "",
"FiscalCode": "",
"ISOcountry": "IT",
"Courier": "",
"Notes": "",
"TypeShipping": "Direct / Logistic",
"Identification1": "",
"Identification2": "",
"DestinationName": "",
"DestinationSurname": "",
"DestinationAddress": "",
"DestinationZipCode": "",
"DestinationCity": "",
"DestinationISOcountry": "",
"ShippingCosts": "",
"CustomsCosts": "",
"OtherCosts": ""
},
"GoodsList": {
"Good": [
{
"ID": "",
"Size": "",
"Qty": "",
"Price": "",
"Currency": "",
"ReferencePrice": ""
}
]
}
}
Required: OrderId, Retailer - BuyerInfo: Name, Address, ZipCode, ISOcountry, TypeShipping – Good: ID,
Size, Qty, Price, Currency
Optional: Surname (is optional only if the field name contains both the name and the surname), Courier,
Notes, Identification1, Identification2, DestinationName, DestinationSurname, DestinationAddress,
DestinationZipCode, DestinationCity, DestinationISOcountry, ReferencePrice, PhoneNumber, Email,
VatNumber, FiscalCode, ShippingCosts, CustomsCosts, OtherCosts
Notes:
Atelier FASHION HUB – 3.32
Name: can contain both the name and the surname: only in this case the field Surname is optional
TypeShipping: ‘Direct’ for shipping to the final customer, ‘Logistic’ for shipping to the central warehouse
Identification1 and Identification2: recognition of identifiers for logistics
Price: this field must be VAT-free and net of commissions
ReferencePrice: this field must be BrandReferencePrice of methods GoodsPriceList
Output:
{
"Response": {
"Result": "Success / Failed",
"Message": ""
}
}
18. GetOrderStatusByOrderID?orderID=
Input: orderID
Output:
{
"OrderStatus": {
"Order": {
"ID": "101",
"StatusCode": "10000005",
"StatusName": "Shipped",
"Notes": "",
"CreateTime": ""
}
}
}
19. GetOrderStatusByOrderIDList?orderIDList=
Input: orderIDList
Output:
{
"OrderStatus": {
"Order": [
{
"ID": "101",
"StatusCode": "100000005",
"StatusName": "Shipped",
"Notes": "",
"CreateTime": ""
},
{
"ID": "102",
Atelier FASHION HUB – 3.32
"StatusCode": "100000005",
"StatusName": "Shipped",
"Notes": "",
"CreateTime": ""
}
]
}
}
20. GetOrderStatusByTs?date=
Input: date – format: YYYYMMDD
Output:
{
"OrderStatus": {
"Order": [
{
"ID": "101",
"StatusCode": "100000005",
"StatusName": "Shipped",
"Notes": "",
"CreateTime": ""
},
{
"ID": "102",
"StatusCode": "100000005",
"StatusName": "Shipped",
"Notes": "",
"CreateTime": ""
}
]
}
}
21. CancelOrder?orderID=
Input: orderIDList
Output:
{
"Response": {
"Result": "Success / Failed",
"Message": ""
}
}
}
}
23. GetOrderShippingInfo?orderID=
Input: orderID (note that orderID is a long string id)
Output:
{
"ShippingInfo": {
"Name": "RH",
"Address": "Test China",
"Mobile": "13890213141",
"ZipCode": "610000",
"City": "Shangai",
"Country": "China",
"Courier": "Fedex 123456789",
"Notes": "",
"Boxes": "1",
"Weight": "",
"Dimension": "",
"PurchaseNo": "",
"TrackingNo": "",
"ShipDate": "",
"Fee": {
"Ship": "",
"Customs": "",
"Extras": ""
}
}
}
24. GetStepOrderByOrderID?orderID=
Input: orderID
Output:
Notes:
The managed Steps are 2: Ready and OK Package
The steps can only be queried after the order status is HANDLING
{
"OrderStep": {
"Order": {
"ID": "101",
"Step": "Ready"
}
}
}
Atelier FASHION HUB – 3.32
25. GetStepOrderByOrderIDList?orderIDList=
Input: orderIDList
Output:
{
"OrderStep": {
"Order": [
{
"ID": "101",
"Step": "Ready"
},
{
"ID": "102",
"Step": "OK Package"
}
]
}
}
26. GetStepOrderByTs?date=
Input: date – format: YYYYMMDD
Output:
{
"OrderStep": {
"Order": [
{
"ID": "101",
"Step": "Ready"
},
{
"ID": "102",
"Step": "OK Package"
}
]
}
}
27.UpdateStepOkPackage?orderID=
Input: orderID
Notes:
The step can be set only if the order has status HANDLING and step Ready
Output:
{
"Response": {
"Result": "Success / Failed",
"Message": ""
}
}