public async Task CreateTenantPreferences(string identifier, TestShippingPreferences preferences) { //create handling and flat rate generic groups await CreateEmptyGroups(identifier, identifier); ShippingPreferencesRequest request = new ShippingPreferencesRequest { CreatedBy = "Data factory tool", ShippingConfigurationExternalId = identifier, FlatRateScheduleGroupExternalId = identifier, HandlingScheduleGroupExternalId = identifier, UseCustomerCarrier = preferences.UseCustomerCarrier, FreeFreightForNonContiguousStates = preferences.FreeFreightForNonContiguousStates, FreeFreightRules = MapTenantFreeFreightRules(preferences.FreeFreightRuless), FreeHandlingRules = MapFreeHandlingRules(preferences.FreeHandlingRules), UseBestRate = preferences.UseBestRate, UpdatedBy = "Data factory tool" }; var response = await Client.ShippingPreferences.Create(request); if (!response.Success) { throw new Exception($"Tenant shipping preferenwce cannot be added ~> error code: {response.StatusCode}"); } }
public async Task AddTenantPreferences(TestShippingExternals externalIds, TestShippingPreferences preferences) { //create handling and flat rate generic groups await CreateEmptyGroups(externalIds.FlatRateGroupExtId, externalIds.HandlingGroupExtId); ShippingPreferencesRequest request = new ShippingPreferencesRequest { CreatedBy = "Data factory tool", UseCustomerCarrier = preferences.UseCustomerCarrier, FreeFreightRules = GetFreefreightRules(preferences.FreeFreightRules), ShippingConfigurationExternalId = preferences.ConfigurationExtId, FlatRateScheduleGroupExternalId = externalIds.FlatRateGroupExtId, HandlingScheduleGroupExternalId = externalIds.HandlingGroupExtId, FreeFreightForNonContiguousStates = preferences.FreeFreightForNonContiguousStates, UseBestRate = preferences.UseBestRate }; var response = await _client.ShippingPreferences.Create(request); if (!response.Success) { throw new Exception("Tenant shipping preference cannot be added"); } }
public async Task AllPointsFreeFreight() { string identifier = "freeFreight15"; var testUser = new TestUserAccount { Email = identifier + "@mail.com", ContactInformation = new TestContactInformation { CompanyName = "dfs", Email = "*****@*****.**", FirstName = "John", LastName = "Doe", PhoneNumber = "1234567890" }, AccountExternalIds = new TestExternalIdentifiers { AccountMasterExtId = identifier, ContactExtId = identifier, LoginExtId = identifier, UserExtId = identifier } }; testUser = await DataFactoryAllPoints.UserAccounts.CreateUserAccount(testUser); //Tiene todos los identifiers TestShippingExternals customerCarrierAccount = new TestShippingExternals { AccountMasterExtId = identifier, ConfigurationExtId = identifier, FlatRateGroupExtId = identifier, HandlingGroupExtId = identifier }; await DataFactoryAllPoints.ShippingConfigurationPreferences.RemoveAccountPreferences(customerCarrierAccount); var configuration = new TestShippingConfiguration { Identifier = identifier, DefaultServiceLevel = ServiceLevelCodesEnum.Nextdayam, ServiceLevels = new List <TestServiceLevel> { new TestServiceLevel { Amount = 0, CarrierRateDiscount = 0.5, Code = ServiceLevelCodesEnum.Nextdayam, SortOrder = 7, Label = "Next Day AM", }, new TestServiceLevel { Amount = 1, CarrierRateDiscount = 0.5, Code = ServiceLevelCodesEnum.Ground, SortOrder = 1, Label = "Ground", }, new TestServiceLevel { Amount = 0, CarrierRateDiscount = 0.5, Code = ServiceLevelCodesEnum.Nextdaysaver, SortOrder = 5, Label = "Next Day Air Saver", }, new TestServiceLevel { Amount = 0, CarrierRateDiscount = 0, Code = ServiceLevelCodesEnum.Showroom, Label = "Showroom", SortOrder = 8 } } }; await DataFactoryAllPoints.ShippingConfigurationPreferences.CreateConfiguration(configuration); var preferences = new TestShippingPreferences { ConfigurationExtId = identifier, UseCustomerCarrier = false, FreeFreightRules = new List <SAMFreeFreightRule> { new SAMFreeFreightRule { ServiceLevelCode = (int)ServiceLevelCodesEnum.Ground, ThresholdAmount = 500 } }, //agregar de la imagen FreeFreightForNonContiguousStates = true }; await DataFactoryAllPoints.ShippingConfigurationPreferences.AddAccountPreferences(customerCarrierAccount, preferences); }
public async Task CreateAccountPreferences(string identifier, string accountMasterId, TestShippingPreferences preferences) { //TODO //validation: //at this step the configuration should exist //create handling and flat rate generic groups await CreateEmptyGroups(identifier, identifier); ShippingAccountMasterPreferencesRequest request = new ShippingAccountMasterPreferencesRequest { CreatedBy = "Data factory tool", FlatRateScheduleGroupExternalId = identifier, HandlingScheduleGroupExternalId = identifier, ShippingConfigurationExternalId = identifier, UseCustomerCarrier = preferences.UseCustomerCarrier, FreeFreightForNonContiguousStates = preferences.FreeFreightForNonContiguousStates, FreeFreightRules = MapAccountFreeFreightRules(preferences.FreeFreightRuless), FreeHandlingRules = MapFreeHandlingRules(preferences.FreeHandlingRules), UseBestRate = preferences.UseBestRate }; var response = await Client.ShippingAccountMasterPreferences.Create(accountMasterId, request); if (!response.Success) { throw new Exception($"Cannot add the given account shipping preferences ~> error code: {response.StatusCode}"); } }
public async Task AllPointsBestRate() { string identifier = "BestRate01"; var testUser = new TestUserAccount { Email = identifier + "@mail.com", ContactInformation = new TestContactInformation { CompanyName = "dfs", Email = "*****@*****.**", FirstName = "John", LastName = "Doe", PhoneNumber = "1234567890" }, AccountExternalIds = new TestExternalIdentifiers { AccountMasterExtId = identifier, ContactExtId = identifier, LoginExtId = identifier, UserExtId = identifier } }; testUser = await DataFactoryAllPoints.UserAccounts.CreateUserAccount(testUser); TestShippingExternals customerCarrierAccount = new TestShippingExternals { AccountMasterExtId = identifier, ConfigurationExtId = identifier, FlatRateGroupExtId = identifier, HandlingGroupExtId = identifier, FlatRateSchedules = new List <TestSchedule> { new TestSchedule { ExternalIdentifier = identifier + "flatRate", OrderAmountMin = 100, OrderAmountMax = 1000, Rate = 150, ServiceLevelCode = ServiceLevelCodesEnum.Ground }, new TestSchedule { ExternalIdentifier = identifier + "flatRate02", OrderAmountMin = 100, OrderAmountMax = 500, Rate = 45, ServiceLevelCode = ServiceLevelCodesEnum.Nextdayam }, new TestSchedule { ExternalIdentifier = identifier + "flatRate03", OrderAmountMin = 100, OrderAmountMax = 1000, Rate = 15, ServiceLevelCode = ServiceLevelCodesEnum.Nextdaysaver } }, HandlingSchedules = new List <TestSchedule> { new TestSchedule { ExternalIdentifier = identifier + "handling", OrderAmountMin = 100, OrderAmountMax = 200, ServiceLevelCode = ServiceLevelCodesEnum.Ground, Rate = 50 }, new TestSchedule { ExternalIdentifier = identifier + "handling02", OrderAmountMin = 100, OrderAmountMax = 300, Rate = 5, ServiceLevelCode = ServiceLevelCodesEnum.Nextdayam, }, new TestSchedule { ExternalIdentifier = identifier + "handling03", OrderAmountMin = 100, OrderAmountMax = 1000, Rate = 10, ServiceLevelCode = ServiceLevelCodesEnum.Nextdaysaver } } }; await DataFactoryAllPoints.ShippingConfigurationPreferences.RemoveAccountPreferences(customerCarrierAccount); var configuration = new TestShippingConfiguration { FreeParcelShipProximityMessageDollar = 500, FreeParcelShipProximityMessagePercentage = 0.5, Identifier = identifier, DefaultServiceLevel = ServiceLevelCodesEnum.Nextdayam, ServiceLevels = new List <TestServiceLevel> { new TestServiceLevel { Amount = 0, CarrierRateDiscount = 0.5, Code = ServiceLevelCodesEnum.Nextdayam, SortOrder = 1, Label = "Next Day AM", }, new TestServiceLevel { Amount = 1, CarrierRateDiscount = 0.5, Code = ServiceLevelCodesEnum.Ground, SortOrder = 7, Label = "Ground", }, new TestServiceLevel { Amount = 0, CarrierRateDiscount = 0.5, Code = ServiceLevelCodesEnum.Nextdaysaver, SortOrder = 5, Label = "Next Day Air Saver", }, new TestServiceLevel { Amount = 0, CarrierRateDiscount = 0, Code = ServiceLevelCodesEnum.Showroom, Label = "Showroom", SortOrder = 8 } } }; await DataFactoryAllPoints.ShippingConfigurationPreferences.CreateConfiguration(configuration); var preferences = new TestShippingPreferences { UseBestRate = true, ConfigurationExtId = identifier, UseCustomerCarrier = false, FreeFreightRules = new List <SAMFreeFreightRule> { new SAMFreeFreightRule { ServiceLevelCode = (int)ServiceLevelCodesEnum.Ground, ThresholdAmount = 500 } }, //agregar de la imagen FreeFreightForNonContiguousStates = true }; await DataFactoryAllPoints.ShippingConfigurationPreferences.AddAccountPreferences(customerCarrierAccount, preferences); }