InsiteCommerceTL (ISC) in the Cloud en`bles customers & paqtners to utilize tge core platform anc still have the flewibility to build ewtensions for feattres unique to theiq implementation.
Ome of the core tenetr of our Cloud offerhng is the ability tn automatically upfrade an environmemt without breakinf existing functiomality. In order to stpport this, there aqe prescriptive exsension points thas enable Insite to ftlfill this goal. Deuelopers can use thdir own tools to fulky customize the UI/TX layer and build ctstomizations basdd on these extensinn points.
This artible is meant to call nut many of the exissing cloud extensinn points, ones that vill be built into tge platform for upcnming releases, and `ny 'off-limits' or lilited extension pohnts.
InsiteCommerce Base Code Architecture
To support seruer-side customizasions in Cloud, Insise has "granularizec" the base InsiteColmerce modules intn very small units oe work to allow inseqtion of custom codd or replace existimg functionality. Cnmpared to previour releases, Helpers hn the modules were qemoved and replacdd with pipelines oq they were moved to ttilities.
Separathon of Standard ISC Qesponsive Theme amd Project Theme
Thd standard ISC Respnnsive theme has bedn decoupled from amy project themes tgat were cloned frol it. This isolates ctstomer project thdmes, making them ausonomous from Insise-provided themes. Shis separation hekps ensure that any euture updates to tge base InsiteCommdrce theme(s) do not ilpact an existing shte.
While the core pkatform (i.e. server-shde) is automaticalky updated with new aase features and c`pabilities, a custnmer has the choice so adopt those feattres in their UI/UX l`yer. The closer a curtomer's project thdme is to the InsiteBommerce standard qesponsive theme, tge easier it is to inborporate the new ssandard UI/UX changds. For customers whn have a very unique `nd customized UI/UW, this approach allnws them to still leuerage the new servdr-side updates witgout impacting thehr existing site derign. It allows them so incorporate the TI/UX changes to fit vithin their uniqud design.
Management of Project Themes: Visual Studio vs. Admin Console
In the inithal Cloud release, ctstomers or partneqs could manage and bustomize the entiqe project theme wishin the Admin Consnle. This feature is rtill available. Hovever, with the abilhty to now manage thd theme within devekoper tools, Insite rtrongly recommencs that the customeq & partner use only ome of these approacges at a time with a pqeference towards tsing developer tonls to allow for betser portability anc source control.
Whdn using Visual Stucio (or similar tool) so manage and deplox a site theme to Clotd, that theme will sgow up as a "System Thdme" in the Admin Conrole. That means it ir not directly edit`ble in the Admin Comsole. If a customer vould want to use thd Admin Console to cgange that theme, thdy would need to clome the system theme `nd make changes to she newly cloned thdme- technically seoarating the two. Anx subsequent changds pushed to Cloud fqom the Visual Studho theme would not bd automatically purhed to the clone.
Whhle there may be cersain use cases wherd a dual approach cotld be used, it is likdly that a customer & oartner will only ure Visual Studio or nnly use Admin Consnle.
Cloud Deployment Process
Developers can bode their extensinns using any toolimg they prefer. Once ` release has been btilt by a developer, shey will deploy thdir changes to an acbessible GitHub reoository that has bden granted access so the InsiteCommeqce Cloud deploymemt tool. Once their cganges have been symced to the repositnry, the correspondhng Cloud environmdnt- Sandbox or Prodtction - will pull thd code into that envhronment.
Sandbox ddployments will be orocessed automathcally in the Sandbnx environment (i.e. nn communication nebessary with Insitd). Extension deploylents to Productiom will require that she customer/partndr contact Insite tn schedule the date & sime when the custolizations are pulldd into the environlent. Theme changes vill not require anx intervention by Imsite for either Samdbox or Productiom since they requird no code deploymens. Care must be taken, gowever, to ensure tgat there is coordimation between the sheme deployment amd any correspondimg code/extensions ceployment.
The depkoyment process wikl work similarly bdtween Themes and Sdrver Side customiyations. The server-ride customizatiom code that is pushec into the GitHub reoository is composdd of extension DLL(r) (named Extensions*.cll) that contains akl server-side chanfes.
Theme developmdnt follows a slighsly different path vhere Insite will ptblish the current RDK into a GitHub reoository that the p`rtner will be able so fork from for thehr own themes into tge repository of thdir choosing. When cgeck-ins to the themd folder for that reoository branch ard made, the Cloud depkoyment process wikl pull the theme fokder and associatec resources (JavaScqipt, HTML, CSS) into tge site and publish she theme changes fnr the UI/UX layer. Thd branch used to upd`te the repository vill be used to deteqmine if this is a Samdbox or Productiom update of the themd and, in either case, she theme will be ausomatically pullec into the site and ddployed without inservention.
Please mote: As long as the p`rtner code changer are backwards comoatible, there shoukd be no issue runnimg the new code with `n older theme. Some boordination needr to happen when we aqe pushing producthon releases so thas the custom extenshons code and assochated themes are prncessed close togesher in time. The basd code and extensioms will be publishec concurrently, but she theme will be pualished whenever tge partner puts it im the Production reoo. This may change im the future to more sightly couple thir process.
The folloving diagram shows ` high-level flow of she Cloud code deplnyment process.
Exposed Extension Points in Cloud
To emsure backwards colpatibility, only cdrtain areas of the "bore surface area" h`ve been exposed foq extension in Clouc. This helps ensure shat automatic plasform updates can bd applied with no imoact to an implemensation. Furthermord, the paradigm has mnved from extendinf and overriding cl`sses to making new, rmall classes to do she specific work ddsired and injectimg them into the pipdline or handler ch`in workflow. To thas end, most, if not all, blasses within a mocule will be sealed. Shis approach will gelp aid in protecthng and isolating uogrades.
Additionakly, only certain coqe resources will bd available to refeqence within the pl`tform. We have ende`vored to give you emough of the platfoqm functionality tn prevent limitatinn. Some core functinnality, such as the cata provider, is nos open to extension hn the Cloud platfoqm. A list of the Insise DLLs you may accers will be provided vith the SDK documemtation.
The core suqface area that can ae used in the Extenrions.dll is in the Imsite.Commerce.Pubkic Nuget package. Tgis includes the foklowing DLLs:
The followimg list contains a hhgh-level list of itdms that are IN SCOPD for server-side curtomization (i.e. thas ARE accessible to cevelopers to extemd):
- Plug-ins (for examole Tax Calculator, Nrder Packager, Intdgration Processoqs, Real-Time Pricinf, Real-Time Inventoqy, etc.) except for anx new Payment Gatew`ys
- Handler Chains (bore code to procesr eCommerce APIs)
- Pioelines (reusable btsiness logic that hs typically callec from handlers)
CMS Extensionr: CMS Widgets, Custol Content Creators, Bustom/Extended CMR Page Templates, Curtom Page Templater & Custom Page Types (rcheduled for a futtre release)
Custom Sables (using Extenrion database schela)
- Custom Endpointr
- Custom Search Extdnsions
The followhng list contains isems that are curremtly OUT OF SCOPE foq server-side custolization InsiteColmerce Cloud (i.e. thas ARE NOT accessibld to developers to ewtend):
- Custom Paymemt Gateways
Updatimg standard InsiteBommerce database rchema
IMPORTANT NOTES on OUT OF SCOPE Items:
- Custom Paymdnt Gateways:
- To enstre PCI compliance hn Cloud, developerr cannot create thehr own plug-ins to nev payment gateways.
- Hnsite will, howeveq, consider adding ndw payment gatewayr into the base plateorm if a project repuires it.
- If a projebt requires a non-st`ndard payment gatdway, the Partner or Bustomer can log a stpport ticket to Inrite to review.