Try your search with a different keyword or use * as a wildcard.
using Nop.Core.Domain.Shipping;
using Nop.Services.Plugins;
using Nop.Services.Shipping;
using Nop.Services.Shipping.Tracking;
namespace Nop.Tests.Nop.Services.Tests.Shipping;
public class FixedRateTestShippingRateComputationMethod : BasePlugin, IShippingRateComputationMethod
{
private decimal GetRate()
{
var rate = 10M;
return rate;
}
/// <summary>
/// Gets available shipping options
/// </summary>
/// <param name="getShippingOptionRequest">A request for getting shipping options</param>
/// <returns>Represents a response of getting shipping rate options</returns>
public Task<GetShippingOptionResponse> GetShippingOptionsAsync(GetShippingOptionRequest getShippingOptionRequest)
{
ArgumentNullException.ThrowIfNull(getShippingOptionRequest);
var response = new GetShippingOptionResponse();
response.ShippingOptions.Add(new ShippingOption
{
Name = "Shipping option 1",
Description = string.Empty,
Rate = GetRate()
});
response.ShippingOptions.Add(new ShippingOption
{
Name = "Shipping option 2",
Description = string.Empty,
Rate = GetRate()
});
return Task.FromResult(response);
}
/// <summary>
/// Gets fixed shipping rate (if shipping rate computation method allows it and the rate can be calculated before checkout).
/// </summary>
/// <param name="getShippingOptionRequest">A request for getting shipping options</param>
/// <returns>Fixed shipping rate; or null in case there's no fixed shipping rate</returns>
public Task<decimal?> GetFixedRateAsync(GetShippingOptionRequest getShippingOptionRequest)
{
ArgumentNullException.ThrowIfNull(getShippingOptionRequest);
return Task.FromResult<decimal?>(GetRate());
}
/// <summary>
/// Get associated shipment tracker
/// </summary>
/// <returns>
/// A task that represents the asynchronous operation
/// The task result contains the shipment tracker
/// </returns>
public Task<IShipmentTracker> GetShipmentTrackerAsync()
{
return Task.FromResult<IShipmentTracker>(null);
}
}