pconnector

Shopware 6

Een pCon-productconfigurator in Shopware 6

Een Shopware-plugin die je fabrikantcatalogus uit pCon importeert, de 3D-configurator op de productpagina laadt, en wat de klant samenstelde in de order wegschrijft. Hij installeert via Composer als elke andere plugin, en hij heeft geen buildstap op je server nodig.

Wat er op de order belandt

Dit is het deel dat bepaalt of een configurator speelgoed is of een verkoopinstrument. Per samengestelde regel krijgt Shopware:

  • Het samengestelde artikelnummer van de fabrikant, dat de configuratie volgt en niet het Shopware-product: kies een andere breedte en het nummer verandert mee
  • De samengestelde prijs, in de btw-vorm die de winkelwagen zelf gebruikt, zodat een nettoprijs uit pCon niet stil een brutoprijs wordt
  • De OFML-variantcode en de kenmerkenlijst: elke eigenschap die de klant koos
  • De onderdelen onder de regel, elk met hun eigen nummer en aantal, zodat inkoop ze kan bestellen
  • De render als afbeelding op de regel, zodat de klant ziet wat hij bouwde en niet de catalogusfoto van het basisartikel
  • Een link die precies die configuratie 24 uur lang heropent, en die de regel vervangt in plaats van er een tweede naast te zetten

Elke configuratie is een eigen regel. Twee bureaus uit hetzelfde product blijven twee regels met twee prijzen, en dat is het verschil tussen een order die je kunt uitleveren en een order waarover iemand moet bellen.

Hoe de plugin werkt

  1. Requiren en één sleutel invullen

    Een private Composer-repository, die je eenmalig aan je project toevoegt. Daarna is het een gewone plugin: refresh, installeren, activeren. Je vult de sleutel in die je in het portaal hebt aangemaakt en de verbinding meldt zichzelf aan.

  2. Importeren uit de echte catalogus

    Blader in de beheeromgeving door de boom van de fabrikant, kies artikelen en importeer ze als Shopware-producten: titel, specificaties, prijs, de render als productafbeelding, de kenmerken als eigenschappen waarop je kunt filteren, en het merk als echte fabrikant.

  3. De productpagina stelt de configurator samen

    Er zit niets vast in het product. De pagina bouwt de configurator-URL bij het renderen uit de artikelreferentie en de instance die centraal bij je account staat, dus van instance wisselen is een instelling en geen datamigratie.

  4. In de winkelwagen, ondertekend

    De configurator post de OCI-velden naar een ondertekende route op je eigen shop. De plugin controleert de handtekening, controleert de prijs, importeert de render en zet de bezoeker in zijn eigen wagen met de configuratie op de regel.

Wat het van je omgeving vraagt: Shopware 6.7, zelf gehost en dus niet op Shopware Cloud, op PHP 8.2 of nieuwer, en max_input_vars verhoogd naar 5000. Dat laatste is een hostinginstelling en geen plugininstelling, en het bepaalt of een configuratie van twintig artikelen of meer in één stuk de wagen haalt.

Architectuur

Gebouwd met de constructies van Shopware zelf

Hier hoor je precies over te zijn, want het bepaalt wat een update je later kost. Geen wijzigingen in de kern, geen vervangen templates, en niets waar een Shopware-bureau ons op zijn woord voor moet geloven.

De wagen houdt de prijs

Een cart-processor zet de samengestelde prijs bij elke herberekening terug op de regel, in de btw-vorm van die wagen. Shopware rekent bij elke paginaweergave opnieuw en nog een keer bij het plaatsen van de order, dus dit is het verschil tussen een prijs die blijft staan en een die terugvalt op de catalogus.

Custom fields, geen tabel ernaast

De artikelreferentie en de handmatige URL zijn custom fields op het product, aangemaakt bij het installeren. Zichtbaar in de beheeromgeving, met de hand aan te passen, en weer weg als je de plugin verwijdert.

Eigenschappen en een echte fabrikant

Kenmerken worden eigenschappen, dus filteren werkt op de configuratieopties zelf. Het merk wordt de fabrikant die Shopware al kent, in plaats van een categorie die voor fabrikant speelt.

Geen buildstap op je server

De beheermodule wordt voorgecompileerd meegeleverd en de opmaak van de storefront maakt Shopware in PHP, dus er staat geen Node op je productieserver en er is na een update niets te herbouwen.

Snelheid en vertrouwen

Je productpagina blijft in de cache

Shopware cachet productpagina's, en die cache is een groot deel van de reden dat de shop snel is. Een configurator hoort niet de reden te zijn dat je hem opgeeft.

Niets persoonlijks in de pagina

  • De configurator draait op het domein van pCon, dus als hij terugpost gaat de sessiecookie van de bezoeker niet mee
  • Het gebruikelijke antwoord is om de sessie van de bezoeker in de pagina te zetten, en daarmee gaat de productpagina voor iedereen uit de HTTP-cache
  • Hier staat er niets bezoekerspecifieks in de pagina. De overdracht loopt via een eenmalige sleutel, dus de pagina blijft cachebaar en geen bezoeker kan in de wagen van iemand anders belanden

Wat er geweigerd wordt

  • Een prijs zonder geldige handtekening van EasternGraphics. Standaard komt er niets in de wagen wat pCon niet heeft ondertekend
  • Een vervalste of verlopen link naar de winkelwagen, gecontroleerd voordat er iets aan de wagen verandert
  • Een configuratie die te groot is voor PHP om in één keer te ontvangen, geweigerd met een melding in plaats van als halve configuratie in de wagen voor een te lage prijs

De import loopt server-naar-server achter een sleutel die nooit in de browser komt, de configurator is toegestaan op grond van een domeinwhitelist, en de winkelwagen krijgt een handtekening die je eigen shop controleert. Dat zijn drie gescheiden kanalen die nooit een sleutel delen. Hoe dat in elkaar zit.

Updates lopen via Composer

De plugin staat niet in de Shopware Store en heeft dus een eigen kanaal: een private Composer-repository die je eenmalig aan je project toevoegt. Daarna toont composer outdated nieuwe versies en installeert composer update ze, net als elk ander pakket, en Composer controleert de checksum voordat hij iets uitpakt.

Het downloadadres verloopt met opzet niet. Composer schrijft het in je composer.lock, en een link die na een dag doodging zou de deploy breken die je volgende maand draait uit een lockfile van vandaag. Er zit geen licentiesleutel in de plugin, geen aftelklok en geen killswitch: loopt een abonnement af, dan zegt de plugin dat tegen de beheerder en blijft de shop verkopen.

Wat het kost

Shopware-verbinding

€299per maand, per shop

Of €2.990 per jaar, en dat is tien maanden. Elke volgende shop op een eigen domein is €179 per maand. Twee storefronts op één domein zijn één verbinding, want een sleutel hangt aan een domein en daar volgt de telling op.

  • Catalogusimport en de configurator
  • Plugin-updates en support
  • Testomgevingen zijn gratis en worden als zodanig gemarkeerd

Onboarding, eenmalig

€2250eenmalig

Installatie, je aanvraag bij EasternGraphics begeleiden, de artikelkoppeling inrichten en de eerste import nalopen.

Alle bedragen zijn exclusief btw en exclusief de pCon-licentie die je bij EasternGraphics afneemt. Er is geen proefperiode: dit is een dienst met een implementatie, geen app die je aanzet.

Wat er eerst geregeld moet zijn

Je hebt een eigen pCon.ui-instance van EasternGraphics nodig, en zij moeten het domein van je storefront met de hand op de whitelist zetten. Dat zijn één live domein plus twee ontwikkeldomeinen, geen wildcards, en elk subdomein apart. Vraag om een shop-instance en niet om een lead-instance: een lead-instance heeft geen knop naar de winkelwagen, dus dan kan er niets bij je shop aankomen. Je fabrikanten moeten daarnaast OFML-data publiceren en hun catalogus met jouw account hebben gedeeld. Weet je niet of ze dat doen, dan is dat precies de vraag om aan ons te stellen.