Make me a sandwich, Tienda


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Make me a sandwich, Tienda

  1. 1. Make me a sandwich, Tienda!Lukas Polak, Dioscouri Design c
  2. 2. Who am I?"Tell me what you eat, and I will tell you what you are.“ Brillat-Savarin• Leading developer of Tienda e-commerce in Dioscouri Design• Participant of J!SOP 2010• Student at CTU Faculty of Information Technology in Prague• Passionate about Joomla for 5 years
  3. 3. What am I going to talk about?“Ladies & gentlemen, please fasten your seatbelts. We are about to start, ” captain said• Brief description of Tienda & plugins• 3 simple rules to follow when working with plugins• “layout” modifications• Adding new features• Inserting new steps into business logic
  4. 4. Source codes• All extensions shown during this presentation will be published for free afterwards •• Installation package of Joomla! 1.5.26 + Tienda which is used during this session will be provided in JPA format generated by extension Akeeba Backup v. 3.4.3. ( • admin/pass• All demo extensions are simplified• Demo #2 uses jQuery library• Rest demos require MooTools Upgrade plugin
  5. 5. Plugin• Small & witty piece of code• Change or extend behavior • Events• No support for layout overrides • Can by added
  6. 6. Observer vs. mediator pattern• Observer • Notify about change in state• Mediator • Extend their business logic
  7. 7. Tienda• Basic package • 18 modules, 29 plugins, 6 payment plugins, 4 shipping plugins• Joomla! 2.5 ready Languages• One-page Checkout (OPC) in the basic package• Number of events 400+ (last JAB) vs. 470+ (today)• For more information visit ecommerce
  8. 8. Lego v2.0• Ask “what would the customer want to do with our extension”• Do not over think usage of events• Think outside of the box
  9. 9. Ask “what would the customer want to dowith our extension”• Do you really need this to be so flexible? • Consider opportunity cost• Being too flexible is NOT a good thing • Always bigger room for bugs
  10. 10. Do not over think usage of events- Cannot we already do this using another approach? - Do not bend rules too much – causes problems in future- Will anybody use it? - Better to wait until somebody asks for it
  11. 11. Think outside of the box• List through names of all events • Did not find one that rings a bell or seemed helpful• Plugins are not an ultimate tool for everything • Combination of plugins & layout overrides
  12. 12. Rule #1 - Demo #1 – “Shoes size chart”“Your customer is your boss”• Insert a shoes size chart into product view of every shoes in the shop• Pick the right place• Improvements • Filter Product Layouts • Filter Categories • Custom Width
  13. 13. Rule #1 - Demo #1 – “Shoes size chart”“Your customer is your boss”
  14. 14. Rule #1 - Demo #2 – “Cool gallery”“Your customer is your boss”• Images in product gallery varies based on chosen product attributes • Use AJAX• onPrepareGalleryImages( &$Images ) • Chaining effect• Use jQuery event handler .on() • $jq( .product_buy ).on( change, #attribute_+ plgDemo2.attr_id , function() {});
  15. 15. Rule #1 - Demo #2 – “Cool gallery”“Your customer is your boss”
  16. 16. Rule #2 - Demo #3 – “Custom” field• List of flags • Let user to pick one• Use hidden input field • Added to Tienda EAV for this purpose• onPrepareProducts & onPrepareProductsList • Make sure that the product will not save data!• Improvements • Different set of flags • Multiple selection • Make it more customizable • Tie it up with gallery plugin (demo #2)
  17. 17. Rule #2 - Demo #3 – “Custom” field
  18. 18. Rule #3 – Demo #4 – Every n-th order for free“One rule to rule them all”• Gives customer discount during checkout • Based on specified criteria• Great marketing move• Code once, works everywhere • OPC, std checkout, POS• Improvements • Only x% discount • On n-th order in row from the same user • Shipping discount
  19. 19. Rule #3 – Demo #5 – Conduct a survey“One rule to rule them all”• Ask user a question before making payment • Voluntary survey• Pick a correct place to put the survey • onBefore(After)DisplaySelectShipping ($order) • onValidateSelectPayment($values) • onAfterStoreOrders($order)• Checkout process may depend on its results • Check for age of the customer• Improvements • Offer a discount – quiz • Multiple-choice questions • Time deadline
  20. 20. Rule #3 – Demo #5 – Conduct a survey“One rule to rule them all”
  21. 21. Big finale – Demo #6 – One click to buy“The sooner, the better. It was too late yesterday!”• Add to cart and complete checkout process in one click • Uses data from logged user (default billing & shipping addresses)• Amazon uses this feature • People tend to spend more money thanks to it• Making use of checkout controller method • Ensures better• Improvements • Enables admin to control what payment plugins are used • Letting user to choose shipping method
  22. 22. Big finale – Demo #6 – One click to buy“The sooner, the better. It was too late yesterday!”
  23. 23. THANK YOU FOR YOUR ATTENTION! Questions? Twitter: @_elf