Faits :
A.
A.a. La société A._ GmbH, qui a fusionné le 12 juin 2013 avec Z._, laquelle a poursuivi l'exploitation de cette entreprise, dont le siège est à... (Allemagne) (ci-après: l'acheteuse ou la défenderesse) avait été chargée par la ville de U._ (le Staatliches Bauamt, ci-après: le maître d'oeuvre) de la réalisation (livraison et montage) des installations d'éclairage et de scène des studios de télévision de son projet de nouveau bâtiment pour....
A la fin de l'année 2009, l'acheteuse a pris contact avec X._ SA (ci-après: la venderesse ou la demanderesse), dont le siège était à... et, depuis le 10 octobre 2012, est à... (extrait internet du registre du commerce du 3 décembre 2018) et qui fabrique des systèmes de commande pour éclairages.
Après plusieurs offres de la venderesse, trois propositions de contrat et une commande faites par l'acheteuse, toutes refusées par la venderesse, les parties ont conclu les 7 et 8 juin 2010 un contrat de " sous-traitance " portant sur la construction d'un système identique à celui installé précédemment dans le cadre du projet... de la venderesse.
Le prix était payable pour 1/3 à la commande, 1/3 après la livraison complète des éléments sur place et 1/3 après la réalisation complète du travail et la mise en service du système, l'installation devant correspondre fondamentalement aux normes en vigueur.
Le contrat prévoyait qu'une résiliation de la commande était exclue.
Le 9 juillet 2010, l'acheteuse a versé un acompte sur le prix de vente de 35'647 euros.
A.b. Par courriel du 17 mars 2011, la venderesse a informé l'acheteuse que les éléments du système commandé étaient prêts pour la livraison et que la configuration définitive du software aurait lieu sur place lors de la mise en service.
L'acheteuse a émis des doutes quant au respect des prescriptions de sécurité et des normes en vigueur (en Allemagne). La venderesse n'a pas fourni les attestations de conformité que lui a réclamées l'acheteuse.
Le 14 juin 2011, l'acheteuse a résilié le contrat de " sous-traitance " avec effet immédiat vu l'absence d'attestations de la conformité du système avec les normes en vigueur, et lui a réclamé la restitution de l'acompte versé.
Le même jour, la venderesse a envoyé à l'acheteuse une facture de 71'295 euros pour le solde du prix de vente, requérant l'indication de l'adresse à laquelle la marchandise devait être livrée.
Malgré rappels et mises en demeure, l'acheteuse a refusé de payer le solde de cette facture et a réclamé la restitution de l'acompte qu'elle avait versé.
B.
Par requête de conciliation du 14 octobre 2011, la venderesse a ouvert action contre l'acheteuse en paiement du solde du prix de vente; après l'échec de la conciliation et la délivrance de l'autorisation de procéder, elle a déposé sa demande en paiement devant le Tribunal civil de l'arrondissement de Lausanne le 26 juin 2012, concluant au paiement du montant de 71'295 euros avec intérêts à 5% l'an dès le 30 juin 2011.
A l'allégué n° 21 de la demande, la venderesse a invoqué que, par courrier du 17 mars 2011, elle a indiqué à la défenderesse que la marchandise était prête à être livrée; elle a offert en preuve son courrier du 17 mars 2011.
L'acheteuse défenderesse a conclu au rejet de la demande et a déposé une demande reconventionnelle en restitution de l'acompte versé de 35'647 euros avec intérêts à 5% l'an dès le 10 juin 2011.
Dans sa réponse ad n° s 20 à 22, la défenderesse a indiqué: " Rapport soit aux pièces ".
Par jugement du 22 juin 2016, le Tribunal civil a admis la demande et condamné la défenderesse à payer à la demanderesse le montant de 71'295 euros avec intérêts à 5% l'an dès le 21 juillet 2011. En bref, il a considéré tout d'abord que la défenderesse n'avait pas apporté la preuve de l'absence de conformité - avec les normes en vigueur en Allemagne - du système de commande réalisé par la demanderesse et donc que la résiliation du contrat de sous-traitance était injustifiée; ensuite, s'agissant de la preuve du dommage, il a jugé que la venderesse avait réalisé le système de commande en fonction des besoins spécifiques de l'acheteuse, que ce système était prêt à être livré et qu'au vu des spécifications de l'objet commandé - spécifiquement adapté pour répondre aux exigences du cahier des charges du projet du maître d'oeuvre -, il n'y avait pas lieu de mettre en doute les déclarations de la demanderesse, selon lesquelles les composants du système litigieux réalisés étaient actuellement obsolètes et n'étaient pas susceptibles d'être revendus sur le marché, de sorte que ses prétentions portant sur le solde du prix de vente du système commandé correspondaient bien à son intérêt positif.
Statuant le 5 mars 2018 sur appel de la défenderesse, la Cour d'appel civile du Tribunal cantonal vaudois a réformé ce jugement. Elle a rejeté la demande et, sur demande reconventionnelle, a condamné la demanderesse à restituer à la défenderesse le montant de 35'647 euros avec intérêts à 5% l'an dès le 18 juin 2011. Les motifs en seront exposés dans les considérants de droit.
C.
Contre cet arrêt, qui lui a été notifié le 12 mars 2018, la demanderesse a interjeté un recours en matière civile au Tribunal fédéral le 24 avril 2018. Dans la mesure où elle demande la " confirmation " du jugement de première instance, elle conclut en réalité, sur demande principale, à ce que la défenderesse soit condamnée à lui payer le montant de 71'295 euros avec intérêts à 5% l'an dès le 21 juillet 2011 et, sur demande reconventionnelle, à ce que la prétention de la défenderesse en restitution de l'acompte versé soit rejetée. Subsidiairement, elle conclut à l'annulation de l'arrêt cantonal et au renvoi de la cause à la cour d'appel pour nouvelle décision dans le sens des considérants.
La défenderesse conclut au rejet du recours dans la mesure où il est recevable.
Il n'y a pas eu d'observations complémentaires.
La cour cantonale se réfère aux considérants de son arrêt.
Considérant en droit :
1.
Interjeté en temps utile (art. 100 al. 1 LTF), compte tenu de la suspension des délais durant les féries de Pâques (art. 46 al. 1 let. a LTF), par la partie demanderesse qui a succombé dans ses conclusions en paiement du solde du prix de vente (art. 76 al. 1 LTF), et dirigé contre une décision finale (art. 90 LTF), prise sur appel par le tribunal supérieur du canton de Vaud (art. 75 LTF) dans une affaire civile (art. 72 al. 1 LTF), dont la valeur litigieuse est supérieure à 30'000 fr. (art. 74 al. 1 let. b LTF), le recours en matière civile est recevable au regard de ces dispositions.
2.
S ous réserve de la violation des droits constitutionnels (art. 106 al. 2 LTF), le Tribunal fédéral applique le droit d'office (art. 106 al. 1 LTF). Il n'est toutefois lié ni par les motifs invoqués par les parties, ni par l'argumentation juridique retenue par l'autorité cantonale; il peut donc admettre le recours pour d'autres motifs que ceux invoqués par le recourant, comme il peut le rejeter en opérant une substitution de motifs (ATF 135 III 397 consid. 1.4 et l'arrêt cité).
3.
L a cour d'appel a réformé le premier jugement, libéré la défenderesse et condamné la demanderesse à restituer l'acompte reçu.
Elle a constaté tout d'abord que l'acheteuse ne conteste pas le principe de sa responsabilité, ne remettant pas en cause sa contravention essentielle au contrat, ni ne conteste le droit de la venderesse à des dommages-intérêts en vertu de l'art. 74 CVIM.
Elle a relevé ensuite que celle-ci ne critique que deux points: l'absence d'allégation et de preuve de la réalisation du système de commande par la demanderesse (ci-après: la fabrication de la marchandise) et l'absence de preuve de la personnalisation du système de commande et, partant, l'impossibilité de le revendre à un tiers en tout ou en partie.
En substance, en ce qui concerne le premier point (i.e. la fabrication de la marchandise), la cour cantonale a retenu que la demanderesse a allégué au n° 21 de sa demande qu'elle avait indiqué à la défenderesse que la marchandise était prête à être livrée et a offert en preuve son courriel du 17 mars 2011; elle a considéré que le fait que la défenderesse se soit référée dans sa réponse aux pièces (i.e. la pièce n° 21) ne vaut toutefois pas aveu (de la fabrication) et, si cette pièce établit l'existence de l'information donnée, elle ne prouve pas que le système de commande litigieux a effectivement été réalisé.
En ce qui concerne le second point (i.e. la personnalisation du système de commande et, partant, l'impossibilité de le revendre en tout ou en partie), la cour cantonale a considéré que la preuve de la réalisation d'un système sur mesure n'est pas apportée par l'existence d'une clause interdisant toute résiliation; selon elle, l'interrogatoire de la venderesse (i.e. de son directeur) n'était pas suffisant pour prouver ce fait et seule une expertise aurait été de nature à le prouver.
4.
Il faut examiner en premier lieu si la demanderesse venderesse a valablement allégué qu'elle avait fabriqué le système de commande. La recourante reproche à la cour cantonale d'être tombée dans le formalisme excessif lorsqu'elle a nié qu'elle ait allégué avoir fabriqué la marchandise; elle invoque aussi la " théorie des faits implicites ".
4.1. Selon l'art. 74 de la Convention des Nations Unies sur les contrats de vente internationale de marchandises du 11 avril 1980 (ci-après: CVIM; RS 0.221.211.1), les dommages-intérêts pour une contravention au contrat commise par une partie sont égaux à la perte subie et au gain manqué par l'autre partie par suite de la contravention; ils ne peuvent être supérieurs à la perte subie et au gain manqué que la partie en défaut avait prévus ou aurait dû prévoir au moment de la conclusion du contrat, en considérant les faits dont elle avait connaissance ou aurait dû avoir connaissance, comme étant des conséquences possibles de la contravention au contrat.
Selon la jurisprudence, la limitation au dommage prévisible (i.e. contemplation rule) est issue du droit anglo-américain (arrêt 4C.179/1998 du 28 octobre 1998 consid. 5b). Le fardeau de la preuve du dommage est régi par la CVIM ( lex causae) : celle-ci attribue le fardeau de la preuve du dommage au demandeur selon l'adage " actori incumbit probatio ", comme cela ressort des termes employés dans cette disposition et de la relation entre la règle et son exception (arrêt 4C.105/2000 du 15 septembre 2000 consid. 5a, publié in SJ 2001 I p. 304).
Les affaires internationales sont soumises aux règles de procédure du CPC lorsque le for est situé en Suisse, les dispositions spéciales de la procédure civile internationale, en particulier de la LDIP, étant réservées (art. 2 CPC). Le tribunal saisi applique donc son droit de procédure ( lex fori) également dans les affaires internationales (cf., entre autres, STAEHELIN/STAEHELIN/GROLIMUND, Zivilprozessrecht, 2e éd. 2013, § 4 n. 2 ss et § 10 n. 63).
L'allégation des faits, l'offre de preuves et la contestation des faits sont donc régies par le CPC.
4.2. Lorsque la maxime des débats est applicable (art. 55 al. 1 CPC; Verhandlungsmaxime; massima dispositiva), il incombe aux parties, et non au juge, de rassembler les faits du procès (arrêts 4A_11/2018 du 8 octobre 2018 consid. 5.1, destiné à la publication; 4A_555/2015 du 18 mars 2016 consid. 2.3; ATF 123 III 60 consid. 3a p. 62).
Les parties doivent alléguer les faits sur lesquels elles fondent leurs prétentions (fardeau de l'allégation subjectif; subjektive Behauptungslast; onere di allegazione), produire les moyens de preuve qui s'y rapportent ( Beweisführungslast; onere di deduzione delle prove) (art. 55 al. 1 CPC) et contester les faits allégués par la partie adverse ( Bestreitungslast; onere di contestazione), le juge ne devant administrer les moyens de preuve que sur les faits pertinents et contestés (art. 150 al. 1 CPC; arrêt 4A_11/2018 déjà cité consid. 5.1).
Les faits sur lesquels le demandeur fonde ses prétentions sont les faits dits pertinents (cf. art. 150 al. 1 CPC), c'est-à-dire les éléments de fait concrets correspondant aux faits constitutifs de la règle de droit applicable dans le cas particulier (FABIENNE HOHL, Procédure civile, 2e éd. 2016, Tome I, n. 1219 et 1229).
4.2.1. En ce qui concerne l'allégation, les faits doivent être allégués en principe dans la demande, respectivement dans la réponse pour les faits que doit alléguer le défendeur (art. 221 al. 1 let. d et 222 al. 2 CPC). Ils peuvent l'être dans la réplique et la duplique si un deuxième échange d'écritures est ordonné ou, s'il n'y en a pas, par dictée au procès-verbal lors des débats d'instruction (art. 226 al. 2 CPC) ou à l'ouverture des débats principaux, avant les premières plaidoiries (ATF 144 III 67 consid. 2 p. 69; arrêt 4A_11/2018 déjà cité consid. 5.2.1). Pour chaque fait constitutif de la règle légale applicable, le demandeur doit donc alléguer une série d'éléments de fait concrets (HOHL, op. cit., n. 1219 et 1229).
Les faits pertinents allégués doivent être suffisamment motivés (charge de la motivation des allégués; Substanziierungslast der Tatsachenbehauptungen; onere di sostanziare le allegazioni) pour que, d'une part, le défendeur puisse dire clairement quels faits allégués dans la demande il admet ou conteste et que, d'autre part, le juge puisse, en partant des allégués de fait figurant dans la demande et de la détermination du défendeur dans la réponse, dresser le tableau exact des faits admis par les deux parties ou contestés par le défendeur, pour lesquels il devra procéder à l'administration de moyens de preuve (art. 150 al. 1 CPC; ATF 144 III 67 consid. 2.1 p. 68 s.), et ensuite appliquer la règle de droit matériel déterminante (sur l'ensemble de la question et pour plus de précisions sur la charge de la motivation des allégués, cf. arrêt 4A_11/2018 déjà cité consid. 5.2).
Par exception, les faits implicites n'ont pas à être allégués explicitement. Un fait implicite est, par définition, un fait qui est contenu, sans aucun doute dans un autre allégué de fait expressément invoqué (arrêts 4A_11/2018 déjà cité consid. 5.3.2; 4A_404/2016 du 7 décembre 2016 consid. 2.2 et les références citées; 4A_357/2016 du 8 novembre 2016 consid. 2.2 in fine; 4A_625/2015 du 29 juin 2016 consid. 4.1, non publié aux ATF 142 III 581). Sont, par exemple, des faits implicites: la qualité pour agir, l'exercice des droits civils, l'exactitude d'une date, la non-péremption du droit, l'envoi et la réception d'une facture. Le fardeau de l'allégation objectif ( objektive Behauptungslast; onere di allegazione oggettivo) et le fardeau de la preuve ( Beweislast; onere della prova) d'un fait implicite n'incombent à la partie demanderesse que lorsque sa partie adverse l'a contesté (arrêts 4A_11/2018 déjà cité consid. 5.3.2; 4A_283/2008 du 12 septembre 2008 consid. 6, non publié aux ATF 134 III 541).
4.2.2. Les moyens de preuve proposés par les parties doivent être indiqués à l'appui de chaque allégué de fait ( Beweisführungslast; onere di deduzione delle prove; art. 221 al. 1 let. e CPC).
4.2.3. En ce qui concerne la contestation, les faits doivent être contestés dans la réponse (art. 222 al. 2 2e phr. CPC) et, pour les faits allégués par le défendeur, en règle générale, dans la réplique, car seuls les faits contestés doivent être prouvés (art. 150 al. 1 CPC; ATF 141 III 433 consid. 2.6). Une contestation en bloc ( pauschale Bestreitung) ne suffit pas (arrêt 4A_11/2018 op. cit. consid. 5.2.2.1; ATF 141 III 433 consid. 2.6 p. 438; arrêt 4A_261/2017 précité consid. 4.3; pour plus de précisions sur la charge de la motivation de la contestation, cf. arrêt 4A_11/2018 déjà cité consid. 5.2.2.3).
4.3.
4.3.1. En l'espèce, la cour cantonale a constaté que la demanderesse a allégué au n° 21 de sa demande en justice qu'elle avait indiqué à l'acheteuse que la marchandise était prête à être livrée (et elle a offert de prouver ce fait par un courriel du 17 mars 2011, qu'elle a produit sous pièce n° 21).
Lorsqu'elle interprète cet allégué dans le sens qu'il ne concerne que l'offre de livraison de la marchandise, la cour cantonale méconnaît que, selon l'expérience de la vie, l'allégué de la fabrication est implicitement contenu dans le fait que la marchandise est déclarée " prête à être livrée ".
Il s'ensuit que la fabrication de la marchandise est ainsi un fait implicite, contenu sans aucun doute dans l'allégué selon lequel la marchandise est prête à être livrée.
4.3.2. Si elle entendait soutenir que la marchandise n'avait pas été fabriquée et, partant, n'était pas prête à être livrée, il appartenait à la défenderesse de contester ce fait (i.e la matérialité de la fabrication) dans sa réponse. Or, elle ne l'a pas fait, se limitant à répondre ad n° 21: " Rapport soit aux pièces ".
D'ailleurs, elle ne l'a pas fait non plus ultérieurement en première instance. Il ressort des faits de l'arrêt attaqué que, le 17 mars 2011, la venderesse a informé l'acheteuse que les éléments de commande étaient prêts pour la livraison et qu'ensuite, l'acheteuse a émis des doutes sur le respect des prescriptions de sécurité et des normes en vigueur en Allemagne, que le 11 mai 2011 a eu lieu une réunion à U._, que l'ingénieur chargé par le maître d'oeuvre a écrit le 13 mai 2011 que le système pouvait être mis en service que, le 31 mai 2011, l'acheteuse a indiqué que les attestations de conformité faisaient toujours défaut et qu'elle ne pouvait prendre la responsabilité de s'en tenir au système de la venderesse et que, le 14 juin 2011, la venderesse a fait parvenir sa facture et réclamé la communication d'une adresse de livraison. A aucun moment en première instance, la défenderesse n'a mis en doute la fabrication de la marchandise, mais bien seulement la conformité du système fabriqué avec les normes en vigueur en Allemagne. Dans sa réponse au présent recours, l'intimée acheteuse admet d'ailleurs qu'elle n'a jamais contesté la fabrication de la marchandise, tout en tentant de l'expliquer par le défaut d'allégation.
Il s'ensuit que, faute de contestation de la part de la défenderesse de l'allégation implicite de la fabrication de la marchandise par la demanderesse, ce fait doit être considéré comme non contesté et, partant, qu'il n'a pas à être prouvé (art. 150 al. 1 CPC).
5.
En second lieu, il faut examiner si, malgré la personnalisation du système de commande, la venderesse demanderesse avait la possibilité de le revendre à un tiers et, partant, de réduire le dommage. La cour cantonale a retenu que la venderesse n'avait pas fourni la preuve de l'impossibilité d'une revente à un tiers.
5.1. En vertu de l'art. 77 CVIM, la partie qui invoque la contravention au contrat doit prendre les mesures raisonnables eu égard aux circonstances, pour limiter la perte, y compris le gain manqué, résultant de la contravention. Si elle néglige de le faire, la partie en défaut peut demander une réduction des dommages-intérêts égale au montant de la perte qui aurait dû être évitée.
Si le terme français de " partie en défaut " n'est pas limpide, il résulte clairement du texte allemand de cette disposition que la partie en défaut est la partie qui a violé le contrat ( die vertragsbrüchige Partei). Celle-ci peut demander une réduction des dommages-intérêts qu'elle doit pour avoir violé le contrat au motif que sa partie adverse n'a pas pris de mesures pour limiter son dommage (cf. ATF 136 III 56 consid. 5). Le fardeau de la preuve du fait que le créancier n'a pas pris de mesures pour réduire son dommage incombe au débiteur, puisqu'il déduit de ce fait des conséquences en sa faveur (ULRICH MAGNUS, in Staudingers Kommentar zum BGB, Wiener UN-Kaufrecht (CISG), 2018, no 22 ad art. 77 CVIM et les références citées).
5.2. En l'espèce, la personnalisation du système de commande et, partant, la possibilité de le revendre à un tiers est un motif de réduction du dommage au sens de l'art. 77 CVIM. Il doit être prouvé (fardeau de la preuve) et donc allégué (fardeau de l'allégation objectif) par la partie qui l'invoque.
Il appartenait donc à l'acheteuse défenderesse de prouver - et aussi d'alléguer - que la venderesse demanderesse n'avait pas limité son dommage en prenant des mesures pour revendre le système fabriqué à un tiers.
En reprochant à la demanderesse de n'avoir pas apporté la preuve de l'impossibilité de vendre ce système à un tiers en requérant une expertise - seul moyen de preuve qu'elle a jugé apte à prouver ce fait -, la cour cantonale a violé l'art. 77 CVIM: elle a mis l'échec de la preuve à la charge de la demanderesse alors que le fardeau en incombait à la défenderesse.
Il s'ensuit que la défenderesse doit supporter l'échec de l'allégation et de la preuve d'une réduction du dommage que la demanderesse a subi en raison de la violation du contrat.
6.
Le recours doit donc être admis et l'arrêt attaqué réformé en ce sens que, la demande étant admise, la défenderesse est condamnée à payer à la demanderesse le montant de 71'295 euros avec intérêts à 5% l'an dès le 21 juillet 2011 et que la demande reconventionnelle est rejetée.
Les frais et dépens de la procédure fédérale sont mis à la charge de l'intimée qui succombe (art. 66 al. 1 et 68 al. 1 LTF). La cause sera renvoyée à la cour cantonale pour nouvelle décision sur les frais et dépens des instances cantonales.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est admis et l'arrêt attaqué est réformé comme suit:
1.1. La demande est admise et Z._, à... (Allemagne), est condamnée à payer à X._ SA, à... (Suisse) le montant de 71'295 euros avec intérêts à 5% l'an dès le 21 juillet 2011.
1.2. La demande reconventionnelle est rejetée.
2.
Les frais judiciaires, arrêtés à 5'000 fr., sont mis à la charge de l'intimée.
3.
L'intimée versera à la recourante une indemnité de 6'000 fr. à titre de dépens.
4.
La cause est renvoyée à la cour cantonale pour nouvelle décision sur les frais et dépens des instances cantonales.
5.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Vaud, Cour d'appel civile.
Lausanne, le 17 décembre 2018
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente : Kiss
Le Greffier : Piaget