Closed larsolofsson closed 5 months ago
Decisions on 2023-12-20 Current business cases for version 3.0.0 are without uuid and master data. Our decision is to currently remove the uuid from products, parties, locations and customerArticles. Property partNumber should be added to sellerProduct and customerArticle. gradeCodeName should be changed to productName.
I think we need to (re)discuss the consequences of removing the (uu)id of parties and locations. How would we then present the links with the following (existing) API endpoints:
GET /parties/{partyId}
GET /locations/{locationId}
Unless we remove these API endpoints from the version 3.0.0
.
@bengtwentus will prepare some proposals to be discussed...
Let's summarize the needed changes for sellerProduct
and customerArticleReference
:
sellerProduct.id
no change for now, but we will re-discuss the overall usage of UUIDs later.sellerProduct.brandName
type to type: string
.sellerProduct.gradeCode
type to type: string
. It is used when not fully-defined.sellerProduct.partNumber
type to type: string
. It is used when fully-defined.
Warning: We should add the constraint that sellerProduct.gradeCode
and sellerProduct.partNumber
must not be both populated, or leave them optional with the constraint explained in the description
; @patricekrakow will make a proposal for both options.sellerProduct.gradeCodeName
to sellerProduct.name
and change type to type: string
. It is used when not fully-defined.customerArticleReference.id
no change for now, but we will re-discuss the overall usage of UUIDs later.customerArticleReference.brandName
with type: string
.customerArticleReference.gradeCode
with type: string
. It is used when not fully-defined.customerArticleReference.partNumber
with type: string
. It is used when fully-defined.
Warning: We should add the constraint that customerArticleReference.gradeCode
and customerArticleReference.partNumber
must not be both populated, or leave them optional with the constraint explained in the description
; @patricekrakow will make a proposal for both options.customerArticleReference.name
and change type to type: string
. It is used when not fully-defined.customerArticleReference.articleNumber
.customerArticleReference.articleName
.When I will be ready with the commit, I will probably create a new issue to discuss further the overall usage of UUIDs so we can close this issue with the commit containing all the changes we agreed on!
Changes done in commit 46c2cf1.
I will propose a JSON schema to:
sellerProduct.gradeCode
and sellerProduct.partNumber
must not be both populated;customerArticleReference.gradeCode
and customerArticleReference.partNumber
must not be both populated.within a the new issue #123 so we can already close this issue.
The minLength: 1
is missing with the type: string
and the constraint must be explained in English prose within the description
.
The constraint minLength: 1
has been added, see commit 38cbcd5. Regarding the constraint, we will follow that up within issue #123.
sellerProduct:
brandName:, gradeCode: and gradeCodeName are assigned by the supplier/seller. The customer can use a sellerproduct with these properties when ordering paper. So these properties are never assigned by the customer for a sellerProduct. So the assignedBy construct can be removed.
A sellerProduct can be fully-specified or not fully-specified. The identifier used for a not fully-specified sellerProduct is gradeCode in papiNet xml. The identifier used for a fully-specified sellerProduct is partNumber in papiNet xml. I propose when having gradeCode that property partNumber: should be added. Property gradeCodename could be renamed to sellerProductName or productName, A choice could be added between gradeCode and partNumber (OneOf)
The customer can specify an customerArticle that can be can be fully-specified or not fully-specified. Properties brandName:, gradeCode: and partNumber: can also be used for a customerArticle. Property customerArticleName: or articleName: could be used for an customerArticle.