diye bir kavram var. Her bir varyanta ürün kodu oluşturup sisteme alt ürün olarak ekletmek. Aşağıdaki URL de bu konuda güzel bir tartışma yapılmış. İncelemenizi tavsiye ederim. https://laracasts.com/discuss/channels/general-discussion/custom-ecommerce-dynamic-product-variants İlginçmiş hocam, attım fava inceleyeceğim bende.

Ilk aklima gelen bu sekilde olabilir : renkler bedenler urun urun_varyantlari urun_stok Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

hocalar yanıtlarınız için teşekkür ederim ama nerdikleriniz aradığım cevaplar değil malesef. daha somutlaştırmak gerekirse aşağıdaki videodan yapmak isteğime gz atabilirsiniz. https://youtu.be/Q3HfU1IuuQE?t=376..

Stok tablon id, urun_id, renk_id, beden_id, adet 1, 5, , 1, 1, 40 2, 5, , 1, 2, 14 3, 5, , 1, 3, 99 şeklinde olursa istediğin gibi olur diye tahmin ediyorum. Tablo okunabiliyordur umarım. hocam beden ve renk varyantları sabit değil; zelleştirilebilir. yani varyant "zellik - 1" deyip, altına A, B, C, D.. gibi seçenekler ekleyebilirim. ondan dolayı bu yapı uymuyor ve sipariş sayfasında bu zellikleri ayrı ayrı seçtireceğim. renk ve beden rneğinde olduğu gibi rengi ve bedeni ayrı ayrı seçecek. edit: yani varyant listemi ayrı bir tabloda tutuyorum. bu varyantlara alt seçenekleri ayrı bir tabloda tutuyorum. daha sonra bu varyantları ürünlerle ilişkilendiriyorum ayrı bir tabloda. tabi bir varyantın tüm seçeneklerini de eklemeyebiliyorum. lepusmorris tarafından 30/Eki/19 16:30 tarihinde düzenlenmiştir..

Stok tablon id, urun_id, renk_id, beden_id, adet 1, 5, , 1, 1, 40 2, 5, , 1, 2, 14 3, 5, , 1, 3, 99 şeklinde olursa istediğin gibi olur diye tahmin ediyorum. Tablo okunabiliyordur umarım. ontedi tarafından 30/Eki/19 16:23 tarihinde düzenlenmiştir Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.

asıl sorunum: tablo yapımı nasıl oluşturacağıma karar veremiyorum. rnek üzerinden ilerlemek gerekirse; 2 veya daha fazla varyantı olan bir ürün düşünün ve bunun stoğunu detaylı bir şekilde tutmak istiyorum.#RENK- Kırmızı- Beyaz- Siyah #BEDEN- Small- Medium- Largemesela yukarıdaki gibi varyantları olan bir tshirt ürünüm olsun. tüm renklerin ve bedenlerin kalan stoklarını anlık olarak listeleyebilmek istiyorum. aşağıdaki gibi neyden kaç tane kaldı grebilmek istiyorum. varyant sayısını sabit düşünmeyin. 1 de olabilir, 2 de, 3 de.. - Kırmızı&Small- Kırmızı&Medium- Kırmızı&Large- Beyaz&Small- Beyaz&Medium- Beyaz&Large- Siyah&Small- Siyah&Medium- Siyah&Large- Kırmızı- Beyaz- Siyah- Small- Medium- Large ve ziyaretçi siteden ürün seçercen rengi ve bedeni ayrı ayrı seçecek. renkten kırmızıyı, bedenden de small'u seçince "Kırmızı&Small" , "Small" ve "Kırmızı" dan stok düşürmeliyim. daha nce bu tarz bir çalışma yapan arkadaşlar var mı? lepusmorris tarafından 30/Eki/19 16:18 tarihinde düzenlenmiştir..

Renkler ve bedenler tablon olsun. Ona gre sınırsız sayıda kombin yapabilirsin. Ama stok tablon bu kombinlere bağlı olmalı. Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.

hocalar şimdi varyantların stoklarını ayrı ayrı tutsam hiçbir sıkıntı yok zaten ama varyantlar birbiriyle ilişkili olduğu için çıkamadım içinden. şimdi ürün_varyant_seçenekleri diye bir tablo açıp buraya TSHIRT ürününün kırmızısndan şu kadar, beyazından şu kadar, small'undan, medium'undan diye ayrı ayrı girebilirim. byle olsa zaten dediğim gibi problem yok. sıkıntı kırmızısından stok var olabilir, smalldan da var olabilir ama kırmızısının small bedeninden kalmamış olabilir. yani sadece kırmızı ve small varyant seçeneklerinin stoklarına bakarsam yanılacağım. seçilen varyantların bütün kombinasyonlarını ve ayrı ayrı varyant seçeneklerinin tümünün stoklarını tutmam gerekiyor gibi düşünebilirsiniz. ayrıca beden ve renk diye bir sütun açamıyorum. çünkü varyantlar sabit değil. varyant1, varyant2 diye de açamıyorum; çünkü onunda belirli bir sayısı yok. 1 de olabilir, 2 de olabilir, daha fazla da. mevcut yapı aşağıdaki gibi: ..

her bir rengi ayrı ürün olarak tut ve attributelarla birbirine bağla hocam. dijital reklam firmasında çalışıyorum, büyük perakendeciler müşterimiz. bu şekilde yapıyorlar çünkü : stokları ayrı ayrı takip edebiliyorsun stoğu az olana kampanya yapmak gibi şeyler daha kolay oluyor reklam çıkarken tam istediğin ürüne çıkabiliyorsun. vs vs bir sürü avantajın olacak 29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.

ürün tanım tablonda sadece ürünün ismi olduğunu düşün varyant tablonda ürün idsi, rengi, bedeni ve stoğu olacak. stok düşerken bu varyant tablosundan düşeceksin. ya da ürünü her varyant için tekrar oluşturacaksın ama mantıksal bir gruplama yaparsın listelemelerde falan aynı üründen onlarca grünmemesi gerekir. her varyant için otomatik yaparsın bunu rn: ürünü ekledin varyant ve stok girdiğin bir ekrandan bütün varyantları stok adetleriyle birlikte ürün tablona oluşturacak. ...

daha kolay anlayabil diye senin gnderiğin imaj üzerinde düzenleme yaptım hocam :) bu adımda yapman gereken tek şey "ÜRÜN VARYANTLARI" tablosuna stok ekleyip ordan takip etmek :) kolay gelsin. türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)

Eticaret sektorunde danismanlik yaptigim firmalarda gordugum sey Kirmizi Mavi Siyah Farklin urunler ve farkli stok kodlarina ait olmaktadir. Hatta bedene gore de stok kodlarini ayristirmajta farklilik. var. Atlet kirmizi m Atlet kirmizi s Atlet kirmizi l tek urun stok kodu Atlet siyah sml farkli stok kodu Bu sekilde olusturmalisin Homo sapiens, yaşamak için, diğer canlıların yaşamasına muhtaç; obligat parazit türüdür. "Sen olursan boş bardak, sana olur koyan çok su. a. g."

--variant tablosu yapısıVariantsTable --ürün tablosu yapısıProductTable --ürünlerin variant tablosu yapısıProductVariantChild --variant tablosu içeriğiVariantId, VariantName1, Renk2, Size3, Telefon Kapasitesi --ürün tablosu içeriğiProductId, ProductName1, a tişrt2, b tişrt3, c tişrt4, telefon --ürünlerin variant tablosu içeriğiRowId, ProductID, VariantId, VariantContent1,1 ,1 , Siyah2,1 ,2 , XL3,4 ,1 , Siyah4,4 ,3 , 64 gb bu şekilde ilerleyebilrsn yada Siyah XL ve 64 gb gibi valueleri de ayrı bir child tabloda tutabilrsn. benim yapım buydu :) türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)

iyice kafam karıştı :D opensource yazılımlara gz atıyorum. ..

en pratik ve anlaşılırı aşağıdaki yapı gibi ama bunda ürün stoğunu hangi sorgu ile alacağım. mesela ziyaretçi siteden kırmızı ve small'u seçti. tabloda bunu nasıl bir sorgu ile kontrol edeceğim? products: | id | name | | 1 | t-shirt | variants: | id | product_id | name | | 1 | 1 | size | | 2 | 1 | color | variant_options: | id | product_id | variant_id | name | | 1 | 1 | 1 | small | | 2 | 1 | 1 | large | | 3 | 1 | 2 | red | | 4 | 1 | 2 | blue | skus: | id | product_id | sku | price | qty | | 1 | 1 | 4xx01 | 140 | 5 | | 2 | 1 | 4xx02 | 140 | 10 | | 3 | 1 | 4xx03 | 160 | 8 | | 4 | 1 | 4xx04 | 160 | 15 | sku_values: | id | product_id | variant_id | variant_option_id | skud_id | | 1 | 1 | 1 | 1 | 1 | | 2 | 1 | 2 | 3 | 1 | | 3 | 1 | 1 | 1 | 2 | | 4 | 1 | 2 | 4 | 2 | | 5 | 1 | 1 | 2 | 3 | | 6 | 1 | 2 | 3 | 3 | | 7 | 1 | 1 | 2 | 4 | | 8 | 1 | 2 | 4 | 3 | ..

diye bir kavram var. Her bir varyanta ürün kodu oluşturup sisteme alt ürün olarak ekletmek. Aşağıdaki URL de bu konuda güzel bir tartışma yapılmış. İncelemenizi tavsiye ederim. https://laracasts.com/discuss/channels/general-discussion/custom-ecommerce-dynamic-product-variants nceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..

SET FOREIGN_KEY_CHECKS=0; -- -- Table structure for secenekler -- DROP TABLE IF EXISTS `secenekler`; CREATE TABLE `secenekler` ( `secenek_id` int(11) NOT NULL AUTO_INCREMENT, `secenek_adi` varchar(255) DEFAULT NULL, PRIMARY KEY ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; -- -- Records of secenekler -- INSERT INTO `secenekler` VALUES ('1', 'Beden'); INSERT INTO `secenekler` VALUES ('2', 'Renk'); INSERT INTO `secenekler` VALUES ('3', 'Yaka'); INSERT INTO `secenekler` VALUES ('4', 'Kol'); -- -- Table structure for secenek_degerleri -- DROP TABLE IF EXISTS `secenek_degerleri`; CREATE TABLE `secenek_degerleri` ( `secenek_deger_id` int(11) NOT NULL AUTO_INCREMENT, `secenek_id` int(11) DEFAULT NULL, `deger_adi` varchar(255) DEFAULT NULL, PRIMARY KEY , KEY `secenek_id` , CONSTRAINT `secenek_degerleri_ibfk_1` FOREIGN KEY REFERENCES `secenekler` ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; -- -- Records of secenek_degerleri -- INSERT INTO `secenek_degerleri` VALUES ('1', '1', 'XS'); INSERT INTO `secenek_degerleri` VALUES ('2', '1', 'S'); INSERT INTO `secenek_degerleri` VALUES ('3', '1', 'M'); INSERT INTO `secenek_degerleri` VALUES ('4', '1', 'L'); INSERT INTO `secenek_degerleri` VALUES ('5', '1', 'XL'); INSERT INTO `secenek_degerleri` VALUES ('6', '1', 'XXL'); INSERT INTO `secenek_degerleri` VALUES ('7', '2', 'Kırmızı'); INSERT INTO `secenek_degerleri` VALUES ('8', '2', 'Mavi'); INSERT INTO `secenek_degerleri` VALUES ('9', '2', 'Mor'); INSERT INTO `secenek_degerleri` VALUES ('10', '2', 'Yeşil'); INSERT INTO `secenek_degerleri` VALUES ('11', '3', 'Bisiklet'); INSERT INTO `secenek_degerleri` VALUES ('12', '3', 'Polo Yaka'); INSERT INTO `secenek_degerleri` VALUES ('13', '4', 'Uzun'); INSERT INTO `secenek_degerleri` VALUES ('14', '4', 'Kısa'); -- -- Table structure for urunler -- DROP TABLE IF EXISTS `urunler`; CREATE TABLE `urunler` ( `urun_id` int(11) NOT NULL AUTO_INCREMENT, `urun_adi` varchar(255) DEFAULT NULL, PRIMARY KEY ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- -- Records of urunler -- INSERT INTO `urunler` VALUES ('1', 'TBT Tişrt'); INSERT INTO `urunler` VALUES ('2', 'TBT Don'); -- -- Table structure for varyantlar -- DROP TABLE IF EXISTS `varyantlar`; CREATE TABLE `varyantlar` ( `varyant_id` int(11) NOT NULL AUTO_INCREMENT, `urun_id` int(11) DEFAULT NULL, PRIMARY KEY , KEY `urun_id` , CONSTRAINT `varyantlar_ibfk_1` FOREIGN KEY REFERENCES `urunler` ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; -- -- Records of varyantlar -- INSERT INTO `varyantlar` VALUES ('1', '1'); INSERT INTO `varyantlar` VALUES ('2', '1'); INSERT INTO `varyantlar` VALUES ('3', '1'); INSERT INTO `varyantlar` VALUES ('4', '2'); INSERT INTO `varyantlar` VALUES ('5', '2'); -- -- Table structure for varyant_degerler -- DROP TABLE IF EXISTS `varyant_degerler`; CREATE TABLE `varyant_degerler` ( `id` int(11) NOT NULL AUTO_INCREMENT, `varyant_id` int(11) DEFAULT NULL, `secenek_id` int(11) DEFAULT NULL, `secenek_deger_id` int(11) DEFAULT NULL, PRIMARY KEY , KEY `varyant_id` , KEY `secenek_id` , KEY `secenek_deger_id` , CONSTRAINT `varyant_degerler_ibfk_1` FOREIGN KEY REFERENCES `varyantlar` ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `varyant_degerler_ibfk_2` FOREIGN KEY REFERENCES `secenekler` ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `varyant_degerler_ibfk_3` FOREIGN KEY REFERENCES `secenek_degerleri` ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; -- -- Records of varyant_degerler -- INSERT INTO `varyant_degerler` VALUES ('1', '1', '1', '3'); INSERT INTO `varyant_degerler` VALUES ('2', '1', '2', '8'); INSERT INTO `varyant_degerler` VALUES ('3', '1', '3', '11'); INSERT INTO `varyant_degerler` VALUES ('4', '1', '4', '14'); INSERT INTO `varyant_degerler` VALUES ('5', '2', '1', '1'); INSERT INTO `varyant_degerler` VALUES ('6', '2', '2', '9'); INSERT INTO `varyant_degerler` VALUES ('7', '2', '3', '12'); INSERT INTO `varyant_degerler` VALUES ('8', '2', '4', '13'); INSERT INTO `varyant_degerler` VALUES ('9', '3', '1', '6'); INSERT INTO `varyant_degerler` VALUES ('10', '3', '2', '7'); INSERT INTO `varyant_degerler` VALUES ('11', '4', '1', '6'); INSERT INTO `varyant_degerler` VALUES ('12', '4', '2', '7'); INSERT INTO `varyant_degerler` VALUES ('13', '5', '1', '1'); INSERT INTO `varyant_degerler` VALUES ('14', '5', '2', '8'); boyle bişi yaptım ama sorguda boyle stokta varyantları tutacan select a. varyant_id, c. urun_adi, GROUP_CONCAT as varyant_ozellikleri from as a LEFT JOIN as b on b. varyant_id=a. varyant_id LEFT JOIN as c on c. urun_id=b. urun_id LEFT JOIN as d on d. secenek_deger_id=a. secenek_deger_id GROUP BY a. varyant_id |sadece aptalların başarısı ders notu ile lçülür|

hocalar yanıtlarınız için teşekkür ederim ama nerdikleriniz aradığım cevaplar değil malesef. daha somutlaştırmak gerekirse aşağıdaki videodan yapmak isteğime gz atabilirsiniz. https://youtu.be/Q3HfU1IuuQE?t=376 Hocam yazdigim yapida dedigin oluyor. Urtune istedigin kadar varyant ekle... Secerkende varyant sec... Ozgurluk aslinda her istedigini yapabilmek degildir, istemedigini yapmamaktir. // Verdigin degeri gormeyince, gordugun degeri ver!!! // Hayatin herkes icin bir bavulu vardir!!! // Dusmek gerekir bazen hayatta; kalkmayi ogrenebilmek icin

https://stackoverflow.com/a/24941744/637724 Burayı bi incele hocam Sen hiç kaval çaldın mı?

hocalar konuyu anladım; sindirdim. hepinize ayrı ayrı teşekkür ederim. ..

pmden sorduğun soruya buraya cevap vereyim hocam :) senin tablo yapısını inceleme şansım olmadı ama ben şu şekilde yapardım :) --MıxedVariantChild tablosuna da RowId , ProductId ve VariantOptionId eklemen gerekiyormuş şimdi farkettim :) --aşağıdaki değerlerin bir yerden geldiğini varsayıyorum DECLARE @variantId1 AS INT =1 --renk varyantı DECLARE @variantId2 AS INT =2 --beden varyantı DECLARE @variantValue1 AS INT =1 --kırmızı valuesi DECLARE @variant1Value2 AS INT =2 --small valuesi SELECT FROM ProductsVariants WHERE ProductId IN ( SELECT ProductId FROM MixedVariantChild WHERE (VariantId=@variantId1 AND VariantOptionId=@variantValue1) OR (VariantId=@variantId2 AND VariantOptionId=@variant1Value2) ) Yolbulucunun dediği yntem de mantıklı ama tercih meselesi tabi. yazarken ufak tefek mantık hataları çıkabilr. ama genel mantık bu şekilde en azından. manglerman tarafından 01/Kas/19 09:57 tarihinde düzenlenmiştir türk kızlarından sabun yapalım, rus kızları elini yıkasın.:)