diff --git a/.DS_Store b/.DS_Store index 16b290ff..5fe6965e 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/_raml/apps/gpsrinfo/examples/get_gpsrinfo_response.json b/_raml/apps/gpsrinfo/examples/get_gpsrinfo_response.json new file mode 100644 index 00000000..5edb235e --- /dev/null +++ b/_raml/apps/gpsrinfo/examples/get_gpsrinfo_response.json @@ -0,0 +1,36 @@ +{ + "gpsrInfo": { + "pictograms": [ + { + "age_restriction_0_3": { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + }, + { + "skull": { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + } + } + ], + "safetyStatements": [ + { + "H_225": { + "description": "Highly flammable liquid and vapour." + } + }, + { + "H_413": { + "description": "May cause long lasting harmful effects to aquatic life." + } + }, + { + "H_224": { + "description": "Extremely flammable liquid and vapour." + } + } + + ] + } +} \ No newline at end of file diff --git a/_raml/apps/gpsrinfo/gpsrinfo.raml b/_raml/apps/gpsrinfo/gpsrinfo.raml new file mode 100644 index 00000000..fc1408c3 --- /dev/null +++ b/_raml/apps/gpsrinfo/gpsrinfo.raml @@ -0,0 +1,12 @@ +#%RAML 0.8 +displayName: GpsrInfo +get: + description: Returns all GPSR pictogramms and safety statements from the shop. *epages6 *epagesNow + securedBy: [products_read] + is: [ locale ] + responses: + 200: + body: + application/json: + example: !include examples/get_gpsrinfo_response.json + schema: !include schema/get_gpsrinfo.schema.json diff --git a/_raml/apps/gpsrinfo/schema/get_gpsrinfo.schema.json b/_raml/apps/gpsrinfo/schema/get_gpsrinfo.schema.json new file mode 100644 index 00000000..0eba89db --- /dev/null +++ b/_raml/apps/gpsrinfo/schema/get_gpsrinfo.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "GET GpsrInfo Schema", + "type": "object", + "properties": { + "": { + "type": "object of [gpsrinfo](page:apps-data-types#gpsrInfo)", + "description": "" + } + } +} \ No newline at end of file diff --git a/_raml/apps/manufacturers/examples/get_manufacturers_manufacturerid_response.json b/_raml/apps/manufacturers/examples/get_manufacturers_manufacturerid_response.json new file mode 100644 index 00000000..aec6c08f --- /dev/null +++ b/_raml/apps/manufacturers/examples/get_manufacturers_manufacturerid_response.json @@ -0,0 +1,23 @@ +{ + "zipCode": "07749", + "country": "Germany", + "street": "Heinrich-Heine-Str. 1", + "state": null, + "emailOrContactFormUrl": "test@epages.de", + "responsiblePersonAddress": { + "zipCode": "07749", + "country": "Germany", + "emailAddress": "test@epages.de", + "street": "Heinrich-Heine-Str. 99", + "state": null, + "city": "Jena", + "streetDetails": null, + "company": "DJ Oetzi", + "phoneNumber": null + }, + "city": "Jena", + "streetDetails": null, + "company": "DJ Bass", + "manufacturerId": "691C23A6-6908-FB99-5807-C0A80502185B", + "phoneNumber": null +} \ No newline at end of file diff --git a/_raml/apps/manufacturers/examples/get_manufacturers_response.json b/_raml/apps/manufacturers/examples/get_manufacturers_response.json new file mode 100644 index 00000000..d492f51b --- /dev/null +++ b/_raml/apps/manufacturers/examples/get_manufacturers_response.json @@ -0,0 +1,43 @@ +{ + "results": 2, + "page": 1, + "resultsPerPage": 2, + "items": [ + { + "zipCode": null, + "country": null, + "street": null, + "state": null, + "emailOrContactFormUrl": null, + "responsiblePersonAddress": null, + "city": null, + "streetDetails": null, + "company": "Tatonka", + "manufacturerId": "691B2E5A-A321-9921-8A5E-C0A805021988", + "phoneNumber": null + }, + { + "zipCode": "07749", + "country": "Germany", + "street": "Heinrich-Heine-Str. 1", + "state": null, + "emailOrContactFormUrl": "test@epages.de", + "responsiblePersonAddress": { + "zipCode": "07749", + "country": "Germany", + "emailAddress": "test@epages.de", + "street": "Heinrich-Heine-Str. 99", + "state": null, + "city": "Jena", + "streetDetails": null, + "company": "DJ Oetzi", + "phoneNumber": null + }, + "city": "Jena", + "streetDetails": null, + "company": "DJ Bass", + "manufacturerId": "691C23A6-6908-FB99-5807-C0A80502185B", + "phoneNumber": null + } + ] +} diff --git a/_raml/apps/manufacturers/examples/patch_manufacturers_manufacturerid_request.json b/_raml/apps/manufacturers/examples/patch_manufacturers_manufacturerid_request.json new file mode 100644 index 00000000..4dbd086e --- /dev/null +++ b/_raml/apps/manufacturers/examples/patch_manufacturers_manufacturerid_request.json @@ -0,0 +1,32 @@ +[{ + "op": "add", + "path": "/manufacturerAddress", + "value": { + "zipCode": "12345", + "country": "FR", + "street": "Heinrich-Heine-Str. 555", + "state": null, + "emailOrContactFormUrl": "test@epages.de", + "city": "Jena", + "streetDetails": null, + "phoneNumber": null, + "company": "DJ Anton", + "responsiblePersonAddress": { + "zipCode": "07745", + "country": "Germany", + "emailAddress": "test@epages.de", + "street": "Heinrich-Heine-Str. 6000", + "state": null, + "city": "Berlin", + "streetDetails": null, + "company": "Tony Tester", + "phoneNumber": "1234567890" + } + + } +}, +{ + "op": "remove", + "path": "/responsiblePersonAddress" +} +] \ No newline at end of file diff --git a/_raml/apps/manufacturers/examples/patch_manufacturers_manufacturerid_response.json b/_raml/apps/manufacturers/examples/patch_manufacturers_manufacturerid_response.json new file mode 100644 index 00000000..0a152f88 --- /dev/null +++ b/_raml/apps/manufacturers/examples/patch_manufacturers_manufacturerid_response.json @@ -0,0 +1,23 @@ +{ + "zipCode": "12345", + "country": "FR", + "street": "Heinrich-Heine-Str. 555", + "state": null, + "emailOrContactFormUrl": "test@epages.de", + "city": "Jena", + "streetDetails": null, + "phoneNumber": null, + "company": "DJ Anton", + "responsiblePersonAddress": { + "zipCode": "07745", + "country": "Germany", + "emailAddress": "test@epages.de", + "street": "Heinrich-Heine-Str. 6000", + "state": null, + "city": "Berlin", + "streetDetails": null, + "company": "Tony Tester", + "phoneNumber": "1234567890" + }, + "manufacturerId": "691C23A6-6908-FB99-5807-C0A80502185B" +} diff --git a/_raml/apps/manufacturers/examples/post_manufacturer_request.json b/_raml/apps/manufacturers/examples/post_manufacturer_request.json new file mode 100644 index 00000000..9a72dcdc --- /dev/null +++ b/_raml/apps/manufacturers/examples/post_manufacturer_request.json @@ -0,0 +1,36 @@ +[ + { + "zipCode": "07749", + "country": "DE", + "street": "Heinrich-Heine-Str. 1", + "state": "Thüringen", + "responsiblePersonAddress": { + "zipCode": "07749", + "country": "DE", + "emailAddress": "test@epages.de", + "street": "Heinrich-Heine-Str. 99", + "state": "Thüringen", + "city": "Jena", + "streetDetails": null, + "company": "Responsible Company", + "phoneNumber": "12345" + }, + "emailOrContactFormUrl": "test@epages.de", + "city": "Jena", + "streetDetails": null, + "company": "Fancy Manufacturer", + "phoneNumber": "08154711" +}, +{ +"zipCode": 7863, +"country": "Italy", +"street": "Via Regia 42", +"state": null, +"responsiblePersonAddress": null, +"emailOrContactFormUrl": null, +"city": null, +"streetDetails": null, +"company": "Ducati", +"phoneNumber": "1234567890" +} +] diff --git a/_raml/apps/manufacturers/examples/post_manufacturer_response.json b/_raml/apps/manufacturers/examples/post_manufacturer_response.json new file mode 100644 index 00000000..807ed768 --- /dev/null +++ b/_raml/apps/manufacturers/examples/post_manufacturer_response.json @@ -0,0 +1,38 @@ +[ + { + "zipCode": "07749", + "country": "DE", + "street": "Heinrich-Heine-Str. 1", + "state": "Thüringen", + "responsiblePersonAddress": { + "zipCode": "07749", + "country": "DE", + "emailAddress": "test@epages.de", + "street": "Heinrich-Heine-Str. 99", + "state": "Thüringen", + "city": "Jena", + "streetDetails": null, + "company": "Responsible Company", + "phoneNumber": "12345" + }, + "emailOrContactFormUrl": "test@epages.de", + "city": "Jena", + "streetDetails": null, + "company": "Fancy Manufacturer", + "phoneNumber": "08154711", + "manufacturerId": "693FDFB0-C202-DD74-584A-C0A80502D85C" + }, + { + "zipCode": 7863, + "country": "Italy", + "street": "Via Regia 42", + "state": null, + "responsiblePersonAddress": null, + "emailOrContactFormUrl": null, + "city": null, + "streetDetails": null, + "company": "Ducati", + "phoneNumber": "1234567890", + "manufacturerId": "693FDFB0-C202-DD74-584A-C0A80502X3YZ" + } +] diff --git a/_raml/apps/manufacturers/manufacturers.raml b/_raml/apps/manufacturers/manufacturers.raml new file mode 100644 index 00000000..bdcc63b8 --- /dev/null +++ b/_raml/apps/manufacturers/manufacturers.raml @@ -0,0 +1,70 @@ +#%RAML 0.8 +displayName: Manufacturers +get: + description: Returns all manufacturers with their addresses from the shop. *epages6 *epagesNow + responses: + 200: + body: + application/json: + example: !include examples/get_manufacturers_response.json + schema: !include schema/get_manufacturers.schema.json +post: + description: Creates a new manufacturer. *epages6 *epagesNow + securedBy: [products_write] + is: [ locale, currency ] + body: + application/json: + example: !include examples/post_manufacturer_request.json + schema: !include schema/post_manufacturer_request.schema.json + responses: + 201: + body: + application/json: + example: !include examples/post_manufacturer_response.json + schema: !include schema/post_manufacturer.schema.json + +/{manufacturerId}: + displayName: Manufacturer + uriParameters: + manufacturerId: + description: The unique identifier of the manufacturer. + example: 693FDFB0-C202-DD74-584A-C0A80502D85C + get: + description: Returns information on a single manufacturer. *epages6 *epagesNow + securedBy: [products_read] + responses: + 200: + body: + application/json: + example: !include examples/get_manufacturers_manufacturerid_response.json + schema: !include schema/get_manufacturers_manufacturerid.schema.json + patch: + description: Updates information for a single manufacturer with partial data according to [RFC 6902](https://tools.ietf.org/html/rfc6902). You can either add or remove certain attributes. *epages6 *epagesNow

+ + *Supported JSON-PATCH operations*
+ - add (sets or replaces an attribute)
+ - remove (unsets an attribute)
+ + *Attribute paths that allow updates via PATCH*
+ - /manufacturerAddress¹
+ - /responsiblePersonAddress²

+ + **¹** supports *add* only
+ **²** supports *remove* only
+ + securedBy: [products_write] + body: + application/json-patch+json: + example: !include examples/patch_manufacturers_manufacturerid_request.json + schema: !include schema/patch_manufacturers_manufacturerid_request.schema.json + responses: + 200: + body: + application/json: + example: !include examples/patch_manufacturers_manufacturerid_response.json + schema: !include schema/patch_manufacturers_manufacturerid.schema.json + delete: + description: Deletes a single manufacturer. *epages6 *epagesNow + securedBy: [products_write] + responses: + 204: diff --git a/_raml/apps/manufacturers/schema/get_manufacturers.schema.json b/_raml/apps/manufacturers/schema/get_manufacturers.schema.json new file mode 100644 index 00000000..cc41f8c0 --- /dev/null +++ b/_raml/apps/manufacturers/schema/get_manufacturers.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "GET Manufacturers Schema", + "type": "object", + "properties": { + "results": { + "type": "integer", + "description": "The number of manufacturers in total." + }, + "page": { + "type": "integer", + "description": "The page number on which the manufacturers appears." + }, + "resultsPerPage": { + "type": "integer", + "description": "The number of manufacturers returned per page." + }, + "items": { + "type": "array of [manufacturer](page:apps-data-types#manufacturer)", + "description": "The list of all manufacturers." + } + } +} \ No newline at end of file diff --git a/_raml/apps/manufacturers/schema/get_manufacturers_manufacturerid.schema.json b/_raml/apps/manufacturers/schema/get_manufacturers_manufacturerid.schema.json new file mode 100644 index 00000000..a3957015 --- /dev/null +++ b/_raml/apps/manufacturers/schema/get_manufacturers_manufacturerid.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "GET Manufacturers ManufacturerID Schema", + "type": "object", + "properties": { + "": { + "type": "object of [manufacturer](page:apps-data-types#manufaturer)", + "description": "" + } + } +} \ No newline at end of file diff --git a/_raml/apps/manufacturers/schema/patch_manufacturers_manufacturerid.schema.json b/_raml/apps/manufacturers/schema/patch_manufacturers_manufacturerid.schema.json new file mode 100644 index 00000000..6e4b2105 --- /dev/null +++ b/_raml/apps/manufacturers/schema/patch_manufacturers_manufacturerid.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "PATCH Manufacturers ManufacturerID Schema", + "type": "object", + "properties": { + "": { + "type": "object of [manufacturer](page:apps-data-types#manufacturer)", + "description": "" + } + } +} diff --git a/_raml/apps/manufacturers/schema/patch_manufacturers_manufacturerid_request.schema.json b/_raml/apps/manufacturers/schema/patch_manufacturers_manufacturerid_request.schema.json new file mode 100644 index 00000000..0522029b --- /dev/null +++ b/_raml/apps/manufacturers/schema/patch_manufacturers_manufacturerid_request.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "PATCH Manufacturers ManufacturerID Request Schema", + "type": "object", + "properties": { + "": { + "type": "array of [jsonPatch](page:apps-data-types#jsonpatch)", + "description": "" + } + } +} diff --git a/_raml/apps/manufacturers/schema/post_manufacturer.schema.json b/_raml/apps/manufacturers/schema/post_manufacturer.schema.json new file mode 100644 index 00000000..dc4c2859 --- /dev/null +++ b/_raml/apps/manufacturers/schema/post_manufacturer.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "POST Manufacturer Schema", + "type": "object", + "properties": { + "": { + "type": "array of [manufacturer](page:apps-data-types#manufacturer)", + "description": "" + } + } +} diff --git a/_raml/apps/manufacturers/schema/post_manufacturer_request.schema.json b/_raml/apps/manufacturers/schema/post_manufacturer_request.schema.json new file mode 100644 index 00000000..339bdf7a --- /dev/null +++ b/_raml/apps/manufacturers/schema/post_manufacturer_request.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "http://json-schema.org/draft-03/schema", + "title": "POST Manufacturer Request Schema", + "type": "object", + "properties": { + "": { + "type": "array of [manufacturer (create request)](page:apps-data-types#manufacturer-create-request)", + "description": "" + } + } +} diff --git a/_raml/apps/products/examples/get_product_productid_response.json b/_raml/apps/products/examples/get_product_productid_response.json index ae4dc9bc..5ac8a021 100644 --- a/_raml/apps/products/examples/get_product_productid_response.json +++ b/_raml/apps/products/examples/get_product_productid_response.json @@ -257,6 +257,27 @@ "source": "https://vimeo.com/7265982" } ], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", diff --git a/_raml/apps/products/examples/get_product_response.json b/_raml/apps/products/examples/get_product_response.json index c12529f8..d638a02a 100644 --- a/_raml/apps/products/examples/get_product_response.json +++ b/_raml/apps/products/examples/get_product_response.json @@ -130,6 +130,27 @@ "stocklevel": null, "minStocklevel": null, "isInWishlist": false, + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "videos": [ { "type": "YouTube", @@ -293,6 +314,27 @@ "source": "https://vimeo.com/7265982" } ], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", @@ -566,6 +608,27 @@ "source": "https://vimeo.com/7265982" } ], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", diff --git a/_raml/apps/products/examples/get_product_updated_property_response.json b/_raml/apps/products/examples/get_product_updated_property_response.json index 130cdd97..8e472cd4 100644 --- a/_raml/apps/products/examples/get_product_updated_property_response.json +++ b/_raml/apps/products/examples/get_product_updated_property_response.json @@ -245,6 +245,27 @@ "minStocklevel": 10, "isInWishlist": false, "videos": [], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", diff --git a/_raml/apps/products/examples/patch_product_productid_request.json b/_raml/apps/products/examples/patch_product_productid_request.json index cd1f1054..48647bf2 100644 --- a/_raml/apps/products/examples/patch_product_productid_request.json +++ b/_raml/apps/products/examples/patch_product_productid_request.json @@ -134,4 +134,19 @@ "op": "add", "path": "/orderUnitInfo", "value": { "priceQuantity":1, "orderUnit":"piece(s)", "minOrder":1, "intervalOrder":1 } -}] \ No newline at end of file +}, +{ + "op": "add", + "path": "/gpsrInfo", + "value": { + "pictograms": ["skull", "age_restriction_0_3"], + "safetyStatements": ["H_413","H_225", "H_372"], + "supplemetaryInformation": "Dangerous" + } +}, +{ + "op": "remove", + "path": "/gpsrInfo" +} + +] \ No newline at end of file diff --git a/_raml/apps/products/examples/patch_product_productid_response.json b/_raml/apps/products/examples/patch_product_productid_response.json index 580d317f..131a4293 100644 --- a/_raml/apps/products/examples/patch_product_productid_response.json +++ b/_raml/apps/products/examples/patch_product_productid_response.json @@ -217,6 +217,27 @@ "minStocklevel": 10, "isInWishlist": false, "videos": [], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", diff --git a/_raml/apps/products/examples/post_product_find_response.json b/_raml/apps/products/examples/post_product_find_response.json index 9cf6f2ed..8589c57f 100644 --- a/_raml/apps/products/examples/post_product_find_response.json +++ b/_raml/apps/products/examples/post_product_find_response.json @@ -134,6 +134,27 @@ "source": "https://vimeo.com/7265982" } ], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", @@ -281,6 +302,27 @@ "source": "https://vimeo.com/7265982" } ], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", @@ -490,6 +532,27 @@ "source": "https://vimeo.com/7265982" } ], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", diff --git a/_raml/apps/products/examples/post_product_request.json b/_raml/apps/products/examples/post_product_request.json index 562fa8fa..3f32afaf 100644 --- a/_raml/apps/products/examples/post_product_request.json +++ b/_raml/apps/products/examples/post_product_request.json @@ -5,5 +5,10 @@ "description": "This is a brand new product", "manufacturer": "Awesome Products Company", "price": 5.99, - "searchKeywords": ["awesome", "product"] + "searchKeywords": ["awesome", "product"], + "gpsrInfo": { + "pictograms": ["skull", "age_restriction_0_3"], + "safetyStatements": ["H_413","H_225", "H_372"], + "supplemetaryInformation": "Dangerous" + } } diff --git a/_raml/apps/products/examples/post_product_response.json b/_raml/apps/products/examples/post_product_response.json index 6b35b29b..15329638 100644 --- a/_raml/apps/products/examples/post_product_response.json +++ b/_raml/apps/products/examples/post_product_response.json @@ -85,6 +85,27 @@ "minStocklevel": null, "isInWishlist": false, "videos": [], + "gpsrInfo": { + "responsiblePersonAddress": null, + "manufacturerAddress": null, + "pictograms": [ + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-skull.svg", + "description": "Acute toxicity" + }, + { + "url": "https://pm.epages.com/rs/shops/apidocu/WebRoot/SafetyPictograms/product-safety-age-0-3.svg", + "description": "Not suitable for children under 3 years of age." + } + ], + "safetyStatements": [ + "May cause long lasting harmful effects to aquatic life.", + "Flammable liquid and vapour.", + "May cause damage to organs through prolonged or repeated exposure." + ], + "relevantDocuments": [], + "supplemetaryInformation": "Dangerous" + }, "links": [ { "rel": "self", diff --git a/_raml/apps/products/products.raml b/_raml/apps/products/products.raml index b12861da..86d7aa80 100644 --- a/_raml/apps/products/products.raml +++ b/_raml/apps/products/products.raml @@ -121,7 +121,8 @@ post: - /productDataSheet
- /shippingMethodsRestrictedTo
- /productCode
- - /orderUnitInfo¹

+ - /orderUnitInfo¹
+ - /gpsrInfo

**¹** supports *add* only
**²** value will not be replaced, but changed, i.e. if the stocklevel is 3 and you add 1, you will get 4; if you add -5, you will get -2.
diff --git a/apps/data-types.md b/apps/data-types.md index a68a7646..73052cde 100644 --- a/apps/data-types.md +++ b/apps/data-types.md @@ -373,6 +373,32 @@ ePages Now only! | filter | object of [filter](page:apps-data-types#filter) | The available filter with name and value or name and range that is used for filtering. | | selectedValue | string | The search term(s) used for filtering. | + +## gpsrInfo + +| Attribute | Type | Description | +| - | - | - | +| pictograms | array of pictograms objects | The GPSR pictograms of the system | +| safetyStatements | array of safetyStatement objects | The GPSR safety statements of the system | + +## gpsrInfo (create request) + +| Attribute | Type | Description | +| - | - | - | +| pictograms | array of pictograms | The GPSR pictogram names. | +| safetyStatements | array of safetyStatement | The GPSR safety statement names. | +| supplemetaryInformation | string | The text of the supplementary information. | + +## gpsrInfo (get request) + +| Attribute | Type | Description | +| - | - | - | +| responsiblePersonAddress | object of [responsiblePerson](page:apps-data-types#responsibleperson) | The address of the responsible person of a manufaturer. | +| manufacturerAddress| object of [manufacturer](page:apps-data-types#manufacturer) | The address of the product manufacturer. | +| pictograms | array of pictograms | The GPSR pictogram names. | +| safetyStatements | array of safetyStatement | The GPSR safety statement names. | +| supplemetaryInformation | string | The text of the supplementary information. | + ## image | Attribute | Type | Description | @@ -430,6 +456,34 @@ ePages Now only! | href | string | The URL of the related link that can be used for subsequent calls. | | title | string | The title of the item that is linked. (optional) | +## manufacturersPaged + +| Attribute | Type | Description | +| - | - | - | +| results | string | The number of manufacturers in total. | +| page | string | The page number on which the manufacturers appear. | +| resultsPerPage | string | The number of manufacturers returned per page. | +| items | object of [manufacturer](page:apps-data-types#manufacturer) | The list of all manufacturers. | + + +## manufacturer + +This object is used for the attributes of manufacturers. + +| Attribute | Type | Description | +| - | - | - | +| company | string | The manufacturer's company.| +| street | string | The street name of the manufacturer's address. | +| streetDetails | string | An additional field for the street address.| +| zipCode | string | The zip or postal code of the address. | +| city | string | The name of the city. | +| state | string | The name of the state.| +| country | string | The name of the country. | +| phoneNumber | string | The manufacturer's landline number. | +| emailOrContactFormUrl | string | The manufacturer's email or website url | +| responsiblePersonAddress | object of [responsiblePerson](page:apps-data-types#responsibleperson) | The address of the responsible person of a manufaturer. | +| manufacturerId | string | The identifier of manufacturer. | + ## minimumCart | Attribute | Type | Description | @@ -647,6 +701,8 @@ This object is used for the attributes of basePrice, depositPrice, ecoParticipat | intervalOrder | number | The increment by which the order amount for the product can be adjusted (e.g. 1.5 m). | | productCode | string | The product code (e.g. EAN, UPC, ASIN and ISBN). | | isInWishlist | boolean | Indicates if the product is stored as a wish list item. | +| gpsrInfo | object of [gpsrInfo (get request)](page:apps-data-types#gpsrinfo-get-request)| The GPSR data of the product.| + ## product (create request) @@ -669,6 +725,8 @@ This object is used for the attributes of basePrice, depositPrice, ecoParticipat | depositPrice | number | The deposit price for the product, e.g. bottle deposit.| | manufacturerPrice | number | The sales price recommended by the manufacturer.| | deliveryWeight | object of [deliveryWeightQuantity](page:apps-data-types#deliveryweightquantity)| The delivery weight of the product.| +| gpsrInfo | object of [gpsrInfo (create request)](page:apps-data-types#gpsrinfo-create-request)| The GPSR data for the product.| + ## productLineItem @@ -837,6 +895,21 @@ ePages Now only! | amount | number | The amount displayed as a decimal number. | | unit | string | The unit displayed as abbreviated unit, if available. Can be one of *Byte*, *kByte*, *MByte*, *GByte*, *TByte*, *l*, *ml*, *ft³*, *in³*, *m³*, *yd³*, *fl oz*, *gal*, *qt*, *m*, *cm*, *ft*, *in*, *km*, *mm*, *yd*, *s*, *min*, *m²*, *cm²*, *ft²*, *in²*, *mm²* or *yd²*. Otherwise a localised name of the unit is displayed. Can be *piece(s)*, *bottle(s)*, *crate(s)*, *can(s)*, *capsule(s)*, *box(es)*, *glass(es)*, *kit(s)*, *pack(s)*, *package(s)*, *pair(s)*, *roll(s)*, *set(s)*, *sheet(s)*, *ticket(s)*, *unit(s)*, *day(s)*, *hour(s)*, *week(s)*, *month(s)*, *night(s)* or *year(s)*. | +## responsiblePerson + +| Attribute | Type | Description | +| - | - | - | +| company | string | The reponsible persons's company. | +| street | string | The street name of the reponsible persons's address. | +| streetDetails | string | An additional field for the street address.| +| zipCode | string | The zip or postal code of the address. | +| city | string | The name of the city. | +| state | string | The name of the state. | +| country | string | The name of the country. | +| phoneNumber | string | The reponsible persons's landline number. | +| emailAddress | string | The reponsible persons's email address | + + ## sales | Attribute | Type | Description |