We've been trying for quite some hours to make a script that adds products to the basket/order from C#.
What we want to do, is to fetch a querystring with the name of the product to add, and then add it. We haven't got this to work yet.
Please check the code below:
using Dynamicweb;
using Dynamicweb.eCommerce.Orders;
using Dynamicweb.eCommerce.Frontend;
using Dynamicweb.eCommerce.Products;
namespace CustomModules.BasketMagic
{
public class OrderTemplateExtender1 : OrderTemplateExtender
{
public override void ExtendTemplate(Dynamicweb.Templatev2.Template template, TemplateExtenderRenderingState renderingState)
{
if (renderingState == TemplateExtenderRenderingState.After)
{
//string CartMagic = Base.ChkString(Base.Request("CartMagic"));
if (Base.ChkString(Base.Request("CartMagic")) == "true")
{
try
{
Base.w("CART MAGIC!");
string ProductID = Base.ChkString(Base.Request("CartMagicProductID"));
int Quantity = Base.ChkInteger(Base.Request("CartMagicQuantity"));
string isLogo = Base.ChkString(Base.Request("CartMagicIsLogo"));
string isLeaflet = Base.ChkString(Base.Request("CartMagicIsLeaflet"));
string isGreeting = Base.ChkString(Base.Request("CartMagicIsGreeting"));
string isCharityPrint = Base.ChkString(Base.Request("CartMagicCharityPrint"));
foreach (Dynamicweb.eCommerce.Orders.OrderLine ord in this.Order.OrderLines)
{
Base.w("John: " + ord.ProductName);
}
this.Order.OrderLines.Clear();
Product olCardProduct = new Product();
foreach (Product p in Dynamicweb.eCommerce.Products.Product.getAllProducts())
{
if (p.ID == "PROD18"){
olCardProduct = p;
}
}
OrderLine olCard = new OrderLine(olCardProduct);
olCard.Quantity = Quantity;
olCard.Save();
Base.w(olCard.Quantity);
OrderLineCollection olc = new OrderLineCollection();
olc.Add(olCard);
olc.Save(this.Order.ID);
this.Order.OrderLines.Add(olc);
this.Order.Save();
Base.w(this.Order.OrderLines.Count);
foreach (Dynamicweb.eCommerce.Orders.OrderLine ord in this.Order.OrderLines)
{
Base.w("Product Name: " + ord.ProductName);
}
////this.Order.OrderLines.Clear();
////Indæs OrderLineCollection
//OrderLineCollection olc = new OrderLineCollection();
////Indlæs orderline for kortet
//OrderLine olCard = new OrderLine(new Product(ProductID));
//olCard.Quantity = Quantity;
//olc.Add(olCard);
//if (isLogo != "" || isGreeting != "" || isCharityPrint != "")
//{
// //Indlæs orderline for opstartsgebyr
// OrderLine olStartPay = new OrderLine(new Product("PROD48"));
// olStartPay.Quantity = 1;
// olc.Add(olStartPay);
// //Indlæs orderline for gebyr per kort
// OrderLine olExtraPerCard = new OrderLine(new Product("PROD18"));
// olExtraPerCard.Quantity = Quantity;
// olc.Add(olExtraPerCard);
//}
//else if (isLeaflet != "")
//{
// //Indlæs orderline for indlægssedler
// OrderLine olLeaflet = new OrderLine(new Product("PROD49"));
// olLeaflet.Quantity = Quantity;
// olc.Add(olLeaflet);
//}
//this.Order.OrderLines.Add(olc);
//this.Order.OrderLines.Save(this.Order.ID);
//this.Order.Save();
}
catch (System.Exception ex)
{
Base.w(ex.Message);
}
}
else {
}
}
else
{
//TODO: AFTER THE ORDER WAS RENDERED
}
}
}
}