feat: Miller Columns kategori seçici + JSON tree tabanlı mimari

Ne yaptık:
- Sahibinden.com tarzı Miller Columns kategori seçici (CategorySelector.jsx)
- Trendyol API'den 3971 kategori ağacı çekildi (Playwright ile)
- Backend: JSON tree tabanlı kategori endpoint'leri (/api/category-tree/*)
- Backend: Rapor oluşturma artık DB kategorilerine bağımlı değil
- Report tablosundaki category_id FK constraint kaldırıldı
- Dockerfile'a trendyol_category_tree.json eklendi

Neden yaptık:
- DB'deki kategori tablosu boştu, Trendyol API ID'leri ile Excel ID'leri farklıydı
- Playwright ile Trendyol'un kendi kategori ağacını çektik (3971 kategori, gerçek API ID'leri)
- Miller Columns ile kullanıcı adım adım derinleşerek kategori seçebiliyor
- Arama özelliği ile kelime bazlı kategori bulma da mümkün

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
furkanyigit34
2026-03-29 02:24:22 +03:00
parent 6aa4ec5eb0
commit 1c10a701cf
224 changed files with 3176073 additions and 2376775 deletions

View File

@@ -0,0 +1,681 @@
{
"category_id": 104251,
"path_model": "kamp-mutfak-urunleri-x-c104251",
"category_name": "Dağcılık",
"total_products": 24,
"scraped_at": "2026-03-28T15:06:24.327208",
"products": [
{
"id": 252991210,
"name": "Çelik Metal Rüzgarlık Rüzgar Kesici Özel Kutulu Ve Çantalı Metalik BPA Free Tek Kişilik",
"brand": {
"name": "GKTRK"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 375,
"currentText": "375",
"originalPrice": 363.75,
"originalPriceText": "363,75",
"discountedPrice": 363.75,
"discountedPriceText": "363,75",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.509661835748793,
"totalCount": 828
},
"url": "/gktrk/celik-metal-ruzgarlik-ruzgar-kesici-ozel-kutulu-ve-cantali-metalik-bpa-free-tek-kisilik-p-252991210?boutiqueId=61&merchantId=573255",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1447/product/media/images/prod/QC/20240730/00/7af2cf1d-e1cc-33ff-a1b9-0811f273b67b/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 925836506,
"name": "Deri Kamp Baharatlık Kamp,Outdoor Aktiviteleri , Karavan ve Doğa Gezileri",
"brand": {
"name": "ironcaravan"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 590,
"currentText": "590",
"originalPrice": 590,
"originalPriceText": "590",
"discountedPrice": 590,
"discountedPriceText": "590",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.616666666666666,
"totalCount": 60
},
"url": "/ironcaravan/deri-kamp-baharatlik-kamp-outdoor-aktiviteleri-karavan-ve-doga-gezileri-p-925836506?boutiqueId=61&merchantId=857814",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1660/prod/QC/20250407/23/1026dfbb-7717-33ce-97b3-c957d8dc2e3b/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 222532906,
"name": "1500 Derece Depolu Doldurulabilir Pürmüz Çakmak",
"brand": {
"name": "İNDİRİM CENTER"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 149,
"currentText": "149",
"originalPrice": 149,
"originalPriceText": "149",
"discountedPrice": 149,
"discountedPriceText": "149",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.460365853658536,
"totalCount": 656
},
"url": "/indirim-center/1500-derece-depolu-doldurulabilir-purmuz-cakmak-p-222532906?boutiqueId=61&merchantId=214285",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1004/product/media/images/prod/SPM/PIM/20230921/19/368f7e78-fa23-390e-ab22-74cf613571ea/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 1107527660,
"name": "35 Litre Termal Buzluk Çanta Piknik Yemek Taşıma Çantası Soğutucu Isı Yalıtımlı Soğuk Tutan Çanta",
"brand": {
"name": "BYENS"
},
"price": {
"old": 499.65,
"oldText": "499,65",
"currency": "TL",
"current": 440.14,
"currentText": "440,14",
"originalPrice": 499.65,
"originalPriceText": "499,65",
"discountedPrice": 440.14,
"discountedPriceText": "440,14",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.932203389830509,
"totalCount": 59
},
"url": "/byens/35-litre-termal-buzluk-canta-piknik-yemek-tasima-cantasi-sogutucu-isi-yalitimli-soguk-tutan-canta-p-1107527660?boutiqueId=61&merchantId=404545",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1828/prod/QC_PREP/20260220/22/294dd855-3009-3f98-aeb1-c1d480c638b5/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 345025030,
"name": "Katlanabilir Paslanmaz Çelik Mangal + Taşıma Çantası",
"brand": {
"name": "Orcamp"
},
"price": {
"old": 1599,
"oldText": "1.599",
"currency": "TL",
"current": 1569,
"currentText": "1.569",
"originalPrice": 1599,
"originalPriceText": "1.599",
"discountedPrice": 1569,
"discountedPriceText": "1.569",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.625,
"totalCount": 8
},
"url": "/orcamp/katlanabilir-paslanmaz-celik-mangal-tasima-cantasi-p-345025030?boutiqueId=61&merchantId=803342",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty513/product/media/images/20220824/13/164968041/551375835/1/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 94473960,
"name": "Kamp Çaydanlığı - Hızlı Su Isıtan Demlik",
"brand": {
"name": "Orcamp"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 470.68,
"currentText": "470,68",
"originalPrice": 470.68,
"originalPriceText": "470,68",
"discountedPrice": 470.68,
"discountedPriceText": "470,68",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.663082437275985,
"totalCount": 279
},
"url": "/orcamp/kamp-caydanligi-hizli-su-isitan-demlik-p-94473960?boutiqueId=61&merchantId=998533",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1812/prod/QC_ENRICHMENT/20260119/16/f348925a-9ecd-37b2-afb6-c15030a6ef80/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 152957328,
"name": "Kamp Tencere Tava Seti 2-3 Kişilik 11 Parça",
"brand": {
"name": "Genel Markalar"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 1300,
"currentText": "1.300",
"originalPrice": 1300,
"originalPriceText": "1.300",
"discountedPrice": 1300,
"discountedPriceText": "1.300",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.583333333333333,
"totalCount": 36
},
"url": "/genel-markalar/kamp-tencere-tava-seti-2-3-kisilik-11-parca-p-152957328?boutiqueId=61&merchantId=108919",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty187/product/media/images/20211005/16/140343037/254184897/1/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 678136728,
"name": "Ns 22 Lt Soğutucu Termos Kamp Piknik Sıcak Ve Soğuk Tutan Termal Yalıtımlı Outdoor Buzluk Çanta",
"brand": {
"name": "NS reliable"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 461.16,
"currentText": "461,16",
"originalPrice": 461.16,
"originalPriceText": "461,16",
"discountedPrice": 461.16,
"discountedPriceText": "461,16",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.70863309352518,
"totalCount": 2502
},
"url": "/ns-reliable/ns-22-lt-sogutucu-termos-kamp-piknik-sicak-ve-soguk-tutan-termal-yalitimli-outdoor-buzluk-canta-p-678136728?boutiqueId=61&merchantId=160140",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1732/prod/QC_ENRICHMENT/20250821/17/e23aec3c-e9f6-3721-ac0d-170f446e3fef/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 1058102433,
"name": "v2.1 Mini Ateş Kutusu / Portatif Katlanır Kamp Ocağı / Kül Tablalı & Çantalı (15x15x20 cm)",
"brand": {
"name": "FASMART"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 849,
"currentText": "849",
"originalPrice": 679.2,
"originalPriceText": "679,20",
"discountedPrice": 679.2,
"discountedPriceText": "679,20",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.266666666666667,
"totalCount": 15
},
"url": "/fasmart/v2-1-mini-ates-kutusu-portatif-katlanir-kamp-ocagi-kul-tablali-cantali-15x15x20-cm-p-1058102433?boutiqueId=61&merchantId=1079547",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1795/prod/QC_PREP/20251129/22/372df142-cadb-3a4f-a41d-acafd2c949f0/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 147061347,
"name": "Rüzgarlık Rz 306 Orta Boy Ocak Rüzgarlığı",
"brand": {
"name": "Orcamp"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 478,
"currentText": "478",
"originalPrice": 478,
"originalPriceText": "478",
"discountedPrice": 478,
"discountedPriceText": "478",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.685714285714286,
"totalCount": 35
},
"url": "/orcamp/ruzgarlik-rz-306-orta-boy-ocak-ruzgarligi-p-147061347?boutiqueId=61&merchantId=803342",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty178/product/media/images/20210920/12/133869119/246646003/1/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 874182019,
"name": "Portatif katlanır kamp piknik mangal ateş üstü ayaklı demir ızgara çantalı + küçük pürmüz çakmak",
"brand": {
"name": "NURGAZ KAMP"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 1198,
"currentText": "1.198",
"originalPrice": 1198,
"originalPriceText": "1.198",
"discountedPrice": 1198,
"discountedPriceText": "1.198",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.882352941176471,
"totalCount": 17
},
"url": "/nurgaz-kamp/portatif-katlanir-kamp-piknik-mangal-ates-ustu-ayakli-demir-izgara-cantali-kucuk-purmuz-cakmak-p-874182019?boutiqueId=61&merchantId=971559",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1633/prod/QC/20250205/12/76078039-72c7-3b58-ac7e-7175115b2fb2/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 822577153,
"name": "Ns 26 Lt Soğutucu Çanta Termos Piknik & Kamp Çantası Isı Yalıtımlı, Sıcak-soğuk Tutma Özellikli",
"brand": {
"name": "NS reliable"
},
"price": {
"old": 494.18,
"oldText": "494,18",
"currency": "TL",
"current": 463.68,
"currentText": "463,68",
"originalPrice": 494.18,
"originalPriceText": "494,18",
"discountedPrice": 463.68,
"discountedPriceText": "463,68",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.733333333333333,
"totalCount": 270
},
"url": "/ns-reliable/ns-26-lt-sogutucu-canta-termos-piknik-kamp-cantasi-isi-yalitimli-sicak-soguk-tutma-ozellikli-p-822577153?boutiqueId=61&merchantId=160140",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1812/prod/QC_ENRICHMENT/20260122/13/32eafe83-d506-3c65-9714-de2dcefab476/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 218223833,
"name": "Kampçı Mutfak Seti 3lü OUT-1150",
"brand": {
"name": "Orcamp"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 1500,
"currentText": "1.500",
"originalPrice": 1500,
"originalPriceText": "1.500",
"discountedPrice": 1500,
"discountedPriceText": "1.500",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.482315112540193,
"totalCount": 311
},
"url": "/orcamp/kampci-mutfak-seti-3lu-out-1150-p-218223833?boutiqueId=61&merchantId=251771",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1812/prod/QC_ENRICHMENT/20260121/19/4d7807cf-8c39-3b21-a4f0-326263c03bc6/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 927597570,
"name": "Katlanır su bidonu kamp piknik araç yer kaplamaz musluklu 15lt katlanır su bidon",
"brand": {
"name": "CAMPOUT"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 645,
"currentText": "645",
"originalPrice": 645,
"originalPriceText": "645",
"discountedPrice": 645,
"discountedPriceText": "645",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.923076923076923,
"totalCount": 13
},
"url": "/campout/katlanir-su-bidonu-kamp-piknik-arac-yer-kaplamaz-musluklu-15lt-katlanir-su-bidon-p-927597570?boutiqueId=61&merchantId=971559",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1662/prod/QC/20250415/17/ac1000fb-8fc6-36d8-b435-5214f324fbd1/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 917408681,
"name": "Çantalı 4lü Verzalit Saplı Şef Seti",
"brand": {
"name": "yatagan"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 2306.35,
"currentText": "2.306,35",
"originalPrice": 2285,
"originalPriceText": "2.285",
"discountedPrice": 2260.22,
"discountedPriceText": "2.260,22",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.333333333333333,
"totalCount": 18
},
"url": "/yatagan/cantali-4lu-verzalit-sapli-sef-seti-p-917408681?boutiqueId=61&merchantId=404335",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1676/prod/QC/20250509/08/03789ecb-822a-3960-967b-1484f81889f3/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 938447508,
"name": "Termal Buzluk Çanta Piknik Yemek Taşıma Çantası 22 Litre Beslenme Sırt Termoslu Termo Kamp Soğutucu",
"brand": {
"name": "BYENS"
},
"price": {
"old": 529.65,
"oldText": "529,65",
"currency": "TL",
"current": 414.77,
"currentText": "414,77",
"originalPrice": 529.65,
"originalPriceText": "529,65",
"discountedPrice": 414.77,
"discountedPriceText": "414,77",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.786096256684492,
"totalCount": 187
},
"url": "/byens/termal-buzluk-canta-piknik-yemek-tasima-cantasi-22-litre-beslenme-sirt-termoslu-termo-kamp-sogutucu-p-938447508?boutiqueId=61&merchantId=404545",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1680/prod/QC/20250521/15/d0bfdfa9-2d6a-31cf-a96d-5f8c9b3a7557/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 855092355,
"name": "Doğada Hayatta Kalma Kiti Acil Durumda Hayatta Kalma Donanımı ve Ekipmanları",
"brand": {
"name": "Nurcamp"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 2549.74,
"currentText": "2.549,74",
"originalPrice": 2549.74,
"originalPriceText": "2.549,74",
"discountedPrice": 2549.74,
"discountedPriceText": "2.549,74",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.6,
"totalCount": 5
},
"url": "/nurcamp/dogada-hayatta-kalma-kiti-acil-durumda-hayatta-kalma-donanimi-ve-ekipmanlari-p-855092355?boutiqueId=61&merchantId=1178976",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1517/product/media/images/prod/QC/20240902/00/6107e2dd-a9d7-31e4-a5e2-f8d6c2453456/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 309234542,
"name": "Tekli Portatif Kamp Ocak Gaz Stop Emniyetli 4 Adet 227 Kartuş",
"brand": {
"name": "Orcamp"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 1343.7,
"currentText": "1.343,70",
"originalPrice": 1343.7,
"originalPriceText": "1.343,70",
"discountedPrice": 1343.7,
"discountedPriceText": "1.343,70",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.646236559139785,
"totalCount": 930
},
"url": "/orcamp/tekli-portatif-kamp-ocak-gaz-stop-emniyetli-4-adet-227-kartus-p-309234542?boutiqueId=61&merchantId=998533",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1813/prod/QC_ENRICHMENT/20260119/16/5d4d1909-a397-3fea-b8a4-cfe71e101cac/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 636159350,
"name": "Campout Baharatlık Seti",
"brand": {
"name": "NURGAZ"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 340,
"currentText": "340",
"originalPrice": 340,
"originalPriceText": "340",
"discountedPrice": 340,
"discountedPriceText": "340",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.331521739130435,
"totalCount": 184
},
"url": "/nurgaz/campout-baharatlik-seti-p-636159350?boutiqueId=61&merchantId=861994",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty702/product/media/images/20230126/11/266223762/840740377/1/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 678138307,
"name": "14 Lt Soğutucu Termos Kamp Piknik Sıcak Ve Soğuk Tutan Askılı Yalıtımlı Termal Çanta Buzluk",
"brand": {
"name": "NS reliable"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 349.9,
"currentText": "349,90",
"originalPrice": 349.9,
"originalPriceText": "349,90",
"discountedPrice": 349.9,
"discountedPriceText": "349,90",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.6721649484536085,
"totalCount": 485
},
"url": "/ns-reliable/14-lt-sogutucu-termos-kamp-piknik-sicak-ve-soguk-tutan-askili-yalitimli-termal-canta-buzluk-p-678138307?boutiqueId=61&merchantId=160140",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1617/prod/QC/20241226/19/b81485bd-93db-3cba-b2b0-dddaa1985394/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 891450048,
"name": "Quechua Outdoor Yemek Seti - 4 Kişilik - Paslanmaz Çelik - Yapışmaz - 25 Parça - 500",
"brand": {
"name": "Decathlon"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 3590,
"currentText": "3.590",
"originalPrice": 3590,
"originalPriceText": "3.590",
"discountedPrice": 3590,
"discountedPriceText": "3.590",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 3,
"totalCount": 2
},
"url": "/decathlon/quechua-outdoor-yemek-seti-4-kisilik-paslanmaz-celik-yapismaz-25-parca-500-p-891450048?boutiqueId=61&merchantId=167526",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1622/prod/QC/20250109/15/1a49a07e-5128-30ea-b95f-edb2ebff42cc/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 152936395,
"name": "Çatal Kaşık Bıçak Seti Katlanır Çantalı",
"brand": {
"name": "Genel Markalar"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 295,
"currentText": "295",
"originalPrice": 295,
"originalPriceText": "295",
"discountedPrice": 295,
"discountedPriceText": "295",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.509090909090909,
"totalCount": 55
},
"url": "/genel-markalar/catal-kasik-bicak-seti-katlanir-cantali-p-152936395?boutiqueId=61&merchantId=108919",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty511/product/media/images/20220817/14/161466842/545997122/1/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 921943045,
"name": "Kutulu Yolculuk Çatal Bıçak Kaşık Seti Ofis Restaurant Okul Kamp 1. Sınıf Paslanmaz Çelik C",
"brand": {
"name": "valkyrie"
},
"price": {
"old": 0,
"oldText": "0",
"currency": "TL",
"current": 421.24,
"currentText": "421,24",
"originalPrice": 421.24,
"originalPriceText": "421,24",
"discountedPrice": 421.24,
"discountedPriceText": "421,24",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 4.177777777777778,
"totalCount": 45
},
"url": "/valkyrie/kutulu-yolculuk-catal-bicak-kasik-seti-ofis-restaurant-okul-kamp-1-sinif-paslanmaz-celik-c-p-921943045?boutiqueId=61&merchantId=112431",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1653/prod/QC/20250323/19/6b604967-be35-3896-b4eb-bfdc06de1ca6/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
},
{
"id": 1107527625,
"name": "35 Litre Termal Buzluk Çanta Piknik Yemek Taşıma Çantası Soğutucu Isı Yalıtımlı Soğuk Tutan Çanta",
"brand": {
"name": "BYENS"
},
"price": {
"old": 499.65,
"oldText": "499,65",
"currency": "TL",
"current": 440.85,
"currentText": "440,85",
"originalPrice": 499.65,
"originalPriceText": "499,65",
"discountedPrice": 440.85,
"discountedPriceText": "440,85",
"currencySymbol": "TL"
},
"ratingScore": {
"averageRating": 5,
"totalCount": 53
},
"url": "/byens/35-litre-termal-buzluk-canta-piknik-yemek-tasima-cantasi-sogutucu-isi-yalitimli-soguk-tutan-canta-p-1107527625?boutiqueId=61&merchantId=404545",
"imageUrl": "https://cdn.dsmcdn.com/mnresize/400/-/ty1829/prod/QC_PREP/20260220/22/e645d2eb-0b95-3bee-877b-30065232a906/1_org_zoom.jpg",
"merchantListings": [],
"categoryId": null,
"categoryName": null
}
]
}