65 lines
2.2 KiB
C#
65 lines
2.2 KiB
C#
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);
|
|
}
|
|
} |