flamingo.me/flamingo-commerce/v3@v3.11.0/product/product_model.puml (about) 1 @startuml 2 scale max 1024 width 3 4 title 5 = Product Model 6 end title 7 8 interface BasicProduct { 9 BaseData() 10 TeaserData() 11 GetSpecifications() 12 IsSaleable() 13 Type() 14 HasMedia() 15 } 16 interface Configurable { 17 ConfigurableProductWithActiveVariant GetConfigurableWithActiveVariant() 18 []Variant Variant() 19 Variant GetDefaultVariant() 20 bool HasVariant() 21 } 22 class ConfigurableProductWithActiveVariant { 23 ActiveVariant 24 } 25 class ConfigurableProduct 26 class SimpleProduct 27 class BasicProductData { 28 Title 29 Attributes 30 MarketPlaceCode 31 RetailerCode 32 RetailerSku 33 Categories 34 MainCategory 35 Keywords 36 } 37 class Saleable { 38 IsSaleable 39 SaleableFrom 40 SaleableTo 41 ActivePrice 42 AvailablePrices 43 LoyaltyPrices 44 LoyaltyEarnings 45 } 46 class PriceInfo { 47 Default Price 48 Discounted Price 49 TaxClass 50 Context 51 Price GetFinalPrice() 52 } 53 class PriceContext { 54 CustomerGroup 55 ChannelCode 56 Locale 57 } 58 class CategoryTeaser { 59 Code 60 Name 61 } 62 class Attribute { 63 Code 64 Label 65 } 66 class TeaserData { 67 ShortTitle 68 ShortDescription 69 URLSlug 70 TeaserPrice 71 TeaserPriceIsFromPrice 72 PreSelectedVariantSku 73 Media 74 MarketPlaceCode 75 TeaserAvailablePrices 76 TeaserLoyaltyPriceInfo 77 TeaserLoyaltyEarningInfo 78 } 79 80 BasicProduct --> BasicProductData : BaseData() 81 BasicProduct --> TeaserData : TeaserData() 82 BasicProduct -down-> Saleable : SaleableData 83 BasicProductData --> CategoryTeaser : MainCategory() 84 BasicProductData o-- Attribute : Attributes 85 CategoryTeaser --o BasicProductData : Categories 86 CategoryTeaser --> CategoryTeaser : parent 87 ConfigurableProduct .up> BasicProduct 88 ConfigurableProduct .up.> Configurable 89 ConfigurableProductWithActiveVariant .up.> Configurable 90 ConfigurableProductWithActiveVariant .up.> BasicProduct 91 SimpleProduct .up.> BasicProduct 92 PriceInfo --> PriceContext : Context 93 Saleable o-- PriceInfo : AvailablePrices 94 Saleable o-- PriceInfo : LoyaltyPrices 95 Saleable --> PriceInfo : ActivePrice 96 97 @enduml