2016-07-25 8 views
-2

私はadd a step to the Kentico 9 e-Commerce Checkout processにしようとしています。 私はページ>特別ページ>チェックアウトに行き、私は新しいチェックアウトページを追加しました。私はEntityUseコードと呼ばれるKenticoに新しいWebパーツを追加しました。電子商取引追加チェックアウトステップ

私はステップを追加すると、私はこのエラーを取得する:ここで

Message: Unable to cast object of type 'ASP.cmsmodules_ecommerce_controls_shoppingcart_shoppingcartnonprofit_ascx' to type 'CMS.PortalControls.CMSAbstractWebPart'.

は私のコードです:

public partial class CMSModules_Ecommerce_Controls_ShoppingCart_ShoppingCartNonProfit : ShoppingCartStep 
{ 
    #region "ViewState Constants" 

    private const string SHIPPING_OPTION_ID = "OrderShippingOptionID"; 
    private const string PAYMENT_OPTION_ID = "OrderPaymenOptionID"; 
    private const string FEDERAL_TAX_ID = "FederalTaxID"; 

    #endregion 


/// <summary> 
/// On page load. 
/// </summary> 
/// <param name="sender">Sender.</param> 
/// <param name="e">Event arguments.</param> 
protected void Page_Load(object sender, EventArgs e) 
{ 
    lblTitle.Text = "Tax Exempt Order?"; 

    var fedTaxId = this.ShoppingCart.ShoppingCartCustomData.GetValue("federaltaxid"); 
    var entityUse = this.ShoppingCart.ShoppingCartCustomData.GetValue("entityusecode"); 
    if (fedTaxId != null) 
    { 
     tbTaxID.Text = fedTaxId.ToString(); 
    } 

    if (entityUse != null) 
    { 
     tbEntityUseCode.Text = entityUse.ToString(); 
    } 
} 

/// <summary> 
/// Back button actions 
/// </summary> 
public override void ButtonBackClickAction() 
{ 
    // Save the values to ShoppingCart ViewState 
    // this.ShoppingCartControl.SetTempValue(SHIPPING_OPTION_ID, this.drpShipping.SelectedValue); 
    //this.ShoppingCartControl.SetTempValue(PAYMENT_OPTION_ID, this.drpPayment.SelectedValue); 

    this.ShoppingCartControl.SetTempValue(FEDERAL_TAX_ID, tbTaxID.Text); 
    base.ButtonBackClickAction(); 
} 


public override bool ProcessStep() 
{ 
    try 
    { 
     this.ShoppingCart.ShoppingCartCustomData.SetValue("federaltaxid", tbTaxID.Text); 
     this.ShoppingCart.ShoppingCartCustomData.SetValue("entityusecode", tbEntityUseCode.Text); 


     // Update changes in database only when on the live site 
     if (!ShoppingCartControl.IsInternalOrder) 
     { 
      ShoppingCartInfoProvider.SetShoppingCartInfo(ShoppingCart); 
     } 
     return true; 
    } 
    catch (Exception ex) 
    { 
     lblError.Visible = true; 
     lblError.Text = ex.Message; 
     return false; 
    } 
} 
} 

答えて

2

正しい基本クラスを継承していないように思え。 ShoppingCartStepは、古いショッピングカートモデルのチェックアウトステップに使用されます。 Webパーツの基本クラスを使用する必要があります。代わりにCMSCheckoutWebPartを使用することをおすすめします。いくつかの基本的なチェックアウトWebパーツを青いプリントとして使用することができます。それらは〜CMS \ CMSWebParts \ ecommerce \ Checkoutにあります。

+0

ありがとうございました!私はこのKBを作成しました:http://support.cloudcartconnector.com/hc/en-us/articles/212229983-Kentico-Avalara-Entity-Use-Codes –

関連する問題