Skip to content

Instantly share code, notes, and snippets.

@skttl
Created December 9, 2016 12:50
Show Gist options
  • Save skttl/ece75f645bb71712a1a0dda7a214c98d to your computer and use it in GitHub Desktop.
Save skttl/ece75f645bb71712a1a0dda7a214c98d to your computer and use it in GitHub Desktop.
Sådan installeres uCommerce på Umbraco Cloud

Sådan installeres uCommerce på Umbraco Cloud

For at installere uCommerce på Umbraco Cloud lokalt, skal du oprette en tom MSSQL database uCommerce kan arbejde i lokalt. Det skyldes at uCommerce ikke fungerer med SQLCE som Umbraco Cloud bruger lokalt.

I din web.config tilføjer du under connectionstrings

<add name="uCommerce" connectionString="server=YOUR_SERVER;database=YOUR_DATABASE;user id=YOUR_USER;password=YOUR_PASSWORD" providerName="System.Data.SqlClient" />

Start herefter Umbraco up, og navigér til Developer > Packages, hvor du installerer uCommerce fra. Note: Det er muligt at installerer Nuget pakker i Umbraco Cloud - vi har blot ikke prøvet det før, så derfor gælder den her gammeldags pakkeinstallerings måde.

Når installeren er færdig, skulle uCommerce gerne være installeret.

Kontrollér at du kan tilgå uCommerce sektionen i Umbraco, samt se produktredigeringssider og definitionsredigeringssider. Det er typisk der der er problemer.

Du kan nu deploye ændringerne til dev, og senere til live. Bemærk, ved første request efter første deploy til dev og live, er løsningen lidt længere tid om at starte op. Det skyldes at uCommerce opretter de nødvendige tabeller i miljøets database for at virke.

Hvis du ikke kan finde uCommerce i Umbraco, skal du slå sektionen til på de nødvendige brugere under Developer > Users.

Hvis det ikke virker, så kontroller følgende:

Web.config ændringer

Installleren skal oprette nogle nye elementer i web.config filen. Det er ikke altid dette lykkes. Kontrollér at følgende findes i web.config:

/configuration/configSections:

<sectionGroup name="commerce" type="System.Configuration.ConfigurationSectionGroup">
  <section name="catalogConfiguration" type="UCommerce.Infrastructure.Configuration.CatalogConfigurationSection, UCommerce.Infrastructure"/>
  <section name="runtimeConfiguration" type="UCommerce.Infrastructure.Configuration.RuntimeConfigurationSection, UCommerce.Infrastructure"/>
  <section name="securityConfiguration" type="UCommerce.Infrastructure.Configuration.SecurityConfigurationSection, UCommerce.Infrastructure"/>
</sectionGroup>
<section name="syscache"
  type="NHibernate.Caches.SysCache.SysCacheSectionHandler, NHibernate.Caches.SysCache, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=6876f2ea66c9f443"
  requirePermission="false"/>

/configuration/umbracoConfiguration:

<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/ucommerceapi" />
<add key="Raven/AnonymousAccess" value="All"/>

/system.web/pages/controls:

<add tagPrefix="commerce" namespace="UCommerce.Presentation.Web.Controls" assembly="UCommerce.Presentation"/>

/system.web/httpModules OG /system.webServer/modules:

<add name="PerRequestLifestyle" type="Castle.MicroKernel.Lifestyle.PerWebRequestLifestyleModule, Castle.Windsor, Version=3.3.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc"/>
<add name="UCommerceInitializeModule" type="UCommerce.Web.UI.InitializeAppsModule, UCommerce.Admin"/>

Bemærk, tjek versionsnummeret på Castle.Windsor i /bin/ucommerce/

/system.web/httpHandlers OG /system.webServer/handlers:

<add verb="*" path="PaymentRequest.axd" type="UCommerce.Transactions.Payments.PaymentRequestForm, UCommerce"/>
<add verb="*" path="PaymentProcessor.axd" type="UCommerce.Transactions.Payments.PaymentProcessor, UCommerce"/>

/configuration:

  <commerce>
    <runtimeConfiguration enableCache="true"
      cacheProvider="NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache, Version=4.0.0.4000, Culture=neutral, PublicKeyToken=6876f2ea66c9f443"
      connectionString="(auto)"/>
    <catalogConfiguration defaultCultureCode="en-US" enforceCategoryNameUniquenessWithinCatalogs="true"/>
    <securityConfiguration enable="true"/>
  </commerce>
  <syscache>
    <!-- Cache catalog objects for 60 mins before refreshing -->
    <cache region="CatalogFoundation" expiration="3600" priority="5"/>
    <cache region="MarketingFoundation" expiration="3600" priority="5"/>
    <cache region="SecurityFoundation" expiration="3600" priority="5"/>
    <cache region="Backend" expiration="3600" priority="5"/>
  </syscache>
  <location path="ucommerceapi">
    <system.web>
      <httpHandlers>
        <add path="*" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"/>
      </httpHandlers>
    </system.web>
    <system.webServer>
      <modules runAllManagedModulesForAllRequests="true">
        <add name="UCommerceAppsInitializeModule" type="UCommerce.Web.UI.InitializeAppsModule, UCommerce.Admin"/>
        <add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core, Version=1.8.2.1, Culture=neutral"/>
      </modules>
      <validation validateIntegratedModeConfiguration="false"/>
      <handlers>
        <add path="*" name="ServiceStack.Factory" type="ServiceStack.WebHost.Endpoints.ServiceStackHttpHandlerFactory, ServiceStack" verb="*"
          preCondition="integratedMode" resourceType="Unspecified" allowPathInfo="true"/>
      </handlers>
    </system.webServer>
  </location>

Kontrollér config transforms

uCommerce installerer nogle config transforms, der skal sørge for at fjerne "uCommerce" connection stringen fra dev, staging og live miljøer, så dataene bliver installeret i miljøernes egne databaser.

Der skal derfor ligger tre filer med navnene web.development.xdt.config, web.staging.xdt.config og web.live.xdt.config i roden af websitet.

Indholdet af filerne skal være:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <!--uCommerce section begins. Version:7.2.2.16293-->
  <connectionStrings>
    <add xdt:Locator="Condition(@name='uCommerce')" xdt:Transform="Remove" />
  </connectionStrings>
  <!--uCommerce section ends-->
</configuration>

Bemærk, det enkelte projekt kan godt have andre config transforms - de vil være i de samme filer, så pas på med at fjerne noget, hvis filen er der i forvejen.


####Slå UaaS addon til uCommerce kommer med et præ-installeret plugin, der enabler funktionalitet til at flytte produktdefinitioner og andet metadata (dog ikke shops, kategorier og produkter) mellem miljøer. Den er per default ikke slået til, dette skal gøres manuelt.

Find mappen /umbraco/ucommerce/apps/UaaS.disabled, og omdøb den til UaaS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment