david cabrera - lessons learned magento ee build

9
Lessons Learned Garden of Life Magento Build @FullStackDave

Upload: david-cabrera

Post on 11-Feb-2017

88 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDave

Page 2: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDaveLessons LearnedAbout me

I’m David Cabrera, a Jupiter, Florida-based creative, full-stack dev with over 16 years of experience as a web and mobile developer. I’ve led information systems projects on a global scale. I’m a fan of working agile, using rapid iterative prototyping to continually improve on MVPs.

Whether designing for the web, iOS, Android, or other native platforms, I’m driven by a passion for User Experience.

Web & Mobile developer from Jupiter, FL

02

Page 3: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDaveLessons LearnedAbout the Client

By combining the best of nature and science, the Garden of Life brand offers a path to healthy living with premium products that are supported by education and innovation.

Great people, great products, great mission

03

Page 4: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDaveLesson #1Don’t sacrifice user experience for business requirements

There were some major limitations to what addresses are kosher with our fulfillment system. As a result, a pass/fail

approach was taken for address validation. If a customer typo’s their street name, we reply: “Address not valid”.

When a customer wants to place an order, get out of their way.

CSR team swamped with call-ins & our abandonment rate is hot garbage.

IMPACT

Use type-ahead to reduce customer input errors. Allow customers to override, and place their orders on hold for manual review.

RESOLUTION

Page 5: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDave

05

Our auto-ship vendor said they were compatible with tokenization.

Turns out they were only compatible with Authorize.NET CIM. Our

payment gateway said they were compatible with PayPal. Turns

out they were “working on” that customization.

If you don’t know what questions to ask, find an SME that does.

Pricey contract terminations and/or lots of dev hours to work around issues.

IMPACT

In our case, code shims to make them work together. Ugh.

RESOLUTION

Lesson #2Confirm vendor compatibility before signing contracts

Page 6: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDave

06

Lesson #3Decouple integrations wherever possible

Any time an address was added or edited for a customer in Magento, that change was being echoed back to our Oracle

stack, real-time. This is totally unnecessary, because fulfillment should only care about what address they are shipping too.

Systems can be interoperable without being synchronized.

Every new feature requires extensive regression testing and increased likelihood of refactoring.

IMPACT

Pull this complex logic out into a middleware layer. Use SOAP API to communicate with Magento, and SOA to communicate with Oracle.

RESOLUTION

Page 7: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDave

07

Magento does things differently than Oracle EBS. We wanted to

outright cancel backordered products. In order to do so, we added

a ton of custom logic to allow editing of existing orders, rather than

just cancelling them and creating a new one, or capturing the

whole order and issuing a refund for the non-shipped product.

Simplify business processes & implement them in the least intrusive way possible.

These customizations aren’t portable and they’re keeping us from modifying other aspects of our platform.

IMPACT

Don’t deliver line item cancellation messages until all possible line items are fulfilled.

RESOLUTION

Lesson #4Don’t blindly automate complicated business processes

Page 8: David Cabrera - Lessons Learned Magento EE Build

Lessons Learned Garden of Life Magento Build

@FullStackDaveLesson #5Square pegs shouldn’t be made to fit round holes

Magento was a clear choice for ecomm, but our vendor was struggling to accomplish some of our content requirements. In

all, we had 12 unique entities and as many taxonomies to be accounted for (recipes, ambassadors, etc.) They opted for a tandem WordPress install using Fishpig to integrate.

Use the best tool for the job.

Increased security scope, poor utilization of system resources, Fishpig taking over feed templates.

IMPACT

Move the WordPress site to another server & use reverse proxy to preserve URL structure. Replace product & content discovery features with A JAX on the client-side.

RESOLUTION

Page 9: David Cabrera - Lessons Learned Magento EE Build

@FullStackDave FullStackDave.com