Новий дизайн сайту і як я його робила

Сьогодні я готова відповісти на це питання і представити до уваги широкої громадськості новий дизайн сайту Gosso.ru.

Оптимізація і швидкодія

Фічі і їх реалізація

Потрібно відзначити, що робився сайт на каркасі тим InSales. дуже з моєї точки зору зручному і функціональному, на ньому ж зроблені їх безкоштовні теми «Фортуна», «Карбон» і деякі інші.

У каркасі за замовчуванням є робота з обраним, але зберігається воно в cookie (взагалі технологія минулого століття, давно пора відходити від їх використання з приводу і без, давно ж уже є localStorage), але клієнт хотів щоб обране зберігалося в особистому кабінеті покупця, для чого мені довелося створити додаткове поле покупця, заховати його з інтерфейсу (звичайними стилями і jquery hide) і відправляти ajax-запити на його оновлення.

Все виявилося не так просто як на словах! Insales для кожного доп. поля покупця ще й формує свій id значення, унікальний для кожного покупця.

Відповідно, при першому записі доп. поля потрібно якось отримати цей id значення і зберегти його (наприклад, в той же localStorage). Приклад мого коду (для вищезгаданого каркаса тим InSales):

Число 3681475 в коді, само собою, потрібно замінити на id поля в реальному проекті.

Все, тепер метод saveFavoritesToField можна використовувати для збереження обраних товарів в доп. поле покупця. Done!

Вибір готового дизайну
Завантаження свого дизайну

Далі перетягування зображення в контейнері здійснюється за допомогою jquery ui draggable. масштабування зображення колесом миші - самопісний (не буду його тут наводити, тому що даний шматок коду ще потребує оптимізації). Отримані розміри і зміщення зображення записуються в доп. поле замовлення у вигляді тексту.

Таких зображень можна завантажити до 3х штук, під кожне з них існує свій доп. поле замовлення, номер доп. Ця інформація зберігається в localStorage і змінюється при додаванні чергового товару зі своїм дизайном в кошик.

Новий дизайн сайту і як я його робила
Окрема тема - очищення поля з типом файл при видаленні товару з дизайном (для простоти було прийнято що кількість товарів в с дизайнами в кошику міняти буде не можна, але віддалятися товар-дизайн повинен при видаленні товару, до якого він належить). Методом проб і помилок (а також розмов з одним з розробників платформи) був знайдений ajax-запит для очищення поля з файлом. Ось код такого запиту:


В цілому взаємодія з дизайнами в кошику можна зробити темою окремої статті.

Показ умов доставки для регіону РФ

Як відомо, у інсейлс є свій власний геотаргетинг. З його допомогою можна визначити регіон покупця, і зробити щось якщо це якийсь певний регіон.

Все в той же localStorage я записую автоматично певний регіон і даю покупцеві можливість його змінити.

Благо, gosso - клієнт працьовитий, він погодився сам створювати свій блок для умов самовивозу і доставки під кожен регіон, а я виводжу контент всіх таких блоків на окремій сторінці і роблю до неї ajax-запит для отримання цього контенту. Ось і весь секрет :)

висновок

Це опис мінімальної частини всіх фіч, які використовуються на сайті, і їх реалізації. У клієнта ще маса ідей для нових фіч, та й зі старими ще є куди прагнути і що оптимізувати.

Із задоволенням відповім на питання клієнтів про ту чи іншої функції і можливості її реалізації на їх сайтах, а також на запитання колег про ту чи іншу не описана або недостатньо докладної описаної тут функції.

Схожі статті