Winkelkarretje

Uw winkelwagen is momenteel leeg

Uw winkelwagen is momenteel leeg

Voordat u naar de kassa gaat, moet u een aantal producten toevoegen aan uw winkelwagen. U vindt een heleboel interessante producten op onze winkel pagina.

Weiter winkelen

Online digitale goederen aanbieden - Amazon doet het met eBooks, op Beatport krijg ik de laatste muziekaanbiedingen en in de AppStore van mijn smartphone bieden Apple, Google of Microsoft mij muziek en software downloads aan, op elk moment en elke plaats. De verkoopmarkt voor downloadproducten is booming; het aanbod is immers overal verkrijgbaar en vaak goedkoper dan in een winkel, die vaak alleen met de auto te bereiken is.


Er ontstaat een trend die sterk neigt naar "digitaal winkelen" en mobiel winkelen.


Aangezien OXID eShop versie 4.6.0 de optie "immateriële producten" biedt, is het eenvoudig om muziek, eBooks, video's of games digitaal te koop aan te bieden in uw eigen winkel. Software kan ook prachtig in de winkel worden verkocht. Het uploaden van de betaalde downloadbestanden gebeurt via de winkeladministratie of, in het geval van grotere datavolumes, met het FTP-programma. Als de bestanden via FTP worden overgedragen, moeten ze worden toegewezen aan het overeenkomstige artikel in het Shopbeheer. U kunt het downloadartikel dan in de winkel kopen.

Oxid Standard Download Produktmanagement

Op het eerste gezicht lijkt alles eenvoudig en gemakkelijk te beheren. Als er echter sprake is van frequente bestandswijzigingen of updates, zoals bij websoftwareproducten, kan het onderhoud en de voorziening van de producten met hulpmiddelen aan boord veel tijd in beslag nemen. Tijd die elders ontbreekt. Er moet een eenvoudiger manier worden gevonden om producten te leveren.


OXID betaalde downloads met Git versiebeheer

Wanneer software in teamverband wordt ontwikkeld, ontkom je vroeg of laat niet aan versiebeheer. Op Netensio gebruiken we het populaire gratis versiebeheersysteem git. Git beheert onze producten als tags (stabiele versies) enerzijds en de huidige ontwikkelaarsversies anderzijds. Deze constructie is in een soortgelijke vorm te vinden in een groot deel van de OXID-ontwikkelaarsgemeenschap. De git gemeenschap is erg groot geworden, veel ontwikkelaars versie van hun software en zelfs hele software systemen met het vrije versiebeheer.

Laten we de situatie nog eens verduidelijken. Wij hebben een winkelsysteem dat downloadproducten kan aanvaarden en afgewerkte softwareproducten zitten in ons versiebeheer. We zijn dus op zoek naar een gemeenschappelijke en handige manier om gegevens uit git te halen en om te zetten in een OXID-downloadproduct.

OXID / GIT artikel download module

Ik besloot het te integreren als een OXID-module-uitbreiding. De bestaande functionaliteit mag door mijn module op geen enkele manier worden aangetast en ik heb naast de voorziening als open source software een optie nodig om .php bestanden te versleutelen met behulp van Ioncube Encoder. Ik ga alleen heel oppervlakkig in op de codering van de software, ik ben ook nog niet tevreden over sommige delen van de module, vandaar dat ik er op dit moment van afzie deze te publiceren. In dit artikel geef ik voorrang aan de checkout van de git tag en de overdracht naar OXID als ZIP archief.

Om te voorkomen dat elke keer de URL van de repository en de login van de git gebruiker moeten worden ingevoerd om een downloadproduct van git te genereren, maak ik een Deployment Plan object, een nieuwe database tabel voor opgeslagen deployment profielen en een OXID Admin View inclusief de bijbehorende template. Met een deployment profiel bedoel ik een opgeslagen set instellingen die nodig zijn om een downloadproduct van git te genereren. De volgende schermafbeelding toont het invoermasker van het admin tabblad voor het aanmaken van een git deployment profiel voor OXID artikelen.

OXID / GIT Download Artikel Deployment

Ik heb bewust gekozen voor het aanmaken van profielen per artikel om externe git servers met verschillende gebruikers te kunnen aanspreken. In principe kan elke repository op Github als downloadproduct in de OXID eShop worden geladen. Het inzetprofiel maakt ook de activering van de eerder genoemde Ioncube-encoder mogelijk. Maar dat negeren we voorlopig. Zodra we een deployment profiel voor het artikel hebben aangemaakt, kunnen we ons deployment proces starten door te klikken op Get repo data. De volgende lijst laat precies zien wat deze knop doet:

  • De git tag/branch die in het deployment profiel staat, wordt gekloond in een tijdelijke directory.
  • OXID eShop ruimt de gekloonde map op uit de eigen mappen van git.
  • De temp directory wordt desgewenst met Ioncube versleuteld.
  • De tijdelijke directory krijgt desgewenst het oxarticle__oxbestand.
  • De map wordt als ZIP-archief verplaatst naar de map /out/downloads/uploads.
  • Het zip-bestand wordt verwerkt als een nieuw downloadproductbestand voor het artikel en opgeslagen als een downloadproducthash.
  • Het zip-bestand in de map out/downloads/uploads wordt uit de module verwijderd.

OXID / GIT Deployment artikel actueel houden

Het downloadproduct is onmiddellijk beschikbaar in de winkel aan het einde van het proces en wordt aan het artikel gehecht, net alsof het zip-bestand handmatig was geüpload. Het mooie van deze oplossing is dat zodra een nieuwe productrelease in git is getagd, je alleen de tagnaam in het bestaande deployment profiel in Oxid hoeft aan te passen en je kunt de huidige git tag deployen als download product.

Wat gebeurt er als u klikt op: "Repo-gegevens ophalen"?

Het uitrolproces voert een eenvoudige "git clone -b " uit naar een tijdelijke directory die is opgegeven in de globale module-instellingen. De directory wordt dan opgeschoond volgens de inzetregels en gevuld met de aanvullende gegevens. Zodra alle gegevens van het inzetprofiel zijn verzameld, wordt gecontroleerd of gecodeerd of open source naar het artikelobject moet worden overgebracht. Na de overdracht naar het oxide-artikel worden de tijdelijke mappen en gegevens verwijderd om opslagruimte te besparen. Het volgende screenshot geeft een overzicht van de module-instellingen in Oxid.

Oxid Moduleinstellungen GIT Download-Produkte

Als u dit artikel leuk vond of suggesties, vragen of codevoorbeelden wilt zien, neem dan contact op via de opmerkingen en vergeet niet te delen. Tot dan!

Meer informatie

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

Gerelateerde blog posts

Ontdek meer interessante blog posts.