SizeMeCom / sizeme-react

SizeMe Webstore UI with ReactJs
0 stars 0 forks source link

Fit Recommendation -toiminta #34

Closed nomasi closed 7 years ago

nomasi commented 7 years ago

Korjataan Fit Recommendation -indikaattorin toiminta. Fit Recommendation on siis tuotetiedoissa (db tai local) oleva sizeme-asteikon (925-1110 jotain) mukainen arvo.

Fit Recommendation -arvoa ei todellakaan aina aseteta, mut täällä on asetettu: https://www.sizemedemo.com/magento19/shoes/rieker-women-general-high-heel.html

tjjalava commented 7 years ago

voitko speksata tarkemmin, mikä tuo toiminnallisuus on

nomasi commented 7 years ago

Tuotetiedoissa on parent-tuotteelle kenttä "fitRecommendation" (tarkemmin: sizeme_product.item.fitRecommendation). Tämän kentän arvo määrää SizeSlider.jsx:n rivillä 88 kirjoitettavan RecommendationIndicator -elementin sijainnin. Mikäli kentän arvo on 0, koko RecommendationIndicatoria ei piirretä ollenkaan.

Myös: mikäli tää fitRecommendation-arvo on yli 0, api/sizeme-api.js:n OPTIMAL_FIT-muuttujan arvo pitäisi olla fitRecommendation.

nomasi commented 7 years ago

Tän toiminnallisuuden idea on antaa myyjälle mahdollisuus määrittää tuotekohtaisesti optimaalinen sopivuus. Kengissä tämä on ilmeistä mm. korkokengät vs. talvikengät. Samat parametrit muuten ja sama sizing barin toiminta, mutta fitRecommendation -indikaattorilla näytetään et tää tuote kannattaa mitoittaa tänne.

tjjalava commented 7 years ago

niin, siis nyt OPTIMAL_FIT on kovakoodattu (1070) ja RecommendationIndicatorin arvo määritellään etsimällä koko, jonka totalFit - OPTIMAL_FIT on lähinnä nollaa (sizeme-api.js:309). Onko toi laskutapa edelleen oikein, kunhan muutetaan OPTIMAL_FIT fitRecommendationiksi? Vai miten indikaattorin paikka pitäisi laskea?

nomasi commented 7 years ago

Tässä on mennyt asiat vähän sekaisin. Tämä Recommendation, josta mä puhun ja johon ton RecommendationIndicatorin tulisi viitata, on tuotekohtainen vakio. Sen voisi periaatteessa piirtää asteikolle ennen kuin siitä ihmisestä tiedetään mitään.

Sun suositus on enemmänkin "sizeRecommendation", jolle ei ole erillistä indikaattoria. Se SizeMe:n valitsema koko tietenkin valitaan automaattisesti.

Toi Optimal_fit -laskukaava on oikein, paitsi että se arvo on sen tuotekohtaisen fitRecommendation:in arvo, jos se on asetettu. Optimal_fit on enemmänkin Default_optimal_fit. Laskutavassa pitää muuten tarkistaa että ei anneta alle 1000:n (liian pieniä) suosituksia.

tjjalava commented 7 years ago

Toi laskukaava on itse asiassa se, jolla lasketaan parhaiten sopiva koko. Se palauttaa myös liian pieniä kokoja jotta systeemi osaisi aina asettaa jonkin koon valituksi. Jos sieltä filtteröi pois liian pienet koot, niin tietyissä tapauksissa kokoa ei valittaisi ja sovellus jäisi outoon limboon

nomasi commented 7 years ago

Pärjättäiskö me jotenkin sen oudon limbon kanssa ("size not selected")? Meille tullee paljon tilanteita, jossa ei voi oikein sydämestään suositella jotain kokoa; esim. liian pientä ei kyllä voisi suositella. Kookenkä huomautti tästä jo demossa.

nomasi commented 7 years ago

Pärjättäiskö me jotenkin sen oudon limbon kanssa ("size not selected")? Meille tullee paljon tilanteita, jossa ei voi oikein sydämestään suositella jotain kokoa; esim. liian pientä ei kyllä voisi suositella. Kookenkä huomautti tästä jo demossa.

nomasi commented 7 years ago

Periaatteessa voisi olla samankaltainen kuin "no measurements entered". Voisi tehdä toisen placeholder tekstillä "Select a size to see your fit." .sizeme-contentiin lisätään luokka "no-size" joka aktivoi sen.

Nykyisellään näköjään "no-size"-tilanne kääntyy "no-fit"-tilanteeksi, mut sen voi tehdä selkeämmäksi noin.

Omissa demoissa se localhost:8080/index.html tekee näin kun valitsee kooksi "Choose an option..."in.

nomasi commented 7 years ago

Myös: jos sekä koko on valitsematta JA mitat puuttuu, kirjoitetaan silloin vain toi no-fit.

tjjalava commented 7 years ago

Liian pieni on silloin kun totalFit < 1000, eikö vain? Mites liian iso, voidaanko me suositella kokoa, joka on liian suuri, vai pitäisikö siihenkin laittaa joku raja-arvo, jonka jälkeen jätetään koko valitsematta?

tjjalava commented 7 years ago

Nyt siis sizeme-containeriin lisätään luokkia:

Kysymyksiä:

tjjalava commented 7 years ago

Tossa nollauksessa on se huono puoli, ettei sitä välttämättä voi tehdä niin, että myös kauppa tajuaa sen.. eli vaikka ui:sta saadaan valinta-indikaattori nollattua, ei ole takeita, etteikö kauppa ole tallentanut kokovalintaa jonnekin javascriptin rakenteisiin, ja mahdollista vaikkapa ostoskoriin lisäämistä silti. Tällöin saattaa myös meiltä jäädä tieto siitä saamatta. Mutta nää on spekulaatiota, en tiedä onko välttämättä totta

nomasi commented 7 years ago

Olet ihan oikeassa että koon vaihtaminen on kaupan omien javascriptien kanssa paremmin yhteensopiva, mutta nollaaminen on kyllä ihan arpapeliä. Siispä voisi sanoa että ei nollata kokovalintaa vaikka uusi suositus ei suosittelisi mitään kokoa. Mutta se nollaus taitaa nyt olla jo implementoitu, niin sanoisin että kokeillaan näin ja katsotaan tuleeko ongelmia. Onhan se parempi kyllä näin.

Siitä raja-arvosta: voi olla että se tulee eteen käytännössä jossain vaiheessa. UiOptionsiin voitaisiin määrittää kauppakohtaisesti maksimietäisyys suositellusta koosta jolla me vielä suositellaan. Tässä vaiheessa mulle riittää ettei liian pientä kokoa (totalFit < 1000) suositella.

nomasi commented 7 years ago

Ideaalitilanteessa me varmaan indikoidaan se meidän tekemä kokovalinta jollain, mut mä en ole ihan varma että miten. Joku hienovarainen css-animaatio (outer glow) kokovalinnassa voisi riittää. Toisaalta niitä kokovalintatyyppejäkin on jo aika monta...

tjjalava commented 7 years ago

Lisäsin uiOptionssiin option tota maksimietäisyyttä varten. Suljetaan tää nyt ja mietitään kokovalintaindikaatiota jossain toisessa issuessa

nomasi commented 7 years ago

image

Suositus ei mene isoilla jaloilla vielä oikein; tässä esimerkissä pitäisi sopivuus (totalFit) olla 940 eli ihan asteikon vasemmassa laidassa ja samalla liian pientä ei saisi suositella.

nomasi commented 7 years ago

Tää ylläoleva bugi esiintyy vain tässä Kookenkä-faux-esimerkissä ja myös Kookengän testisaitilla. Mutta ei näillä muilla omilla demosivuilla (index, index2).

nomasi commented 7 years ago

image

IE11-bugi FitIndicatorin sijainnissa. Kookengällä on (tietenkin) tämä käytössä sisäisesti. Olen tähän muuttanut calc:in arvoksi 0 % ja silti toi elementti kököttää keskellä asteikkoa. Sad!

nomasi commented 7 years ago

image

Mahdollinen (kauhea) IE11-indikaattori-fix. Tästä IE11 & Flex & calc() -ongelmista oli aika paljon raporttia internetistä, mutta en löytänyt hyviä korjauksia. Esimerkissä on purkkakorjaus mikäli sen saa IE11-spesifisesti käyttöön.

tjjalava commented 7 years ago

Suositus ei mene isoilla jaloilla vielä oikein; tässä esimerkissä pitäisi sopivuus (totalFit) olla 940 eli ihan asteikon vasemmassa laidassa ja samalla liian pientä ei saisi suositella.

Tää onkin ihan oikea bugi serveripään algoritmissa, näyttäisi palauttavan totalFitiksi 1000, jos se laskennassa menisi negatiiviseksi, tai jotain..

tjjalava commented 7 years ago

Mahdollinen (kauhea) IE11-indikaattori-fix. Tästä IE11 & Flex & calc() -ongelmista oli aika paljon raporttia internetistä, mutta en löytänyt hyviä korjauksia. Esimerkissä on purkkakorjaus mikäli sen saa IE11-spesifisesti käyttöön.

toimiiko toi margin-korjaus oikein muilla selaimilla? Voidaanhan me ottaa se "viralliseksi" toteutukseksi, jos siinä ei ole muita ongelmia

nomasi commented 7 years ago

Toi margin-korjaus ei toimi muilla. Tää aiheutuu siitä syystä että IE11 jostain syystä asettaa niiden molempien svg-indikaattoreiden aloituspaikaksi sen asteikon keskikohdan, kun kaikissa muissa selaimissa lähtökohta on vasen reuna. Siksi ne indikaattorit menevät liikaa oikealle IE11:ssä ja toi margin-left pakottaa ne takaisin. Mä yritän tänään etsiä kikkaa jolla IE11 saataisiin asettamaan se lähtökohta myös vasempaan reunaan, niin ei tarvisi mitään ylimääräisiä sääntöjä.

nomasi commented 7 years ago

https://googlechrome.github.io/samples/css-flexbox-abspos/index.html

Tässä lienee syy tohon. Kaikki uudet selaimet keskittää ton vihreän sisällön, mut IE11:

image