Sitefinity 7.0 options to add multiple shipping address like

Posted by Community Admin on 05-Aug-2018 12:17

Sitefinity 7.0 options to add multiple shipping address like Amazon

All Replies

Posted by Community Admin on 03-Sep-2014 00:00

Hi,

I have a requirement to customize sitefinity such that logged in user can have option for adding/saving multiple shipping address. This option is similar to amazon.com of which I have attached the screen shot.

Please let me know if there is a way to make it possible in Sitefinity 7.0.

P.S : Duplicate post as sitefinity gives me weird 500 error whenever I do save changes.

Thanks

Praneeth

Posted by Community Admin on 08-Sep-2014 00:00

Hi,

Out of the box the sitefinity checkout does not have functionality to facilitate multiple addresses to choose from. However, the customer can have multiple addresses associated and the checkout with use the address marked as primary. You can create a widget that will allow the customer to add additional addresses by using the api:Creating customer addresses. On the checkout page itself, the primary address will be filled in when the user goes to checkout. You can add an auxiliary widget that will display all the addresses below the checkout. If the user chooses a different address, you can set it as primary and refresh the page, this will fill in the newly selected address.

I hope this idea is helpful.

Regards,
Atanas Valchev
Telerik

 
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal and vote to affect the priority of the items
 

Posted by Community Admin on 08-Sep-2014 00:00

Thank you for your reply. I did not understand by auxilary widget. Did you mean I create a new usercontrol/widget and update the checkout template for shipping and add the user control or is there any way to put a step in between checkout template and use the new widget.

Thanks

Praneeth

Posted by Community Admin on 11-Sep-2014 00:00

Hi,

My idea was to have a widget that is not part of the checkout widget itself. A better approach might be to create a custom checkout widget that will allow you to display all addresses for the user and even add  the option to add further addresses. This approach will allow you more control over this functionality and the checkout process. You can find a sample custom checkout on Github:https://github.com/esitefinity/Sitefinity-Custom-Checkout/tree/master/Telerik.Sitefinity.Samples.Ecommerce.Checkout

Regards,
Atanas Valchev
Telerik

 
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal and vote to affect the priority of the items
 

Posted by Community Admin on 12-Sep-2014 00:00

Thank you for your reply. I ended up creating a widget and dropping inside the shipping method widget template and it works. 

 I could successfully acheived Edit, Delete address functionality. I could also acheive Deliver to this address functionality, except for the issue i.e. when user clicks on deliver to the address , the cart order address should be prepopulated and user should be sent to next screen. Code snippet is below:

  

 

 protected void rptCustomerAddress_OnItemCommand(object source, RepeaterCommandEventArgs e)
       
            // ReSharper disable once AssignNullToNotNullAttribute
            Guid id = new Guid(e.CommandArgument as string);
            CustomerAddress custAdd = _customerAddresses.FirstOrDefault(a => a.Id == id);
           
            if (e.CommandName == "Deliver")
           
                GetShiipingAddressProperties(custAdd);              
                RadMultiPage checkoutMultiPage = Parent.Parent.Parent.Parent.FindControl("checkoutMultiPage") as RadMultiPage;
                if (checkoutMultiPage != null)
               
                    checkoutMultiPage.SelectedIndex = 1;

                    RadPageView shippingInformationPageView = Parent.Parent.Parent.Parent.FindControl("shippingInformationPageView") as RadPageView;
                    if (shippingInformationPageView != null)
                   
                        shippingInformationPageView.Selected = false;
                   

                    RadPageView shippingOptionsView = Parent.Parent.Parent.Parent.FindControl("shippingOptionsView") as RadPageView;
                    if (shippingOptionsView != null)
                   
                        shippingOptionsView.Selected = true;
                   

               

                RadTabStrip radTabStrip = Parent.Parent.Parent.Parent.FindControl("checkoutTabStrip") as RadTabStrip;
                if (radTabStrip != null)
               
                    // shipping options screen;
                    radTabStrip.Tabs[0].Selected = false;
                    radTabStrip.Tabs[0].PageView.Selected = false;
                    radTabStrip.SelectedIndex = 1;
                    radTabStrip.Tabs[1].Selected = true;
                    radTabStrip.Tabs[1].PageView.Selected = true;

                   // radTabStrip.DataBind();
               
             
            else if (e.CommandName == "Delete")
           
                DeleteCustomerAddress(id);
                GetCustomerAddressandBindData();

           
            else if (e.CommandName == "Edit")
           
                GetShiipingAddressProperties(custAdd);
           
       

 

This thread is closed