 My name is Apostolos Kritikos and I'd like to thank a lot the organizing committee of work on patents for the invitation in the event of 2017 Actually, we sent what we were going to speak about and they they thought it was cool and they invited us But nevertheless its invitation. Thank you very much for that So It's okay. I'll do it with the arrows if you okay, so Myself I'm a user of Wordpress since 2007 and Along with my partner English nerd ex which is in the audience alongside with other members of our team We are using Wordpress and WooCommerce professionally since 2011 I mean making money out of it So we thought it was cool to share some experiences we had with you here in This annual conference in Athens and before I started like to Thank you very much before I started like to Tell you something. I believe about the wordpress community. I think it's a great community. We should support it when how and us strong as we can and In order to go along with what I'm saying I believe that if wordpress and WooCommerce are the service and we can consider ourselves being the users of The service either as developers or or as users today in this conference. We Interacted the service throughout the World Camp Organizers and volunteers which are in this room. So But how do you say that we give them a big upload for getting this thing together for us so that we can enjoy it With little ghost and super cool presentations. Let's let's have it so Let's let's meet Which of you were here to the presentation of of mr. Loki? Okay Mrs. Ute the previous one The presentation. Okay, which of you are developers Okay, which of you are non-technical people Excellent, which of you have used WooCommerce as users For their shop for example. Okay, and which of you have used or WooCommerce as developers Excellent, so we have everything Okay My presentation is going to be about earpiece Greek earpiece specifically and how they are integrated with WooCommerce. It's something that we try to To do in my company social mind the previous year and we tried with two Although we had the chance to Explore some more I'll say some things about the other integrations, but we will focus in two for this presentation So Today we're gonna talk as I said about cooperation WooCommerce about earpiece APIs and why and why they are good for our lives and a bit about the powers that WooCommerce and WordPress gives us Give us to super power our stores and our e-commerce solutions so previous speakers as well Pinpointed why WordPress and WooCommerce are very cool tools to use and As developers to provide our customers with great solutions some of the biggest Advantages are in this light in my opinion at least they're open source They have a great community to support them and use them. They have plenty of plugins rest apis documentation There is a particular one that I like it's the future proof the red in the in the last line and I say future proof because The future of WordPress and WooCommerce isn't actually something that we can predict That's going to be forever for five years for three years or It's gonna die tomorrow because it's mainly up to the community that Makes it grow To decide to decide for how long it's going to be working out there So a little things about it, which of you know what a new earpiece system is Okay, so we won't stay along here. It's Software systems that perform many business processes for Businesses companies smaller large and such as the ones in the least for example Product planning purchase storage management sales orders Clients and stuff like that the The only thing we should be talking about though is Why would somebody who has any soap? We'd like to integrate There is soap with a solution with an airpiece solution So in this in the following slides we have The Four or five main reasons for that one of them is that we need One data storage to Have all our information. So what's happening? in Greece These days is that usually We have companies that are selling things in physical stores and until today they They didn't have any soap some of them had the near peace solution and Some of them didn't have any soap or a near peace solution altogether. So The time came where the physical store store owners Wanted to use the online challenge to channels to sell more of their products. So they created these shops and This last year in 2017 We've seen many clients coming to us and say, okay, I do have an ERP now Can I integrate it with my shop? Why? Do they want to do that? one to keep their storage in sync with what's happening With their isop This means that when some but when something when a product is being sold from the shop the storage In the ERP should also sink and have the updated amount of products available for further sales in their storage physical storage, of course If they sell something from one of or more of their physical stores Again the shop their online store As we say should also have the updated amount of products still Can be sold Also in Greece as many or of you know the bureaucracy is huge and so there are strict strict Lows and procedures on how we charge and then we get receipts and invoices for what we sell These things should also be in sync when they are sold physically or from an online store and this particular thing is a huge pain because especially when when a store Supports wholesale and retail sales We have to do a special treatment for those invoices versus the receipts And last but not least the thing that paints the sellers the most Is the overselling? Danger, you know what overselling is for a customer, which of you know it that's Okay, so overselling is trying to sell something That doesn't exist in my storage, but my user online Sees that that that it is available. Let me give you an example Let's say that my store has a physical store that sells things and an online any shop I have two products of a specific I have two items of a specific product to my storage At the same time two people are coming to my store requesting this Product and there is an online user that also is interested to buy this product What's gonna happen is if my? Is soap doesn't sing very frequently with my ERP my online user Might see the product still available However, the two buyers in my storage might have already bought the two remaining products so I'm selling a product to the online user, but It's not really there It's just it's just that the that may shop Hasn't synced with my ERP system. So it's still available. Although. It's not okay having established these Base of discussion for why an ERP is important for the issue of owners Let's talk about two different integrations that you had to do with the with two different Greek earpiece I'm more interested in showing you the infrastructure problem So I'm not going to say which your piece are but Any one of you that wants more details we can discuss it in person outside after the talk After all, it's coffee time. I think so The unsolution Didn't didn't offer an API. So we have an ERP that doesn't offer an API How many of you think it was super easy to integrate the solution with an isop with who commerce I Suppose you don't raise hands because you think it wasn't easy Yeah, so In this specific solution This specific ERP I mean we had an infrastructure like this So we are we have the ERP on our left and the who commerce On our right and what's happening is in order to sync the two databases together We need to have a set of identical tables in the databases That are exchanging Informations between them and then the databases are reading from those intermediate tables So what we should do what we had to do was On the side of the ERP a set of intermediate tables were Created by the ERP company of course and they were cloning the information on the database in the side of the ERP At the same time we had to create a set of those tables on our side the who commerce side and Of course, they were they were tables that were not We couldn't use the who commerce tables because their structure was different and then After we implemented that what you have to do was to read from those intermediate tables And of course wait for the ERP to write inside them Okay, let's think about some pros of about the solution. Let's talk about some cons First of all we had we have waste of resources Because we're duplicating and quadraplicating the infrastructure Just to be able to sync to that a basis Which of course over an API wouldn't be that hard to do and especially because who commerce has and workers have a rest API That makes the specific tools a very good candidate for a developer to create a viable e-commerce solution That can be integrated we we show it to a previous presentation with Anything that also has an API. We're going to discuss about that in a while Waste of resources as I guess you understand uh Leads to delays if you if you remember the graph The diagram we have three times In order for the transaction to go from one way to another and then the same times for it to go back We have a long learning curve As a developer I would rather not understand the infrastructure of the thing. I'm integrating Because my main purpose is to use it as a as a tool as a third-party component to create a Custom a customized solution for my tailor-made shoes for my client But since I have to duplicate part of the infrastructure just to be able to communicate with that We had to go deep in the solution of the of the RP provider and understand why it's built the way It's built and how we're going to minimize our effort in order to make something that can bridge the two solutions Last but not least Chrome jobs become sink scenarios and what what we mean with that is that Since we're talking about any soap database, we have a lot of information that need to be synced if If we go back a couple of slides We're going to remember that what we need to sync our orders new customers that are coming from this shop that should be also replicated to our European solution products Stock amounts and stuff like that We can't with this infrastructure at least We cannot Synchronize the whole database every two or three seconds. Why because we are not sure that the RP can duplicate itself to our intermediate tables so often and thus the Reality showed it can't end up doing support for the RP solution Do you know what what's happening when something is not working and it's not your fault? The customer is going to call you because you are done with whom he's speaking and you are done who said to him We're going to integrate it to the things to do the job for you So we had to call them back and ask them why are these things are not working as I supposed to hear their solution try to implement wait for them to implement it and then implement our bug fix As an aftermath of their solution Solution is not infrastructure agnostic Okay, so let's say that our database in WooCommerce is my SQL and the RP's database is MS SQL Although this is not a bad thing It shouldn't be a bad thing Still we have to take information directly from our database and migrate it to another infrastructure and As the experience showed this could lead to strange things, especially when we're talking about Greek text Cron job orchestration needed so what we ended up doing is the solution is Micro-management the Cron jobs and I mean literally if there was a person that was micro-managing them in order to find the optimal solution with the little time possible to integrate the two things and We ended up doing something Which is not very good in develop in development in general Try and guess what's the best thing to sync in which time so We moved on with a second integration after a while in for another client of course and which had an API and Things went well So of course not everything was sold from much Magically, but it was pretty easier because now we could Request something from the RP and we were getting something that we could read or try at least to read So if we wanted to update the previous diagram, we have this one where Things are pretty easier. We have the RP on the left. We have who commerce on the right and We just need those two things to talk over an API pros and cons what's not working for a Solution that doesn't provide an API is a pro for a solution that provides an API I'm not going to tell them again because you can get the picture So getting to the bottom of that I'd like to to share with you some thoughts about why We had to take this long journey To end up implementing two different two different solutions with who commerce At least why I think we we had to go there first of all we We found out that Let me start again Can anybody of you imagine your reason? Why the first solution didn't have an API? Were they just but coders or there's something else? ideas custom-made okay Both of both of them are are are good answers of course the second is more near to the reality But there's another reason yes Exactly the thing is that what we got was legacy code It was legacy code this this implementation Was built a lot many years ago when there were in these shops in the Greek market And there wasn't a need for Greek he shops in the market. So nobody could See the need to create an API since all the jobs that the RP had to do was internally To the shop itself to the ERP solution itself so when At some point somebody said okay, I need the data to integrate them with another solution there was no bridge for that and The only thing that they could do is either allow us to use a solution like the one I showed you or Which would be even worse let me hit their database directly And I'm saying that because is the solution that another Here P gave us when we discussed with them. It's okay We can give you access to our database and do a request directly So in order for us as a as a software house To design quality code this total selection and the lesson is Be aware who is going to use your code in the future if it's going to be infrastructure for your company You could not use an API although I personally think that an API never hurt anyone If and you can do it either open source For example extending Google commerce or WordPress if you have to it could be inner source How many of you know that the term inner source? Okay, in sources is a new thing that stepping between open and closed source and it is parts of the of the code which could be closer open are open to the to an organization or a community but not outside that so What's what the pros and the cons of using a legacy code? Versus a legacy code dependent system so first of all It has a great effect on the documentation The fact that the first solution had no API Was accompanied by the fact that when we tried to integrate there was there wasn't a Structured documentation to tell us how to do that Instead we were continuously on the phone with the tech support of the ERP solution Telling them ideas that we had and responding And they were responding to us with their ideas and at some point we found some common ground to be able to work There is No clear new features roadmap So if for example, I want a new feature to extend my whole commerce solution for my client and It has to be connected with the ERP If I call them and sell and tell the ERP tech support, can I do that? They they're going to tell me Let us think about it and we'll announce it to the next release of our update Backfix roadmap. I'm sending something that doesn't work as I want or even worse It's working, but it could be way faster if we we have implemented in a different way They cannot tell me when this is going to be ready and integration of the ability Because I don't have control over the software. I'm trying to integrate my solution with I cannot make it make the right extensions to update it to do so and third the fact that those solutions when we're in total, I mean all the ERPs that we're talking are proprietary software So when you have to deal with proprietary software, I don't I'm not I'm not very fanatic about open source I'm meaning that every closer solution is the devil and we should kill the one that's maintaining it but it should at least provide us with a way of being able to get the data Without interfering with the business logic behind the ERP solution and do whatever we want with them proprietary solutions usually If they don't have an API they don't allow you to do that because once you're in their system you can do stuff And this is getting messy at some point Also, there are all the other things that we said code is a black box. We cannot I Know that doesn't work, but they can't find out why Support is paid and on demand So if I want to fix from our client my client have have usually to pay them to make this Fix and they might Return a cost to him that he cannot afford. So this gives me a hard way of Making my solution better There's no community so I couldn't ask for example on stack overflow or a WordPress forum. I have this problem. Can you help me with that? But I had to call someone and he Would say to me Let me check and I'll get back to you in a month and Contract presentation creation So if I want to promise new features to my clients I have to also give them price for that and the price is going to be dependent on the price of the people behind the ERP solution Okay, this might not be known to the known Greek People here, but I see people already laughing. So I guess you found out so there's a bit more in my presentation and I have Fine minutes left. So I guess it's going to be okay So when I propose the the presentation it was also all it was only two integrations, but From that time to now, there's a third one that we're trying to do and it's worse than the other So say oh if you're sympathizing with me Okay, so our new challenge is this we have two databases and we need to sync them through Excel files If you want to try it with us Find me outside and pitch me your idea. I'd be glad to implement it. Thank you very much. I guess questions Thank you. By the way, three persons of this picture one is me are in the space you can find them and Ask them cool things Hey, yes Question, why would you integrate between two the databases using Excel files? Can't you use something like CSV or JSON or something more humane? Yeah, sure, but The client came and said we have this ERP solution and we need to integrate our WooCommerce store with this And I said, okay, I'll call them and ask them how we're going to do that and the guy Told me that Yeah, we're gonna give you Excel templates You're gonna fill them for us and then we will update the database with them and it was the only way So I guess I have to do it Or not take the job. It's it's up to us But the thing is and I think let's let's use the question to elaborate some more the thing is that because the The ERP solutions that are On market at this time that we're talking were designed in different periods of time and with different needs and Characteristics on mind and therefore there's no common ground in terms of in the grid of of developments structure integration and That's why some people are using Mediation tables in databases other people are using still the file system and Others have moved on and Are turning to APIs The great thing that happened was that the first solution Reported that within the first quarter of 2018 they're building an API but You can only imagine what that means for us. We have to Rebuild the whole system to work with an API now If he understands that he needs to pay for the second in the grace it this is always a tricky one for the sales But we'll try another question maybe It's coffee break so do one or two or four or five Hi, hello What methodology you are using to sing your My scale to SQL or SQL to my skill you mean from my skill to SQL server. Yeah, which one you tried which one You're using to to integrate just so to be to be sure that I understood the question correctly You mean what methodology we use to sing two different types of databases one with the other. Yes, okay Because the the problem is not the are not the databases to start with It's the fact that the data should pass from the one database To tables with the exact structure of the first database and then to the other So whatever solution I do I have to recreate the tables To my environment. Let's say this is my SQL or could be anything else and Copy the data and the fields from the first database and then I can read the data So the methodology At least in my mind until today we're speaking doesn't matter unless you have a good suggestion about yeah, I Don't need by using the my skill drivers on SQL server. I Was asking if you have something different No, no, we we also pass the information From the mediation tables from one for structure to the other and then we updated the other system We couldn't find a smarter way to do Thank you. Hello. Hello. Have you ever done Arab integration when you need to manage? That's a two-way data handling like for example if a client has client has like products in Their systems and they want to transfer it to the e-commerce that is okay That is one way but if they're just one, but they were also one to like enter products in their WooCommerce or e-commerce system that should also be Visible in a repair or transfer to your pet. How do you handle that or did you? I will work on that. Thanks. The question is if it was a bi-directional Yeah, yeah and Something more or just that no job that yeah, we we implemented the thing two way so Okay in the API in the API scenario, I guess it's it's pretty much It's clear. So let's go to fast rewind So so as you see Let's have it for a great sponsors Okay, so back to back from the small intermission. We have two way arrows. So we implemented both ways and Want to know how or it's it's really simple because Okay, this is a pointer. So what you're doing is whatever database this is You you choose the tables that you're interested for let's say clients orders and products You make a copy With the the identical structure of the of the original database Okay, and this is in in the same DBMS us the database itself So if this is my MS SQL, this is MS SQL as well Then you you create a code that synchronizes those intermediate tables With those intermediate tables that they are in the DBMS that your ESOP has for in our case who commerce The reason you need those tables is that you can't use the ones that you have in the who commerce itself Because they need to be identical to those in order for the two For the two intermediate database data tables to clone the data from the other that and this is happening because the Specific ERP solution doesn't let you to read from there. It needs to write the data on your side So that's why we needed the two sets of the intermediate tables other questions. Yes Hi, if you have like a Task to do an integration with the two legacy system, let's say can you just export the data out? with your own way like json xml and whatever and Just assign this task to the legacy system owner Which is like the most appropriate person for for this job. So what you're saying is I? Built the template on how I want the data to come to me and then I tell them fix it Not in that manner. Okay Like export the data and say this is a they will commerce API This is the way that you can retrieve the data This is the way that you can interact with the data and it's too expensive for us to Walk with the legacy system and spend hours on the phone and email Yeah, they're gonna they're gonna say that We hear you it's gonna happen like Third quarter of next year and in the meantime your customer says, okay, I Maybe some other time something so but the usual case is that those the ERP system because they are exactly because they are legacy systems They have found a way not a good one But they have found a way to provide you with the data They say to you you're going to charge for the integration Charge whatever you charge whatever you must and do it this way Otherwise we'll have to do it and we are going to charge your client eventually So it's more or less the same thing in the end the same money are going to be paid Yes, hello Hello, can you explain in short the business decision to take the first job? I mean you realize that it is It's going to be hard work to do it, but maybe you thought that You can use this Solution again and again with this kind of ERP was it Based on that or was it something else? Excellent question, and I promise I didn't pay him to do it. So What we're trying to do in social mind is we're trying to create As we call it a 360 degree of Services around digital marketing and a part of digital marketing is selling online Because we have a strong background in programming and using wordless who commerce as I said earlier We thought that it would be good to be able to automate The process of sinking the storage the physical storage of a shop With the online systems in order for them not to have to pay someone To actually do a duplicate job Entering orders both in the soap and the ERP or vice versa So the main reason was that in ease still is that we're trying to provide a Component or on our infrastructure that a user in the future could choose their ERP and have a Okay, maybe not the perfect but a very good solution on singular products, but after the experience with the first solution, we think that the quality of The integration in the first case and the case there which there is an API are Definitely very have a very great distance between them in terms of quality and performance and Stop like that. Thank you. There are I see At least five so I'm here. I'm available And which one it's me. Oh, hi Thanks a lot for your presentation I mean, I just have a question About future Implementations supposedly that first of all, I am aware of all the problems and restrictions of dealing with ERP technicians and stuff So I can relate with you guys. Let's have a beer afterwards. Yeah And cry over it. Yeah, I Just want to say in the future like if if supposedly we had full liberty to implement our connections In your professional opinion and experience, would you say that a connection would be better to be reactive or you know to be able to accept Connections and deal with stuff internally or it should be reactive like sending information To the ERP and let the ERP handle it. I mean if you could do it in all in all in one solution Well You're trying to generalize and it's a very good thing. We try to do it as well If we don't have an API available We have to do something specific for the solutions that they don't have one idea is to Tailor made every solution another idea is to persuade them like we did with our first case To turn the thing around to an API The third idea that I thought about but I don't think it's viable is to persuade them to pay me to make their API the API for them If you know someone with any repeat that wants an API, let me know There's another there's another technology out there, but we're just Looking at it at this time, which is called The enterprise service bus, which if you have heard about it Yeah, this technology is something says something different We have systems all around and we are using a central bus of Messages that those systems are willingly giving and then there is there is a Main component that reads the messages and decides which of them need to be Scheduled and interacted with but This also Has the problem that we don't know every solution out there the infrastructure behind it So we can't be sure that this is going to generally To in general solve the problem Where we're looking for it, but we're not there. I guess this is the short answer. Yes Hello, thanks for the information and presentation I would like to ask what happens when you have More than one languages on the website or in the issue of let's say Greek and English Can you say it on your time because I lost something what happens when you have more than one languages on the website Let's say Greek and English and okay so what's happening is that In general the ERPs are are keeping the information uniquely so The the language the multilingual thing is going to happen in the shop The ERP doesn't have a need to have multiple language unless the they have implemented some SEO features for example for the descriptions or the titles of the products but in our opinion This is handling one way I mean we are getting all the data from the ERP and then we can replicate to our site to the SOP site and deal with the with the multilingual content or We can map the the version the language that exists in the in the ERP side Let's say it's the Greek one with the translation that is offered in our hook-home resolution Let's say if we're using the WP ML packets This could be the the translations of a specific product or a specific feature for product. Thank you. Thank you Hi, hello, you can't make them so But you will I'm afraid Yeah, where are you looking? Oh Hi How do you manage to to make a proper cost estimate? Meaning that you're you're dealing with a near pee with a with a With a closed system with a black box that you don't know exactly how it works So how do you manage to to to give a proper quote to your client? Okay, this is this always trick you on but it's not only with with integration within your page generally when As Mariana was saying in the previous presentation when somebody comes and ask you to do a tailor-made solution or an extension of the WooCommerce that doesn't exist out there as a Component out of the cell for something It's difficult but What we try to do when we're dealing with this kind of questions. We're trying to We're trying to establish a basic set of features That we think They're they're solving the problem Put the price on them as if we were going to build them on our own starting from scratch for example and then based on the Information that the vendor gives us for example, I have an API and it is a component of the documentation Or I don't have an API But I'm gonna you're gonna tell me what you need and I'm gonna give them to you in the JSON format for example like another Friend proposed Based on their answer on how we're going to get our data and how easy it is going this is going to be We try to put the price on that the truth is that in the end when you are exploring on and known territories your use you usually uh Sacrifice a fraction of your price in order to gain the knowledge that You afterwards have to support better this solution. It's a risk. It's like buying bitcoins five years ago Let's see something like that do it do it Hi Multi-currency. Yes Haven't dealt with haven't dealt with that yet. We're still Supporting Greek customers only bitcoins nothing Hi up here straightforward So I can see you raising hands raising hands First of all, congrats on your Presentation and my hats off with your patience with all these legacy code. Thank you Two beers Small question related to the previous one When you deal with the legacy earpiece systems and you have the client in front of you that says that have an old one And I want you to connect it with my shop Do you propose him to Make some alterations to the ERP or even change it or upgrade it before you take the job Or you just say yes and move on to the to walk on the modern with a cross on your back and Do the job yourself? Very good question We try when we we started this thing our intention was to to found to find a good vendor with a new European stick with them and For example sell their solution as part of our package But what's what happened on the way is that it turns out that when once when a when a company uses an European system the amount of money and time they spend to set up the whole storage and orders and everything to Support this ERP is a cost. They cannot pay again So Saying them that you need to come to this ERP in order for you to have an integration with your Google commerce Isop Immediately is adding to them a cost that they have first of all already paid once and Also, they're going to delay their isop Creation and therefore they're losing money Now if the if the customer is already and in another type of Initial, let's say for example open cart or something else and he's changing that if you ask him to change the ERP as well I don't think this is going on well Iran of us So I guess we need to To make integrations per request if we want to solve the problem Horizontally, and I think this is my cue. Thanks again for everything. Let's talk outside