$30 off During Our Annual Pro Sale. View Details »

Apostolos Kritikos - Challenges in integrating ERP systems with WooCommerce E-shops

Apostolos Kritikos - Challenges in integrating ERP systems with WooCommerce E-shops

As the volume of small and medium enterprises (SMEs), mainly on the retail industry, continues to increase, the need to automate the logistics of these companies by integrating their back office (Enterprise Resource Planning Systems) with their e-shop becomes mandatory.

This past year at Social Mind we worked thoroughly in integrating two of the most widely used Greek ERPs with WooCommerce. This talk aims in sharing the challenges we faced and hopefully provide some good practices regarding software architecture for software houses.

WordPress Greek Community

December 09, 2017
Tweet

More Decks by WordPress Greek Community

Other Decks in Technology

Transcript

  1. www.socialmind.gr
    @ WordCamp Athens 2017
    1
    Apostolos Kritikos
    Co-founder & CTO
    Challenges in integrating ERP systems
    with WooCommerce E-shops
    www.socialmind.gr

    View Slide

  2. www.socialmind.gr
    @ WordCamp Athens 2017
    2
    Enterprise Resource
    Planning Systems (ERPs)
    APIs
    Why they rule and why
    we using them…
    WordPress &
    WooCommerce
    Good Practices in
    Software Development
    Agenda
    Why they need to be
    integrated with e-shops…
    APIs APIs APIs APIs …
    APIs everywhere!
    Core decisions about the
    nature of our projects!

    View Slide

  3. www.socialmind.gr
    @ WordCamp Athens 2017
    3
    Why WordPress?
    #community #plugins
    #OpenSource #restAPI
    #scalable
    #extensibility
    #documentation #themes
    #support
    #future_proof
    Why WooCommerce?

    View Slide

  4. www.socialmind.gr
    @ WordCamp Athens 2017
    4
    ERPs…
    …and why we need to integrate them with e-shops!
    Enterprise resource planning (ERP) is the integrated management of core
    business processes, often in real-time and mediated by software and
    technology. These business activities can include:
    • Product planning
    • Purchase
    • Production
    • Planning
    • Manufacturing or service delivery
    • Marketing and sales
    • Materials management
    • Inventory management
    • Retail
    • Shipping and payment
    • Finance
    (via Wikipedia)

    View Slide

  5. www.socialmind.gr
    @ WordCamp Athens 2017
    5
    Main reasons why retailers should want their ERP systems integrated
    with their WooCommerce store:
    Spare me the Wiki definition and tell me why!
    The product catalogue to the e-shop
    is automatically synchronized with
    the product catalogue of the ERP
    reducing the double data entry time
    for the retailer.
    One data entry to rule
    them all
    ERPs…
    …and why we need to integrate them with e-shops!

    View Slide

  6. www.socialmind.gr
    @ WordCamp Athens 2017
    6
    Main reasons why retailers using ERP systems should want them
    integrated with their e-shop solution:
    Spare me the Wiki definition and tell me why!
    Stock sync automation
    between e-shop & ERP
    The product catalogue to the e-shop
    is automatically synchronized with
    the product catalogue of the ERP
    reducing the double data entry time
    for the retailer.
    One data entry to rule
    them all
    ERPs…
    …and why we need to integrate them with e-shops!
    The fact that the e-shop and the
    ERP are in sync ensures reliability
    when it comes to product availability.

    View Slide

  7. www.socialmind.gr
    @ WordCamp Athens 2017
    7
    Main reasons why retailers using ERP systems should want them
    integrated with their e-shop solution:
    Spare me the Wiki definition and tell me why!
    Order sync automation
    between e-shop & ERP
    Stock sync automation
    between e-shop & ERP
    The product catalogue to the e-shop
    is automatically synchronized with
    the product catalogue of the ERP
    reducing the double data entry time
    for the retailer.
    One data entry to rule
    them all
    ERPs…
    …and why we need to integrate them with e-shops!
    The fact that the e-shop and the
    ERP are in sync ensures reliability
    when it comes to product availability.
    Likewise, orders and customers
    coming from the e-shop are
    automatically being synced with the
    ERP. This way the retailer’s orders
    and customers lists are always up to
    date in both systems.

    View Slide

  8. www.socialmind.gr
    @ WordCamp Athens 2017
    8
    Overselling prevention
    Main reasons why retailers using ERP systems should want them
    integrated with their e-shop solution:
    Spare me the Wiki definition and tell me why!
    Order sync automation
    between e-shop & ERP
    Stock sync automation
    between e-shop & ERP
    The product catalogue to the e-shop
    is automatically synchronized with
    the product catalogue of the ERP
    reducing the double data entry time
    for the retailer.
    One data entry to rule
    them all
    ERPs…
    …and why we need to integrate them with e-shops!
    The fact that e-shop and ERP are in
    sync ensures reliability when it
    comes to product availability.
    Likewise, orders and customers
    coming from the e-shop are
    automatically being synced with the
    ERP. This way the retailer’s orders
    and customers lists are always up to
    date in both systems.
    Prevents the retailer from accepting
    orders from the e-shop for products
    that are out of stock due to sales
    happening to the physical store.

    View Slide

  9. www.socialmind.gr
    @ WordCamp Athens 2017
    9
    Overselling prevention
    Main reasons why retailers using ERP systems should want them
    integrated with their e-shop solution:
    Spare me the Wiki definition and tell me why!
    Order sync automation
    between e-shop & ERP
    Stock sync automation
    between e-shop & ERP
    The product catalogue to the e-shop
    is automatically synchronized with
    the product catalogue of the ERP
    reducing the double data entry time
    for the retailer.
    One data entry to rule
    them all
    ERPs…
    …and why we need to integrate them with e-shops!
    The fact that the e-shop and the
    ERP are in sync ensures reliability
    when it comes to product availability.
    Likewise, orders and customers
    coming from the e-shop are
    automatically being synced with the
    ERP. This way the retailer’s orders
    and customers lists are always up to
    date in both systems.
    Prevents the retailer from accepting
    orders from the e-shop for products
    that are out of stock due to sales
    happening to the physical store.

    View Slide

  10. www.socialmind.gr
    @ WordCamp Athens 2017
    10
    “A tale of two integrations”

    View Slide

  11. www.socialmind.gr
    @ WordCamp Athens 2017
    11
    NO API
    INTEGRATION #1

    View Slide

  12. www.socialmind.gr
    @ WordCamp Athens 2017
    12

    View Slide

  13. www.socialmind.gr
    @ WordCamp Athens 2017
    13
    Database Database
    Intermediate
    Tables
    Intermediate
    Tables
    ERP WooCommerce
    t1 t2 t3

    View Slide

  14. www.socialmind.gr
    @ WordCamp Athens 2017
    14
    Pros?

    View Slide

  15. www.socialmind.gr
    @ WordCamp Athens 2017
    15
    Two sets of mediation tables need to be maintained in
    order for the solution to work. This cannot be avoided
    since the mediation table at the e-shop’s side, is being
    unavoidably updated from the ERP.
    WASTE OF RESOURCES
    Due to the mediation tables, each transaction is a
    three part process and therefore the time needed
    increases!
    DELAY
    Since there is no API, the programmer needs to learn
    the ERPs infrastructure and, in part, its customization
    software.
    LONG LEARNING CURVE
    Since the ERP updates the mediation tables to the e-
    shop’s side, the programmer needs to create and
    maintain those syncing scenarios.
    CRON JOBS BECOME SYNC SCENARIOS
    Cons

    View Slide

  16. www.socialmind.gr
    @ WordCamp Athens 2017
    16
    When a bug occurs, in order to reproduce it, the
    programmer might need to check the ERP platform
    itself. If the bug is due to a malfunction of the platform,
    then we end up doing support to the ERP solution.
    END UP DOING SUPPORT FOR THE ERP SOLUTION
    Since there is no API the database on the side of the
    ERP and the e-shop can be different (e.g. MS SQL for
    the ERP and MySQL for WooCommerce). This might
    lead to encoding or other “side effects”.
    SOLUTION IS NOT INFRASTRUCTURE AGNOSTIC
    In order to make the integration of the platforms more
    effective, some of the ERP scenarios need to break
    down to simpler ones. Then they need to be
    orchestrated (execution time management) in order
    for the flow of data to be accurate.
    CRON JOB ORCHESTRATION NEEDED
    Cons

    View Slide

  17. www.socialmind.gr
    @ WordCamp Athens 2017
    17
    API
    INTEGRATION #2

    View Slide

  18. www.socialmind.gr
    @ WordCamp Athens 2017
    18

    View Slide

  19. www.socialmind.gr
    @ WordCamp Athens 2017
    19
    Database Database
    ERP WooCommerce
    t
    ERP API
    WC Rest API

    View Slide

  20. www.socialmind.gr
    @ WordCamp Athens 2017
    20
    No API
    Integration
    Cons
    API
    Integration
    Pros

    View Slide

  21. www.socialmind.gr
    @ WordCamp Athens 2017
    21
    “Decisions, Decisions, Decisions”

    View Slide

  22. www.socialmind.gr
    @ WordCamp Athens 2017
    22
    #1
    Who is going to use my code?

    View Slide

  23. www.socialmind.gr
    @ WordCamp Athens 2017
    23
    OPEN / INNER / CLOSED

    View Slide

  24. www.socialmind.gr
    @ WordCamp Athens 2017
    24
    Open Source
    Inner Source
    Closed Source
    Open-source software (OSS) is computer software
    with its source code made available with a license
    in which the copyright holder provides the rights to
    study, change, and distribute the software to
    anyone and for any purpose.
    Proprietary software is computer software for
    which the software's publisher or another person
    retains intellectual property rights—usually
    copyright of the source code, but sometimes
    patent rights.
    Inner source is the use of open source software
    development best practices and the establishment
    of an open source-like culture within
    organizations. The organization may still develop
    proprietary software, but internally opens up its
    development. The term was coined by Tim
    O'Reilly in 2000.

    View Slide

  25. www.socialmind.gr
    @ WordCamp Athens 2017
    25
    #2
    Legacy code /
    legacy code dependent

    View Slide

  26. www.socialmind.gr
    @ WordCamp Athens 2017
    26
    Documentation
    Bugfix Roadmap
    New Features Roadmap
    Integration / Adaptability
    • Usually not very thorough.
    • Usually not maintained / extended.
    • Usually its marketing / business based.
    • End-users rarely have a say or the power to be
    part of the decision making process.
    • Usually most critical first.
    • Usually not connected with infrastructure
    improvement in mind.
    • Usually serves specific purposes and it was
    originally designed to do so.
    • When integration is needed, the software cannot
    be easily extended.

    View Slide

  27. www.socialmind.gr
    @ WordCamp Athens 2017
    27
    #3
    Proprietary Software

    View Slide

  28. www.socialmind.gr
    @ WordCamp Athens 2017
    28
    Code is a black box
    No community
    Support is paid and on demand
    Contract precedes integration
    (slide thanks to logicroom.co)
    • Don’t have access to the code.
    • Don’t have access to the architecture.
    • Might take long (really long in some cases).
    • I have a limited group’s view re the proposed
    solution (corporate tech team of the software).
    • The software is being extended based on the
    decisions and dev capacity of the company.
    • Maintenance is also based on a specific group of
    people (that might change regularly).
    • If we want to know how stuff work (e.g. to integrate
    a proprietary system with WooCommerce) we have
    to sign a contract to gain full developer access to
    the system’s platform, API, whatever.
    • If it turns out the capabilities are less than
    advertised, the client has already been charged
    and, therefore, locked!

    View Slide

  29. www.socialmind.gr
    @ WordCamp Athens 2017
    29
    QUEUE
    CAMEL

    View Slide

  30. www.socialmind.gr
    @ WordCamp Athens 2017
    30
    One more “integration”!

    View Slide

  31. www.socialmind.gr
    @ WordCamp Athens 2017
    31
    FILE BASED SYNC VIA FTP
    INTEGRATION #3

    View Slide

  32. www.socialmind.gr
    @ WordCamp Athens 2017
    32
    Database
    Database
    Excel Files (!)
    ERP WooCommerce
    t1 t2

    View Slide

  33. www.socialmind.gr
    @ WordCamp Athens 2017
    33

    View Slide

  34. www.socialmind.gr
    @ WordCamp Athens 2017
    34
    THANK YOU
    && QUESTIONS
    APOSTOLOS KRITIKOS
    E-mail:
    [email protected]
    Athens:
    0030 210 72 432 76
    Thessaloniki:
    0030 2310 551 107
    Visit:
    www.socialmind.gr
    Follow us:
    SocialMindMedia @ Facebook, Twitter
    SocialMindGR @ Instagram
    #WeAreSocialMind

    View Slide