Сьогодні я готова відповісти на це питання і представити до уваги широкої громадськості новий дизайн сайту Gosso.ru.
Оптимізація і швидкодія
Фічі і їх реалізація
Потрібно відзначити, що робився сайт на каркасі тим InSales. дуже з моєї точки зору зручному і функціональному, на ньому ж зроблені їх безкоштовні теми «Фортуна», «Карбон» і деякі інші.
У каркасі за замовчуванням є робота з обраним, але зберігається воно в cookie (взагалі технологія минулого століття, давно пора відходити від їх використання з приводу і без, давно ж уже є localStorage), але клієнт хотів щоб обране зберігалося в особистому кабінеті покупця, для чого мені довелося створити додаткове поле покупця, заховати його з інтерфейсу (звичайними стилями і jquery hide) і відправляти ajax-запити на його оновлення.
Все виявилося не так просто як на словах! Insales для кожного доп. поля покупця ще й формує свій id значення, унікальний для кожного покупця.
Відповідно, при першому записі доп. поля потрібно якось отримати цей id значення і зберегти його (наприклад, в той же localStorage). Приклад мого коду (для вищезгаданого каркаса тим InSales):
Число 3681475 в коді, само собою, потрібно замінити на id поля в реальному проекті.
Все, тепер метод saveFavoritesToField можна використовувати для збереження обраних товарів в доп. поле покупця. Done!
Вибір готового дизайну
Завантаження свого дизайну
Далі перетягування зображення в контейнері здійснюється за допомогою jquery ui draggable. масштабування зображення колесом миші - самопісний (не буду його тут наводити, тому що даний шматок коду ще потребує оптимізації). Отримані розміри і зміщення зображення записуються в доп. поле замовлення у вигляді тексту.
Таких зображень можна завантажити до 3х штук, під кожне з них існує свій доп. поле замовлення, номер доп. Ця інформація зберігається в localStorage і змінюється при додаванні чергового товару зі своїм дизайном в кошик.
![Новий дизайн сайту і як я його робила (сайту) Новий дизайн сайту і як я його робила](https://images-on-off.com/images/144/noviydizaynsaytaikakyaegodelala-717acbe1.png)
В цілому взаємодія з дизайнами в кошику можна зробити темою окремої статті.
Показ умов доставки для регіону РФ
Як відомо, у інсейлс є свій власний геотаргетинг. З його допомогою можна визначити регіон покупця, і зробити щось якщо це якийсь певний регіон.
Все в той же localStorage я записую автоматично певний регіон і даю покупцеві можливість його змінити.
Благо, gosso - клієнт працьовитий, він погодився сам створювати свій блок для умов самовивозу і доставки під кожен регіон, а я виводжу контент всіх таких блоків на окремій сторінці і роблю до неї ajax-запит для отримання цього контенту. Ось і весь секрет :)
висновок
Це опис мінімальної частини всіх фіч, які використовуються на сайті, і їх реалізації. У клієнта ще маса ідей для нових фіч, та й зі старими ще є куди прагнути і що оптимізувати.
Із задоволенням відповім на питання клієнтів про ту чи іншої функції і можливості її реалізації на їх сайтах, а також на запитання колег про ту чи іншу не описана або недостатньо докладної описаної тут функції.