אתר למכירה קמעוניאית

במקור האתר מכר מוצרים לתינוקות אך הוא ניתן להסבה לכל סוג מוצרים

קטגוריה: אתרים למכירה

תיאור
תיאור פלטפורמה
החברה הקימה ותפעלה פלטפורמה טכנולוגית מתקדמת ברמת enterprise לביצוע פעילות של מסחר אלקטרוני (eCommerce) בישראל.
הפלטפורמה כללה אתר אינטרנט (melo.co.il) לביצוע הקניות על ידי הלקוחות וכן מערכת לתפעול האתר שזמינה אך ורק למפעילי האתר. גם האתר וגם מערכת התפעול תומכים בצורה מלאה בעברית ונבנו במיוחד לשוק הישראלי.
להלן עיקרי היכולות הפונקציונליות של הפלטפורמה –
אתר אינטרנט מתקדם למסחר אלקטרוני (Front End) –
· חלוקה לקטגוריות ולקטגוריות משנה
· יכולות סינון וחיפוש מתקדמות
· התאמה למובייל
· עיצוב רספונסיבי לגדלי מסך שונים
· דפי מוצר המכילים מידע עשיר לגבי כל מוצר –
o תמונות באיכות גבוהה עם יכולות זום (תמונה ראשית ועד 8 תמונות נוספות לכל מוצר)
o שם המוצר
o מחיר מחירון ומחיר באתר
o קביעת כמות להוספה לעגלת הקניות
o סטטוס מלאי (מלאי מוגבל / אזל במלאי)
o מבצעים ספציפיים למוצר וכלליים לאתר
o מידע מפורט על המוצר, לרבות תיאור, רכיבים ומפרט עם יכולת להוסיף קבצים לכל מוצר (הוראות הפעלה/הרכבה, רשימת רכיבים וכו')
o "לרוב נקנה עם" – 2 מוצרים משיקים למוצר הנוכחי שניתן להוסיף בקלות לעגלה
o חוות דעת של לקוחות כולל תיאור ודירוג פר לקוח ודירוג ממוצע של כלל הלקוחות
o Cross sell – מוצרים רלוונטיים נוספים שמופיעים בעמוד על פי הפופולריות שלהם
· עגלת קניות –
o יכולת עריכת כמויות
o הכנסת קופונים וחישוב אוטומטי של הנחות
o חישוב אוטומטי של מבצעים כלליים על פי סוגי המוצרים, כמויות
· קופה –
o אופציה למספר אפשריות שילוח עם עלויות שונות שיופיעו על פי סוג הלקוח או מיקום המשלוח
o הכנסה נוחה של הכתובת למשלוח ושל כתובת נפרדת לחשבונית במידה וצריך
o שמירה של כתובות קודמות ובחירת כתובת מסויימת ככתובת עיקרית שתופיע אוטומטית ברכישות הבאות
o הכנסת כרטיסי אשראי בצורה מאובטחת בתוך תהליך הקופה ללא צורך לצאת לעמוד נפרד של ספק הסליקה
o עמוד סיכום עם כל פרטי הרכישה לפני ביצוע הרכישה
o יכולת של מפעיל האתר להחליט האם החיוב מתבצע מיידית במועד הרכישה או רק במועד מאוחר יותר
· עמודי מידע נוספים (תנאי שימוש, תנאי שילוח, שאלות נוספות, אודות האתר וכו') עם יכולות עריכה מלאות
· מבצעי חבר מביא חבר המנפקים בצורה אוטומטית הזמנות לחברים של המזמין ובמידה והחברים קנו (בהתאם לחוקים שקובע מפעיל האתר) אז המזמין מקבל אוטומטית את הזיכוי והוא מופיע לו בעגלת הקניות בקנייה הבאה שלו
· אימייל אישור הנשלח אוטומטית עם פרטי הקנייה ועם מועד השילוח המשוער תוך שניות מביצוע ההזמנה
· יכולת לקבוע שליחת אימיילים אוטומטיים נוספים על פי הגדרות מפעיל האתר
· ביצועי האתר –
o יכולת תמיכה בעשרות אלפי מוצרים ובעשרות אלפי לקוחות בו זמנית ללא פגיעה בביצועי האתר
o גלישה מהירה בין עמודים ללא עיכוב בעדכון תמונות או רכיבים שונים הנותן חוויית קנייה מהנה ומרשימה
· אבטחת מידע –
o אבטחת מידע ברמה הגבוהה ביותר
o כל האתר, מעמוד הבית ועד לקופה מאובטח ב-SSL 256 ביט
o ניהול סיסמאות מתקדם עם יכולת שינוי/עדכון סיסמה אוטומטי על ידי המשתמש מבלי שהאתר שומר בפועל את סיסמאות המשתמשים
o שמירת כל הנתונים במאגרי מידע מאובטחים בענן העומדים בסטנדרטים המחמירים ביותר
מערכת התפעול של האתר (Back End) –
· יכולות עדכון ועריכה מלאות של כל המידע המופיע באתר –
o שמות מוצרים וכל פרטיהם
o קטגוריות וקטגוריות משנה
o שיוך מוצרים לקטגוריות
o הוספת ועריכת תמונות
· ניהול מבצעים מתקדם –
o רשימה ארוכה של סוגי מבצעים קיימים (1+1, הנחת כמות, הנחת קטגוריה, הנחה בשקלים, הנחה אחוזית ועוד הרבה אחרים)
o יכולת לייצר מבצעים נוספים על פי רצון מפעיל האתר
o שליטה מלאה בתזמון המבצע כולל תאריך תחילה/סיום, הגבלת כמות וכו'
o קביעת סוגי לקוחות (או אפילו שמות ספציפיים של לקוחות) שהמבצע יחול עליהם
o יכולת ייצור קופונים להפעלת מבצע ספציפי או קביעה שהמבצע יוחל אוטומטית ויחושב בעגלת הקניות אם התקיימו התנאים שהוגדרו
· ניהול ממשק חוות הדעת, לרבות מעבר מוקדם לפני אישורם והעלאתם לאתר
· ניהול מלאי מתקדם
o יכולת ניהול מספר מחסנים/מיקומים למלאי
o עדכון אוטומטי של כמויות במלאי מיד עם ביצוע הזמנה ועדכון הסטטוס של המלאי שמופיע באתר עצמו
o יכולת הורדה מיידית של מוצר מהאתר או לחילופין קביעה מראש לתזמון ההופעה של המוצר באתר למוצרים זמניים
· ניהול משתמשים –
o הוספה, הורדה חסימה וכו' של המשתמשים הרשומים באתר
o שמירה של היסטוריית הקניות של כל אחד מהמשתמשים
· מעקב אחר הזמנות וניהול משלוחים –
o יכולת התממשקות עם חברות שילוח ליצירת משלוח לאחר ביצוע הזמנה על ידי הלקוח בהתאם לפרטים שהוקלדו בהזמנה
o ניהול סטטוס ביצוע ההזמנה והמשלוח בכל שלביו (הוסף לעגלה, בקופה, נקנה, אריזה, מוכן למשלוח, נמסר לחברת השילוח, יצא ללקוח, נמסר ללקוח) ויכולת קביעת אימיילים אוטומטים שייצאו ללקוח בשלבים שהוגדרו על ידי מפעיל האתר
· תשלומים –
o קביעת מועד חיוב כרטיס האשראי
o מעקב אחר סטטוס התשלום תוך התממשקות לספק הסליקה וקבלת התראות מיידיות על בעיות בחיוב
o ביצוע תשלום להזמנה ספציפית על ידי לקוח ספציפי ישירות דרך מערכת התפעול

· אבטחת מידע –
o מערכת התפעול מוגנת בסיסמא נפרדת
o יכולת ניהול משתמשים הרשאים לגשת למערכת התפעול וניהול הרשאות לכל משתמש / סוג משתמשים
o יכולת לגשת למערכת התפעול מכל מחשב (או מכשיר נייד) המחובר לאינטרנט בצורה מאובטחת
o שמירה מאובטחת של כל נתוני הלקוחות בהתאם לדרישות האבטחה המחמירות ביותר

למידע מפורט אודות הטכנולוגיות שעליהן מבוססת הפלטפורמה ראו פירוט להלן:

TECHNICAL OVERVIEW
TECH STACK
RUBY ON RAILS AND SPREE
The Melo storefront and back-office are developed using the Ruby on Rails application framework and the Spree e-
Commerce platform. Melo is extending Spree in various ways including a completely custom user interface, a
customized checkout process and additional features. Some of the extensions are done using Spree’s extension
mechanisms and some are additional models, controllers and views that either integrate with the Spree ones or
stand on their own. This document will outline the approach taken to extend and customize Spree to meet Melo’s
requirements and the deployment environment for the complete solution.
POSTGRESQL
Spree requires a SQL database to store products, orders, users etc. Melo’s database of choice is PostgreSQL
however none of the work done to-date is PostgreSQL specific and migration to a different SQL database should be
straight-forward.
ANGULARJS
Most of the client-side logic is developed using AngularJS. The data that individual pages require is exposed in
JSON format to the client and rendered client-side. Some of the rendering is done server-slide primarily to leverage
existing Spree rendering functionality and minimize development cost. In some places components that repeat
across pages or multiple times in a single page are factored out into an AngularJS Directive and reused throughout.
JQUERY
Spree relies on jQuery for some of the out-of-box functionality. Use of jQuery is limited to supporting existing
Spree functionality, new client-side functionality is developed using AngularJS.
BOOTSTRAP AND SCSS
All the styling in the system is done via SCSS. A single global SCSS file includes colors as SCSS variables and some
global mixins. The rest of the SCSS styles are divided into files, typically one per page or one per Spree view
override. All the customer facing pages have been overridden and laid out using the Bootstrap responsive grid. By
design the site is not fully responsive but rather adapts to desktops and tablets where the mobile option for now is
a low scale tablet layout. A mobile specific store-front will be developed at a later stage.
TOOLS
Development process is governed through a Kanban board, source code is controlled via git, sever-side tests are
written in rspec and client-side tests are written in Jasmine and Protractor and run through Karma and PhantomJS.
DEPLOYMENT ENVIRONMENT
HEROKU
Heroku is our deployment environment of choice. The app server is deployed with at least 2 large Heroku Dynos
(1G memory and 2 shared CPUs) and may be extended with further dynos as the traffic to the site increases. On
top of these, one dyno is dedicated to background processes such as sending emails and calculating related
products in the related products feature.
PASSENGER
The app server of choice is Passenger which is a “Ruby-mod” sort of speak for the Nginx web server. Passenger is
well suited for short requests which is the nature of this app and allows for better utilization of the Heroku Dynos.
We currently run 2 passenger instances on each Heroku Dyno allowing 4 concurrent short requests on top of
background processing which has a dedicated small Dyno.
CLOUDFLARE DNS
CloudFlare is used for its robust DNS layer and security features.
ASSET COMPILATION
All JS and SCSS files are compiled and minified into a single JS file and a single CSS file with gzip enabled.
Furthermore the app is configured with Rails Turbolinks allowing for fast navigation by intercepting full page loads
and swapping them for AJAX HTML body fragment loads. Minification of JS is achieved via Uglifier and minification
of SCSS is achieved via YUI compressor.
HEROKU POSTGRES + BACKUP
The database is a fully managed instance of PostgreSQL provided by Heroku. Heroku PostgreSQL is a robust
PostgreSQL implementation with write-ahead logs, fork and follow support and enforced SSL connections.
Currently a single database serves the store but additional followers may be added as scale demands. Backups are
generated on a daily, weekly and monthly basis and retained for one month.
MEMCACHED
All database requests are cached via Memcached cloud to relieve read load from the database and accelerate
store navigation.
NEW RELIC
New Relic is used to monitor the store including all database transactions, app transactions and JavaScript activity.
Alarms and triggers reach our team via SMS and emails allowing our team to react to perceived outages and
service interferences.
PAPER TRAIL
PaperTrail is used to store server logs for 1 year and provide advanced searching and event triggering in case of
failures.
SENDGRID
SendGrid is used for all email delivery reducing probability of landing in spam filters and increasing resilience of
delivery.
SSL
All traffic to the website including the public sections is done via HTTPS with strong encryption (sha256).
AMAZON S3
Amazon S3 is used for storing and serving product images, an Israeli-based CDN service on top of S3 storage will be
deployed as the site traffic increases.
DEVELOPMENT TOOLS
GIT
All the source code is hosted on a private BitBucket repository with dedicated feature branches and tags per
version following semantic versioning principles.
RAILS ASSET PIPELINE
The Rails asset pipeline is used to compile assets on the fly allowing for rapid debug cycles.
BDD
Our development process is accompanied with Behavior Driven Tests both on the server and the client sides. Most
server functionality is covered using RSpec tests migrated from the Spree project to our store, client testing is done
via Jasmine and E2E testing is done via Selenium and Protractor.
INTEGRATION SERVER
We maintain 3 environments on Heroku dubbed: Development, Staging and Production. The Development
environment is used for development purposes such as testing out new features, staging is where we upload
versions that are potentially shippable and production is the live website. We use our own custom built integration
server which resembles Jenkins but is more tightly coupled with our Git branching methodology and our test
framework.
DEVELOPMENT APPROACH
SPREE VIEW OVERRIDES
When we override Spree HTML template (aka views) we use the deface data-hooks created for this end by Spree
and we try to limit the scope of the override to achieve as much forward-compatibility as possible with future
Spree versions. Furthermore we mark the original hash-code of the views we override to get warnings in case an
upgrade of a Spree version potentially breaks our override.
Since we rely more on client-side rendering than the default Spree store we sometimes need to send raw JSON
data to the client with the HTML code. When doing that we take note to place all server generated data under the
document.Melo namespace to avoid contamination of the global JS namespace which may cause hard to detect
bugs.
Spree view overrides reside under app/overrides with each file path following the original spree path and each file
name describes the semantics of the specific override.
SPREE CONTROLLER OVERRIDES
We try to let Spree drive the logic of the store as much as possible, in cases where the business logic of Melo
diverges significantly such as the checkout process we create our own custom controller instead of overriding bits
and pieces of existing ones to allow maximum control over the new business logic and testability of our custom
controller.
Spree controller overrides exist under app/controllers alongside our custom controllers and under the subdirectory
spree.
SPREE MODEL OVERRIDES
We try to only extend existing Spree models to minimize impact on the built-in and tested functionality. Extensions
are done with Ruby class decorations (class_eval).
Spree model extensions exist under app/models alongside our custom models and under the subdirectory spree.
SPREE DATABASE EXTENSION
The database schema in its entirety is located at db/schema.rb. The Schema contains both stock Spree models and
the extensions that we’ve made to accommodate Melo requirements such as related products, address book
support etc. Database naming conventions follow Rails guidelines marking foreign keys with “_id” suffix and adding
“created_at” and “updated_at” timestamps to each row. Indexes are generally added to every primary and foreign
key relying on Postgres’ query optimizer to utilize only the relevant ones. Naturally index optimization should
follow after some usage patterns develop.
SCSS APPROACH
When developing CSS we leverage SCSS nested classes extensions to allow name spacing in CSS to avoid naming
collisions especially when compiling all CSS files to a single file.
CUSTOM VIEWS / MODELS / CONTROLLERS
All custom views, models and controller work are done per Rails best practices. Custom views, models and
controllers can be thought of as a parallel Rails app residing alongside our modified Spree app.
DECEMBER 14 MILESTONE
CODE SCOPE
Below is a table outlining the current scope of code in Melo (excluding tests and 3rd party libs):
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
CSS 41 769 43 8893
Ruby 160
Javascript 43
HTML 45 296 70 1639
YAML 8 7 40 1371
XML 1 1 1 15
Bourne Shell 1 4 0 9
-------------------------------------------------------------------------------
SUM: 299 22
-------------------------------------------------------------------------------
As evident from the table above, work spans all the areas described above.
CODE ORGANIZATION

The code is organized per Rails conventions and the app overall looks like a canonical Rails app.
סיבת מכירה

פירוק החברה ומעבר לתחום אחר

שכחת שם משתמש או סיסמה?

מלא את כתובת המייל שלך ותוכל לקבל סיסמה חדשה

×
יצירת קשר עם משקיעים, יזמים ומומחים פתוחה למנויים בלבד

שליחת הודעות פרטיות בלתי מוגבלות לחברים באינדקסים ניתנת בעלות סמלית של ₪365 לשנה (תשלום חד פעמי).

עליך להיות מחובר בכדי לרכוש את המנוי

התחבר / הרשם


×
פעולה זו פתוחה למנויי מועדון פלופ

חלק מהתכנים ומהפונקציונליות באתר זמינים לחברי מועדון בלבד.

מועדון פלופ פותח דלתות להזדמנויות להשקעות ושיתופי פעולה שלא אפשריות לחברים ולגולשים האחרים וניתן בעלות סימלית של ₪99 לשבוע או ₪365 לשנה (תשלום חד פעמי).


פרטים נוספים והרשמה

×

או

יצירת חשבון חדש

אני מסכים/מסכימה לתנאי השימוש באתר

×
ברוכים הבאים לאתר פלופ

אתר פלופ הוא זירה המקשרת בין קונים ומוכרים בעולם האינטרנט והעסקים.

כאן תוכלו למצוא בין השאר:
אתרי אינטרנט למכירה עסקים למכירה השקעות / שותפויות

התחבר בכדי להנות ממירב התכנים באתר:

×
Live Chat Software