OXID / GIT Download producten

OXID / GIT Download producten

Digitale goederen online aanbieden - Amazon doet het met eBooks, op Beatport krijg ik actuele muziekaanbiedingen en in de AppStore van mijn smartphone bieden Apple, Google of Microsoft mij altijd en overal muziek- en softwaredownloads aan. De afzetmarkt voor downloadproducten is booming, het aanbod is immers overal beschikbaar en vaak goedkoper dan in een winkel, die vaak alleen met de auto bereikbaar is.


Er is een trend in opkomst die sterk neigt naar "digitaal winkelen" en mobiel winkelen.


De OXID eShop versie 4.6.0 biedt de optie "immateriële producten", het is een lichte muziek, eBooks, video's of spelletjes, digitaal te koop in uw eigen winkel. Software kan ook prachtig worden verkocht in de winkel. Het uploaden van de betaalde downloadbestanden gebeurt ofwel door de winkeladministratie ofwel met grotere hoeveelheden gegevens met het FTP-programma. Als de bestanden via FTP worden overgedragen, moeten ze worden toegewezen aan het overeenkomstige artikel in de Shop Administration. Vervolgens kunt u het downloadartikel in de winkel kopen.

Oxid Standard Download Produktmanagement

Op het eerste gezicht lijkt alles gemakkelijk en comfortabel te beheren. Als het echter gaat om frequente bestandswijzigingen of updates, zoals bijvoorbeeld het geval is bij websoftwareproducten, kan het onderhoud en de levering van de producten met tools aan boord veel tijd in beslag nemen. Tijd die elders ontbreekt. Er moet een eenvoudigere manier worden gevonden om producten aan te bieden.

OXID Betaal downloads met Git Versioning

Wanneer software in een team wordt ontwikkeld, is er vroeg of laat geen sprake van het omzeilen van versiebeheer. Wij bij Netensio gebruiken het populaire gratis versiebeheersysteem git. Git beheert onze producten als tags (stabiele versies) en de huidige ontwikkelaarsversies. Deze constructie is in een vergelijkbare vorm te vinden in het merendeel van de OXID-ontwikkelaarsgemeenschap. De git gemeenschap is in de tussentijd erg groot geworden, veel ontwikkelaars hebben hun software en zelfs hele software systemen met de gratis versiebeheer.

Verdeutlichen zullen we de situatie nog eens bekijken. We hebben een winkelsysteem dat downloadproducten kan accepteren en er zijn afgewerkte softwareproducten beschikbaar in ons versiebeheersysteem. We zijn dus op zoek naar een gemeenschappelijke en comfortabele manier om gegevens uit git te halen en om te zetten naar een OXID-downloadproduct.



OXID / GIT artikel download module

Ik heb besloten om het te integreren als een OXID-module-uitbreiding. De bestaande functionaliteit mag op geen enkele manier beïnvloed worden door mijn module en ik heb een optie nodig om .php bestanden te versleutelen met de Ioncube Encoder in aanvulling op de open source software. De vercijfering van de software zal ik slechts zeer oppervlakkig ingaan, ik ben niet tevreden met sommige delen van de module en daarom publiceer ik het nog niet. In dit artikel zal ik prioriteit geven aan het afrekenen van de git tag en de overdracht naar OXID als ZIP-archief.

Om een downloadproduct van git te genereren hoef je niet elke keer de URL van de repository en de git gebruikerslogin in te voeren, maak ik een inzetplan-object aan, een nieuwe databasetabel voor opgeslagen inzetprofielen en een OXID-administratieweergave inclusief het bijbehorende sjabloon. Een Deployment Profile is een set van opgeslagen instellingen die nodig zijn om een downloadproduct van git te genereren. De volgende screenshot toont het invoermasker van het admin-tabblad voor het maken van een git-implementatieprofiel voor OXID-producten.

OXID / GIT Download Artikel Deployment

Het is de bedoeling om per artikel een profiel aan te maken om toegang te krijgen tot externe git-servers met verschillende gebruikers. In principe kan elke opslagplaats op Github als product worden gedownload in de OXID eShop. Het inzetprofiel maakt ook de activering van de eerder genoemde Ioncube Encoder mogelijk. Voorlopig negeren we dit echter. Als we een implementatieprofiel voor het artikel hebben gemaakt, kunnen we ons implementatieproces starten door te klikken op Get Repo Data. Wat deze toets precies doet, wordt in de volgende tabel weergegeven

  • De git tag/tak in het implementatieprofiel wordt gekloond in een temp directory
  • OXID eShop reinigt de gekloonde directory van git's eigen directory's
  • De tijdelijke directory kan desgewenst worden versleuteld met Ioncube
  • De tijdelijke directory kan het oxarticle__ox-bestand bevatten
  • De map wordt als ZIP-archief naar de map /out/downloads/uploads verplaatst.
  • Het zip-bestand wordt verwerkt als een nieuw downloadproductbestand voor het artikel en opgeslagen als een downloadproduct hash.
  • Het Zip-bestand in de map out/downloads/uploads wordt door de module verwijderd.

Houd OXID / GIT Deployment artikel up to date

Het downloadproduct is direct na afloop van het proces in de winkel verkrijgbaar en wordt aan het artikel gehecht, alsof het zip-bestand handmatig is geüpload. Het mooie van deze oplossing is dat zodra een nieuwe productrelease in git wordt getagd, je alleen de tagnaam in het bestaande implementatieprofiel in Oxid hoeft aan te passen en de huidige git tag als downloadproduct kunt inzetten.

Wat gebeurt er als u klikt op: "Verkrijg repo-gegevens"?

Het implementatieproces voert een eenvoudige "git kloon -b " uit naar een tijdelijke directory die in de globale module-instellingen is gespecificeerd. De directory wordt vervolgens opgeschoond en bevolkt met de extra gegevens volgens de inzetregels. Zodra alle gegevens uit het implementatieprofiel zijn verzameld, controleert het systeem of het artikelobject gecodeerd of open source moet zijn. Na de overdracht naar het oxide-artikel worden de tijdelijke directory's en gegevens verwijderd om opslagruimte te besparen. De volgende screenshot geeft u een overzicht van de module-instellingen in Oxid.

Oxid Moduleinstellungen GIT Download-Produkte

Als u dit artikel leuk vond of als u suggesties, vragen of codevoorbeelden wilt zien, voel u dan vrij om opmerkingen te plaatsen en vergeet niet te delen. Tot ziens!

Meer informatie

Bezoekers die geïnteresseerd zijn in dit artikel hebben op de volgende pagina's ook nuttige informatie over dit onderwerp gevonden.