Laravel ile geliştirdiğim bir ürün yönetimi sisteminde her kategorinin kendine özgü attribute'ları (özellikleri) bulunuyor ve yalnızca en alt kategorilere ürün atanabiliyor. Ayrıca bazı attribute'lar varyant oluştururken, bazıları sadece ürün açıklaması seviyesinde kalıyor.
Genel Yapı:
- Her kategorinin kendi attribute seti var.
- Attribute'lar şu flaglerle tanımlanıyor: is_variant, is_mandatory, is_custom_value gibi.
- Varyantlı ürünler için attribute kombinasyonlarıyla farklı stok/fiyat oluşturulabiliyor.
Örnek Senaryo:
- Kategori: Küvet
- Attribute: Renk (is_variant = true, is_custom_value = true)
- Attribute: Menşei (is_variant = false)
- Ürün oluşturulurken: Antrasit Küvet -> fiyat, stok vs. giriliyor.
Örnek Kategori Yapısı
{
"categories": [
{
"id": 101,
"parentId": null,
"name": "Banyo & Tuvalet",
"subCategories": [
{
"id": 1153,
"parentId": 101 ,
"name": "Küvet",
"subCategories": null
}
]
}
]
}
Örnek Kategoriye Bağlı Attribute'lar
{
"id": 1153 ,
"name": "Küvet",
"categoryAttributes": [
{
"attributeId": 1262,
"categoryId": 1153 ,
"attributeName": "Menşei",
"isMandatory": false,
"isVariant": false,
"isSlicer": false,
"isCustomValue": false,
"attributeValues": [
{
"id": 11893953,
"value": "AD - (Andora)"
},
{
"id": 11893954,
"value": "AE - (Birleşik Arap Emirlikleri)"
}
]
},
{
"attributeId": 429,
"categoryId": 1153 ,
"attributeName": "Renk",
"isMandatory": true,
"isVariant": true,
"isSlicer": false,
"isCustomValue": true,
"attributeValues": [
{
"id": 6810790,
"value": "Antrasit"
},
{
"id": 6701330,
"value": "Açık Gri"
}
]
}
]
}Ürün Kaydı Örneği
{
"category_id": 1153 ,
"name": "Köşe Küvet",
"description": "Dayanıklı köşe küvet",
"attributes": [
{
"attribute_id": 1262,
"value_id": 11893954
}
],
"variants": [
{
"price": 1999.90,
"stock": 20,
"sku": "KUVET-ACT120",
"attributes": [
{ "attribute_id": 429, "custom_value": "Antrasit" }
]
}
]
}Sormak İstediğim:
- Bu sistemin veri modellemesi hakkında ne düşünüyorsunuz? Eksik veya karmaşık gördüğünüz yer var mı?
- Varyant yönetimi için daha iyi bir yaklaşım önerir misiniz?
- Kategoriye göre attribute yaklaşımı ölçeklenebilir mi? Yarın 1000 kategoriye çıktığında bu yapı yorucu hale gelir mi?
- is_variant, is_custom_value, is_slicer gibi bayraklarla kontrol sizce sağlıklı mı, başka modelleme öneriniz olur mu?