diff --git a/architecture/julia-model.pim b/architecture/julia-model.pim new file mode 100644 index 000000000..4c12f586a --- /dev/null +++ b/architecture/julia-model.pim @@ -0,0 +1,3 @@ +@startuml + +Local \ No newline at end of file diff --git a/architecture/onboarder-model.puml b/architecture/onboarder-model.puml new file mode 100644 index 000000000..e75be666d --- /dev/null +++ b/architecture/onboarder-model.puml @@ -0,0 +1,42 @@ +@startuml +Product *-- Attribute +FlatFileImportTemplate *-- FlatFileMapping + +class Product { + String upc + String sku + String uid? + String name + Product customerProduct +} + +enum ProductState { + draft + proposal + valid +} + +enum AttributeState { + accepted + refused +} + +class Attribute { + String name + String type + Attribute customerAttribute +} + +class FlatFileMapping { + boolean isProductMapping + String flatFileColumnName + String targetName +} + +class FlatFileImportTemplate { + FlatFileMapping[] mappings +} + + + +@enduml \ No newline at end of file diff --git a/architecture/pim-objects.puml b/architecture/pim-objects.puml new file mode 100644 index 000000000..e69de29bb diff --git a/architecture/pim.puml b/architecture/pim.puml new file mode 100644 index 000000000..145c36c13 --- /dev/null +++ b/architecture/pim.puml @@ -0,0 +1,64 @@ +@startuml PIM core domain model + +enum Locale { + code: string + activated: boolean +} +enum AttributeType { + text + simpleSelect + boolean + multiSelect + assetCollection + number + textArea + date + identifier + referenceEntity + entityCollection +} + +'exemple digital_assets_images, product_size_dimensions, product_physical_characteristics +class AttributeGroup { + code: string +} + +'Q: metric Family is used? +'Q: isScopable: type value per channel? +'Q: what is backend Type, what is the use of entity_type ("Akeneo\Pim\Enrichment\Component\Product\Model\Product") +'display attributes, specific values formats and value constraints not shown +'Properties: a:4:{s:19:"reference_data_name";N;s:19:"auto_option_sorting";N;s:12:"is_read_only";N;s:13:"default_value";N;} +'Guidelines: +'sold_in_orgs: {"en_AU": "List of the Orgs this product can be sold in.\nIf the org is not added to this list, the product can not be sold to customers in that Org."} +'part_number_list_competitor: {"en_AU": "Add competitor part numbers to this list, separate each with a comma."} + +Class Attribute { + code: String + group: AttributeGroup + isRequired: boolean + validationRule: Regexp + type: AttributeType + isLocalizable: boolean + isScopable: boolean + properties: Object + guidelines: Object +} + +Class Product { + family: Family + familyVariant: FamilyVariant +} + +Class Family { + +} + +Class FamilyVariant { + +} + + + + + +@enduml \ No newline at end of file diff --git a/architecture/system.puml b/architecture/system.puml new file mode 100644 index 000000000..040029576 --- /dev/null +++ b/architecture/system.puml @@ -0,0 +1,25 @@ +@startuml Akeneo Global System + +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml + +left to right direction +LAYOUT_WITH_LEGEND() + +Person(Julia, "Julia","Product catalog") +Person(Roy,"Roy", "Procurements") +Person(Jimmy,"Jimmy","Supplier") +System_Boundary(Akeneo, "Akeneo") { + System(PIM,"PIM") + System(Onboarder,"Onboarder") + Rel(Onboarder,PIM,"Product(s) Updates") + Rel(PIM,Onboarder,"PIM Updates") +} +Rel(Julia,PIM,"maintains catalog") +Rel(Julia,PIM,"validates 2nd level supplier change ") +Rel(Julia,PIM,"requires supplier update") +Rel(Roy, PIM, "configures Supplier Families show/required attributes") +Rel(Roy, PIM, "validates new Supplier reference") +Rel(Jimmy,Onboarder, "add new products") +Rel(Jimmy,Onboarder, "enrich products") + +@enduml \ No newline at end of file