際際滷

際際滷Share a Scribd company logo
Delivery Method Integration
Conrad Koppitz
conrad@neoworks.com
Vendors share
≒ Similar goods
≒ Similar pricing
Differentiators
≒ Customer experience
≒ Delivery
Delivery Matters
≒ Links stores and couriers
≒ Handles the hard stuff
≒ Courier selection
≒ Price calculation
≒ Lead times
≒ Exposes a simple API
Shutl
≒ Shutl Now
≒ Rapid delivery, as soon as possible
≒ Can be as fast as 15 minutes
≒ Shutl When
≒ Delivery within a specified hour
Shutl services
≒ Built by neoworks
≒ Data model and business services
≒ Location service
≒ Delivery service
≒ CS cockpit widget
Shutl Hybris Extension
locs = ls.getNearbyShutlLocations(
cart.getDeliverAddress(), 20.0);
Quote = ds.getDeliveryQuotation(cart,
locs.get(0),
cart.getDeliveryAddress(), null);
cart.setDeliveryQuotation(quote);
conf = ds.bookDelivery(cart);
For a demo, go to thetoyshop.com
Shutl Now Example
≒ Cancel quote
≒ Failure in process after quote was booked
≒ Preview quotes
≒ Rapid, approximate
Feature wish list
≒ Separate retrieval of data and processing
≒ Retrieved data leaves audit trail
≒ Good for debugging
≒ No need to refetch data if the error was local
≒ Remember to clean up
≒ Some data expires
Message Caching
≒ Add file end points for inbound data interfaces
≒ Allows for easy production fixes
≒ Remember to track the source of the data
≒ Spring integration is good for this
File Endpoints
≒ Atomicity, Consistency, Isolation, Durability
≒ Stock example
≒ Stock numbers guaranteed by ACID properties
≒ What happens when some stock is destroyed?
≒ Downside: bottleneck due to locking
Database Transactions
≒ Stock example
≒ Many people buy the same goods
≒ Web applications are very concurrent
≒ Single SQL statement
≒ UPDATE StockLevel SET qty = 98 WHERE
qty = 100 AND sku = 1234
≒ Retry if no rows updated
No transactions?
conrad@neoworks.com
Thank you

More Related Content

Neoworks

  • 1. Delivery Method Integration Conrad Koppitz conrad@neoworks.com
  • 2. Vendors share ≒ Similar goods ≒ Similar pricing Differentiators ≒ Customer experience ≒ Delivery Delivery Matters
  • 3. ≒ Links stores and couriers ≒ Handles the hard stuff ≒ Courier selection ≒ Price calculation ≒ Lead times ≒ Exposes a simple API Shutl
  • 4. ≒ Shutl Now ≒ Rapid delivery, as soon as possible ≒ Can be as fast as 15 minutes ≒ Shutl When ≒ Delivery within a specified hour Shutl services
  • 5. ≒ Built by neoworks ≒ Data model and business services ≒ Location service ≒ Delivery service ≒ CS cockpit widget Shutl Hybris Extension
  • 6. locs = ls.getNearbyShutlLocations( cart.getDeliverAddress(), 20.0); Quote = ds.getDeliveryQuotation(cart, locs.get(0), cart.getDeliveryAddress(), null); cart.setDeliveryQuotation(quote); conf = ds.bookDelivery(cart); For a demo, go to thetoyshop.com Shutl Now Example
  • 7. ≒ Cancel quote ≒ Failure in process after quote was booked ≒ Preview quotes ≒ Rapid, approximate Feature wish list
  • 8. ≒ Separate retrieval of data and processing ≒ Retrieved data leaves audit trail ≒ Good for debugging ≒ No need to refetch data if the error was local ≒ Remember to clean up ≒ Some data expires Message Caching
  • 9. ≒ Add file end points for inbound data interfaces ≒ Allows for easy production fixes ≒ Remember to track the source of the data ≒ Spring integration is good for this File Endpoints
  • 10. ≒ Atomicity, Consistency, Isolation, Durability ≒ Stock example ≒ Stock numbers guaranteed by ACID properties ≒ What happens when some stock is destroyed? ≒ Downside: bottleneck due to locking Database Transactions
  • 11. ≒ Stock example ≒ Many people buy the same goods ≒ Web applications are very concurrent ≒ Single SQL statement ≒ UPDATE StockLevel SET qty = 98 WHERE qty = 100 AND sku = 1234 ≒ Retry if no rows updated No transactions?