Skip to content

Instantly share code, notes, and snippets.

@terryzamal
terryzamal / Feature.ProductExtension.config
Created November 29, 2019 06:02
Feature.ProductExtension
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<services>
<configurator type="SitecoreXC92.ProductExtension.RegisterDependencies.RegisterDependencies, SitecoreXC92.ProductExtension" />
</services>
</sitecore>
</configuration>
@terryzamal
terryzamal / RegisterDependencies.cs
Created November 29, 2019 06:00
RegisterDependencies Code
using Microsoft.Extensions.DependencyInjection;
using Sitecore.DependencyInjection;
using SitecoreXC92.ProductExtension.Controllers;
using SitecoreXC92.ProductExtension.Repositories;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace SitecoreXC92.ProductExtension.RegisterDependencies
@terryzamal
terryzamal / ProductExtension.cshtml
Created November 29, 2019 05:58
ProductExtension Code
@using Sitecore.XA.Foundation.MarkupDecorator.Extensions;
@using Sitecore.XA.Foundation.SitecoreExtensions.Extensions;
@model SitecoreXC92.ProductExtension.Models.ProductExtensionRenderingModel
@{
var messageSummaryError = "No Eroor";
}
@if (!string.IsNullOrEmpty(Model.ErrorMessage))
{
@terryzamal
terryzamal / ProductExtensionController.cs
Created November 29, 2019 05:57
ProductExtensionController code
using Sitecore.Commerce.XA.Foundation.Common.Context;
using Sitecore.Commerce.XA.Foundation.Common.Controllers;
using Sitecore.Commerce.XA.Foundation.Common.Providers;
using Sitecore.Commerce.XA.Foundation.Connect;
using Sitecore.DependencyInjection;
using Sitecore.Diagnostics;
using SitecoreXC92.ProductExtension.Models;
using SitecoreXC92.ProductExtension.Repositories;
using System;
using System.Collections.Generic;
@terryzamal
terryzamal / ProductExtensionRepository.cs
Created November 29, 2019 05:55
ProductExtensionRepository coding
using Sitecore.Commerce.XA.Feature.Catalog.Repositories;
using Sitecore.Commerce.XA.Foundation.Common.Context;
using Sitecore.Commerce.XA.Foundation.Common.Models;
using Sitecore.Commerce.XA.Foundation.Connect.Managers;
using Sitecore.Commerce.XA.Feature.Catalog.Models;
using Sitecore.Commerce.XA.Foundation.Common.Search;
using Sitecore.Commerce.XA.Foundation.Connect;
using SitecoreXC92.ProductExtension.Models;
using Sitecore.Diagnostics;
using Sitecore.Commerce.XA.Foundation.Catalog.Managers;
@terryzamal
terryzamal / IProductExtensionRepository.cs
Created November 29, 2019 05:55
IProductExtensionRepository Code
using Sitecore.Commerce.XA.Foundation.Connect;
using SitecoreXC92.ProductExtension.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace SitecoreXC92.ProductExtension.Repositories
{
public interface IProductExtensionRepository
@terryzamal
terryzamal / ProductExtensionRenderingModel.cs
Created November 29, 2019 05:53
ProductExtensionRenderingModel code
using Sitecore.Commerce.XA.Feature.Catalog.Models;
using Sitecore.Commerce.XA.Foundation.Common.Context;
using Sitecore.Commerce.XA.Foundation.Common.Models;
using Sitecore.Commerce.XA.Foundation.Common.Providers;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace SitecoreXC92.ProductExtension.Models
@terryzamal
terryzamal / extract-certificate-powershell.ps1
Created November 26, 2019 06:02
Extract the certificate using Powershell
#Script to export XC certificate from vagrant machine along with private key
$Password = "sitecore"; #password to access certificate after expting
$ExportPathRoot = "C:\Utilities"
$CertListToExport = Get-ChildItem -Path cert:\LocalMachine\My | ?{ $_.Thumbprint -Like "2030E8751EB6647C305B7EE2A4D917C7310AE59B" }
foreach($CertToExport in $CertListToExport | Sort-Object Subject)
{
# Destination Certificate Name should be CN.
# Since subject contains CN, OU and other information,
@terryzamal
terryzamal / Adding-CartLine
Created November 24, 2019 07:37
Adding cart Line to a Cart without Visitor Conext
public ManagerResponse<CartResult, Cart> AddLineItemsToCartWithoutVisitorContext(CommerceStorefront storefront, Cart cart, IEnumerable<CartLineArgument> cartLines)
{
List<CartLine> cartLineList = new List<CartLine>();
foreach (CartLineArgument cartLine in cartLines)
{
Decimal quantity = cartLine.Quantity;
CommerceCartLine commerceCartLine1 = new CommerceCartLine(cartLine.CatalogName, cartLine.ProductId, cartLine.VariantId == "-1" ? (string)null : cartLine.VariantId, quantity);
cartLineList.Add((CartLine)commerceCartLine1);
if (cartLine.SubLines.Any<CartLineArgument>())
{
@terryzamal
terryzamal / Load XC Cart
Created November 24, 2019 07:34
Below method is used to fetch the cart from XC
public CartResult LoadCart( string shopName, string cartName, string customerId, bool recalculateTotals)
{
CartResult cartResult = _cartServiceProvider.LoadCart((LoadCartRequest)new LoadCartByNameRequest(shopName, cartName, customerId));
CommerceCart cart = cartResult.Cart as CommerceCart;
List<string> stringList = new List<string>();
if (cart != null && cart.OrderForms.Count > 0)
stringList.AddRange((IEnumerable<string>)cart.OrderForms[0].PromoCodes ?? Enumerable.Empty<string>());
cartResult.Cart.GetProperties().Add("PromoCodes", (object)stringList);
return cartResult;
}