@model CheckoutShippingMethodModel
@{
    Layout = "_ColumnsOne";

    //title
    NopHtml.AddTitleParts(T("PageTitle.Checkout").Text);
    //page class
    NopHtml.AppendPageCssClassParts("html-checkout-page");
    NopHtml.AppendPageCssClassParts("html-shipping-method-page");
}
<div class="page checkout-page shipping-method-page">
    @await Component.InvokeAsync(typeof(CheckoutProgressViewComponent), new { step = CheckoutProgressStep.Shipping })
    <div class="page-title">
        <h1>@T("Checkout.SelectShippingMethod")</h1>
    </div>
    <div class="page-body checkout-data">
        <div class="section shipping-method">
            <form asp-route="CheckoutShippingMethod" method="post">
                @await Component.InvokeAsync(typeof(WidgetViewComponent), new { widgetZone = PublicWidgetZones.CheckoutShippingMethodTop, additionalData = Model })

                @if (Model.DisplayPickupInStore && Model.PickupPointsModel.AllowPickupInStore)
                {
                    @await Html.PartialAsync("_PickupPoints", Model.PickupPointsModel)
                }

                @if (Model.PickupPointsModel == null || !Model.PickupPointsModel.PickupInStoreOnly)
                {
                    @if (!Model.Warnings.Any())
                    {
                        <ul class="method-list">
                            @for (var i = 0; i < Model.ShippingMethods.Count; i++)
                            {
                                var shippingMethod = Model.ShippingMethods[i];
                            <li>
                                <div class="method-name">
                                    <div class="form-check mr-sm-0 mb-sm-0 mb-0">
                                        <input class="form-check-input" id="shippingoption_@(i)" type="radio" name="shippingoption" value="@(shippingMethod.Name)___@(shippingMethod.ShippingRateComputationMethodSystemName)" checked="@shippingMethod.Selected" />
                                        <label class="form-check-label mb-0" for="shippingoption_@(i)">@T("Checkout.SelectShippingMethod.MethodAndFee", shippingMethod.Name, shippingMethod.Fee)</label>
                                    </div>
                                </div>
                                @if (!string.IsNullOrEmpty(shippingMethod.Description))
                                {
                                    <div class="method-description">
                                        @Html.Raw(shippingMethod.Description)
                                    </div>
                                }
                            </li>
                            }
                        </ul>
                        if (Model.NotifyCustomerAboutShippingFromMultipleLocations)
                        {
                            <div class="multiple-locations">
                                @T("Checkout.ShippingMethod.ShippingFromMultipleLocations")
                            </div>
                        }
                        <div class="buttons">
                            <button type="submit" name="nextstep" class="btn btn-primary button-1 shipping-method-next-step-button">@T("Checkout.NextButton")</button>
                        </div>
                    }
                    else
                    {
                        <div class="message-error alert alert-danger">
                            <ul>
                                @foreach (var warning in Model.Warnings)
                                {
                                    <li>@warning</li>
                                }
                            </ul>
                        </div>
                    }
                }

                @await Component.InvokeAsync(typeof(WidgetViewComponent), new { widgetZone = PublicWidgetZones.CheckoutShippingMethodBottom, additionalData = Model })
            </form>
        </div>
        <div class="section order-summary">
            <div class="title">
                <strong>@T("Checkout.OrderSummary")</strong>
            </div>
            @await Component.InvokeAsync(typeof(OrderSummaryViewComponent))
        </div>
    </div>
</div>
