コード例 #1
0
        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}");
            }
        }
コード例 #2
0
        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");
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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}");
            }
        }
コード例 #5
0
        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);
        }