fitting in a custom stack
May 10, 2015
fitting
in a custom stack
The customerThe customer
● Largest on-line retailer in Italy● Several brands
The initial situationThe initial situation
Catalog empire
March of the Cart
Marketing kingdom
...and a lot of small Imperial cities
The problemThe problem
● Need to manage “marketing” content● To integrate already existing content● Stand alone
The problem (2)The problem (2)
● “Large theatre of operations”● Must maintain good relations with
“neighbouring states”● Parallel universes (multisite)
What do we need?What do we need?
Speed
Flexibility
Coherence
I better clarify...
SpeedSpeed
● No● Repetitive tasks● “useless” steps
● Yes● One click one kill
FlexibilityFlexibility
● Marketing is not accounting● Creatives● Exception is routine
● Knowledged users● Web is their work● Possesses skills (that we can leverage)
CoherenceCoherence
● Few base concepts● Stick to them!● Fast training
The solutionThe solution
● “Aggregated” content● “multicast” publication● Information Architecture CMS != IA Site
The solution (2)The solution (2)
● Primary content● Page is folder● Object “composition”● Templating (Genshi)
The solution (3)The solution (3)
● “primary” content● Explicit positioning of root element● Site-level multicast● Internal structure follows Plone IA
The solution (4)The solution (4)
● Several content types● “Standalone” or providing interfaces
to internal WS● Can be used within “primary” content
Lessons learnedLessons learned
● Plone's structure is optimal to manage content● Presenting content is an altogether different
story● In the presentation layer, multiple is good, while
managing, it's a <CENSORED>
Lessons learnedLessons learned
● Integration is simple if functional area are well defined and grouped
● Several ways:● Webservice● SQL● Etc etc
ChallengesChallenges
● Know the stack● Automated refresh● Componentize, componentize, componentize
And then?And then?
● You can always do better● Still too many useless steps● Fine grained security● UI polishing
CastCast
● Plone● Genshi● SQLAlchemy● PostgreSQL● SOLR