/// <summary> 
 /// Creates a new customer account and logs the user associated with the customer account into the site.
 /// <example> 
 ///  <code> 
 /// var result = CustomerAccountFactory.AddAccountAndLogin(handler : handler,  accountAndAuthInfo :  accountAndAuthInfo,  responseFields :  responseFields,  expectedCode: expectedCode, successCode: successCode); 
 /// var optionalCasting = ConvertClass<CustomerAuthTicket/>(result); 
 /// return optionalCasting;
 ///  </code> 
 /// </example> 
 /// </summary>
 public static Mozu.Api.Contracts.Customer.CustomerAuthTicket AddAccountAndLogin(ServiceClientMessageHandler handler, 
     Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo accountAndAuthInfo, string responseFields = null,
     HttpStatusCode expectedCode = HttpStatusCode.Created, HttpStatusCode successCode = HttpStatusCode.Created)
 {
     SetSdKparameters();
     var currentClassName = System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.Name;
     var currentMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
     Debug.WriteLine(currentMethodName  + '.' + currentMethodName );
     var apiClient = Mozu.Api.Clients.Commerce.Customer.CustomerAccountClient.AddAccountAndLoginClient(
          accountAndAuthInfo :  accountAndAuthInfo,  responseFields :  responseFields		);
     try
     {
         apiClient.WithContext(handler.ApiContext).Execute();
     }
     catch (ApiException ex)
     {
         // Custom error handling for test cases can be placed here
         Exception customException = TestFailException.GetCustomTestException(ex, currentClassName, currentMethodName, expectedCode);
         if (customException != null)
             throw customException;
         return null;
     }
     return ResponseMessageFactory.CheckResponseCodes(apiClient.HttpResponse.StatusCode, expectedCode, successCode)
              ? (apiClient.Result())
              : null;
 }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="responseFields">Filtering syntax appended to an API call to increase or decrease the amount of data returned inside a JSON object. This parameter should only be used to retrieve data. Attempting to update data using this parameter may cause data loss.</param>
        /// <param name="accountAndAuthInfo">The authentication information associated with a customer account. The data includes the account properties such as the name, username, authorization access, and email address, the required password to match, and indicates if the account was imported from a third party resource. </param>
        /// <returns>
        /// <see cref="Mozu.Api.Contracts.Customer.CustomerAuthTicket"/>
        /// </returns>
        /// <example>
        /// <code>
        ///   var customeraccount = new CustomerAccount();
        ///   var customerAuthTicket = await customeraccount.AddAccountAndLoginAsync( accountAndAuthInfo,  responseFields);
        /// </code>
        /// </example>
        public virtual async Task <Mozu.Api.Contracts.Customer.CustomerAuthTicket> AddAccountAndLoginAsync(Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo accountAndAuthInfo, string responseFields = null, CancellationToken ct = default(CancellationToken))
        {
            MozuClient <Mozu.Api.Contracts.Customer.CustomerAuthTicket> response;
            var client = Mozu.Api.Clients.Commerce.Customer.CustomerAccountClient.AddAccountAndLoginClient(accountAndAuthInfo, responseFields);

            client.WithContext(_apiContext);
            response = await client.ExecuteAsync(ct).ConfigureAwait(false);

            return(await response.ResultAsync());
        }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="responseFields">Filtering syntax appended to an API call to increase or decrease the amount of data returned inside a JSON object. This parameter should only be used to retrieve data. Attempting to update data using this parameter may cause data loss.</param>
        /// <param name="accountAndAuthInfo">The authentication information associated with a customer account. The data includes the account properties such as the name, username, authorization access, and email address, the required password to match, and indicates if the account was imported from a third party resource. </param>
        /// <returns>
        ///  <see cref="Mozu.Api.MozuClient" />{<see cref="Mozu.Api.Contracts.Customer.CustomerAuthTicket"/>}
        /// </returns>
        /// <example>
        /// <code>
        ///   var mozuClient=AddAccountAndLogin( accountAndAuthInfo,  responseFields);
        ///   var customerAuthTicketClient = mozuClient.WithBaseAddress(url).Execute().Result();
        /// </code>
        /// </example>
        public static MozuClient <Mozu.Api.Contracts.Customer.CustomerAuthTicket> AddAccountAndLoginClient(Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo accountAndAuthInfo, string responseFields = null)
        {
            var          url        = Mozu.Api.Urls.Commerce.Customer.CustomerAccountUrl.AddAccountAndLoginUrl(responseFields);
            const string verb       = "POST";
            var          mozuClient = new MozuClient <Mozu.Api.Contracts.Customer.CustomerAuthTicket>()
                                      .WithVerb(verb).WithResourceUrl(url)
                                      .WithBody <Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo>(accountAndAuthInfo);

            return(mozuClient);
        }
Esempio n. 4
0
        public void Add_Shopper()
        {
            var customerHandler = new MozuDataConnector.Domain.Handlers.CustomerHandler(_apiContext.TenantId, _apiContext.SiteId,
                                                                                        _apiContext.MasterCatalogId);

            var filter = "ExternalId eq " + "'m00349'";

            var account = customerHandler.GetCustomerAccounts(0, 1, null, filter).Result;

            if (account.Count() == 0)
            {
                var customerAccountAndAuthInfo = new Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo()
                {
                    Account = new Mozu.Api.Contracts.Customer.CustomerAccount()
                    {
                        AcceptsMarketing      = false,
                        CompanyOrOrganization = "Candles Unlimited Inc.",
                        EmailAddress          = "*****@*****.**",
                        ExternalId            = "m0037",
                        FirstName             = "Alice",
                        LastName    = "Wick",
                        IsActive    = true,
                        IsAnonymous = false,
                        LocaleCode  = "en-US",
                        TaxExempt   = false,
                        IsLocked    = false,
                        UserName    = "******",
                        Contacts    = new System.Collections.Generic
                                      .List <Mozu.Api.Contracts.Customer.CustomerContact>()
                        {
                            new Mozu.Api.Contracts.Customer.CustomerContact()
                            {
                                Email             = "*****@*****.**",
                                FirstName         = "Alice",
                                LastNameOrSurname = "Wick",
                                Label             = "Mrs.",
                                PhoneNumbers      = new Mozu.Api.Contracts.Core.Phone()
                                {
                                    Mobile = "555-555-0001"
                                },
                                Address = new Mozu.Api.Contracts.Core.Address()
                                {
                                    Address1        = "One Lightning Bug Way",
                                    AddressType     = "Residentail",
                                    CityOrTown      = "Austin",
                                    CountryCode     = "US",
                                    PostalOrZipCode = "78702",
                                    StateOrProvince = "TX"
                                },
                                Types = new System.Collections.Generic
                                        .List <Mozu.Api.Contracts.Customer.ContactType>()
                                {
                                    new Mozu.Api.Contracts.Customer.ContactType()
                                    {
                                        IsPrimary = true,
                                        Name      = "Billing"
                                    }
                                }
                            },
                            new Mozu.Api.Contracts.Customer.CustomerContact()
                            {
                                Email             = "*****@*****.**",
                                FirstName         = "Paul",
                                LastNameOrSurname = "Wick",
                                Label             = "Mr.",
                                PhoneNumbers      = new Mozu.Api.Contracts.Core.Phone()
                                {
                                    Mobile = "555-555-0002"
                                },
                                Address = new Mozu.Api.Contracts.Core.Address()
                                {
                                    Address1        = "1300 Comanche Trail",
                                    AddressType     = "Residentail",
                                    CityOrTown      = "San Marcos",
                                    CountryCode     = "US",
                                    PostalOrZipCode = "78666",
                                    StateOrProvince = "TX"
                                },
                                Types = new System.Collections.Generic
                                        .List <Mozu.Api.Contracts.Customer.ContactType>()
                                {
                                    new Mozu.Api.Contracts.Customer.ContactType()
                                    {
                                        IsPrimary = true,
                                        Name      = "Shipping"
                                    }
                                }
                            },
                        }
                    },
                    Password = "******",
                    IsImport = true
                };

                var credit = new Mozu.Api.Contracts.Customer.Credit.Credit()
                {
                    Code           = "credit0001",
                    ActivationDate = System.DateTime.Now,
                    CreditType     = "StoreCredit",
                    CurrencyCode   = "USD",
                    CurrentBalance = 50m,
                    ExpirationDate = null,
                    InitialBalance = 50m
                };

                var wishList = new Mozu.Api.Contracts.CommerceRuntime.Wishlists.Wishlist()
                {
                    IsImport = true,
                    Name     = "wishlist-001",
                    Items    = new List <Mozu.Api.Contracts.CommerceRuntime.Wishlists.WishlistItem>()
                    {
                        new Mozu.Api.Contracts.CommerceRuntime.Wishlists.WishlistItem()
                        {
                            Product = new Mozu.Api.Contracts.CommerceRuntime.Products.Product()
                            {
                                ProductCode = "LUC-SCF-001"
                            }
                        }
                    }
                };

                var newAccount = customerHandler.AddCustomerAccount(customerAccountAndAuthInfo,
                                                                    credit,
                                                                    wishList).Result;
            }
        }
        public void Exercise_13_2_Add_New_Customer()
        {
            //Create a Customer Account resource
            var customerAccountResource = new Mozu.Api.Resources.Commerce.Customer.CustomerAccountResource(_apiContext);

            var existingAcct = customerAccountResource.GetAccountsAsync(filter: "EmailAddress eq '*****@*****.**'").Result;

            if (existingAcct == null || existingAcct.TotalCount == 0)
            {
                //Create a new Account Info and Authorization Info contract
                var customerAccountAndAuthInfo = new Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo()
                {
                    Account = new Mozu.Api.Contracts.Customer.CustomerAccount()
                    {
                        AcceptsMarketing = false,
                        CompanyOrOrganization = "Serenity Corp.",
                        EmailAddress = "*****@*****.**",
                        ExternalId = "A0001",
                        FirstName = "Malcolm",
                        LastName = "Reynolds",
                        IsActive = true,
                        IsAnonymous = false,
                        LocaleCode = "en-US",
                        TaxExempt = false,
                        IsLocked = false,
                        UserName = "******",
                    },
                    Password = "******",
                    IsImport = true
                };

                var newAccount = customerAccountResource.AddAccountAndLoginAsync(customerAccountAndAuthInfo).Result;

                var contactMal = new Mozu.Api.Contracts.Customer.CustomerContact()
                {
                    Email = "*****@*****.**",
                    FirstName = "Malcolm",
                    LastNameOrSurname = "Reynolds",
                    Label = "Capt.",
                    PhoneNumbers = new Mozu.Api.Contracts.Core.Phone()
                    {
                        Mobile = "555-555-0001"
                    },
                    Address = new Mozu.Api.Contracts.Core.Address()
                    {
                        Address1 = "03-K64 Firefly Transport",
                        AddressType = "Residential",
                        CityOrTown = "Austin",
                        CountryCode = "US",
                        PostalOrZipCode = "78759",
                        StateOrProvince = "TX"
                    },
                    Types = new System.Collections.Generic.List<Mozu.Api.Contracts.Customer.ContactType>()
                    {
                        new Mozu.Api.Contracts.Customer.ContactType()
                        {
                            IsPrimary = true,
                                Name = "Billing"
                        }
                    }
                };

                var contactInara = new Mozu.Api.Contracts.Customer.CustomerContact()
                {
                    Email = "*****@*****.**",
                    FirstName = "Inara",
                    LastNameOrSurname = "Serra",
                    Label = "Ms.",
                    PhoneNumbers = new Mozu.Api.Contracts.Core.Phone()
                    {
                        Mobile = "555-555-0002"
                    },
                    Address = new Mozu.Api.Contracts.Core.Address()
                    {
                        Address1 = "03-K64 Firefly Transport -- Shuttle",
                        AddressType = "Residential",
                        CityOrTown = "Austin",
                        CountryCode = "US",
                        PostalOrZipCode = "78759",
                        StateOrProvince = "TX"
                    },
                    Types = new System.Collections.Generic.List<Mozu.Api.Contracts.Customer.ContactType>()
                    {
                        new Mozu.Api.Contracts.Customer.ContactType()
                        {
                            IsPrimary = false,
                                Name = "Billing"
                        }
                    }
                };

                //Create a Customer Contact resource
                var contactResource = new Mozu.Api.Resources.Commerce.Customer.Accounts.CustomerContactResource(_apiContext);

                //Add new contact
                var newContactMal = contactResource.AddAccountContactAsync(contactMal, newAccount.CustomerAccount.Id).Result;

                //Add additional contact
                var newContactInara = contactResource.AddAccountContactAsync(contactInara, newAccount.CustomerAccount.Id).Result;
            }
                //Create a Customer Credit resource
                var creditResource = new Mozu.Api.Resources.Commerce.Customer.CreditResource(_apiContext);

                //Create a Credit object
                var credit = new Mozu.Api.Contracts.Customer.Credit.Credit()
                {
                    ActivationDate = DateTime.Now,
                    Code = Guid.NewGuid().ToString("N"),
                    CreditType = "GiftCard",
                    CurrencyCode = "USD",
                    CurrentBalance = 1000,
                    CustomerId = 1002,
                    InitialBalance = 1000
                };

                //Add credit
                var newCredit = creditResource.AddCreditAsync(credit).Result;
        }
Esempio n. 6
0
        /// <summary>
        /// Creates a new customer account and logs the user associated with the customer account into the site.
        /// </summary>
        /// <param name="responseFields">Use this field to include those fields which are not included by default.</param>
        /// <param name="accountAndAuthInfo">The authentication information associated with a customer account. The data includes the account properties such as the name, username, authorization access, and email address, the required password to match, and indicates if the account was imported from a third party resource. </param>
        /// <returns>
        /// <see cref="Mozu.Api.Contracts.Customer.CustomerAuthTicket"/>
        /// </returns>
        /// <example>
        /// <code>
        ///   var customeraccount = new CustomerAccount();
        ///   var customerAuthTicket = await customeraccount.AddAccountAndLoginAsync( accountAndAuthInfo,  responseFields);
        /// </code>
        /// </example>
        public virtual async Task <Mozu.Api.Contracts.Customer.CustomerAuthTicket> AddAccountAndLoginAsync(Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo accountAndAuthInfo, string responseFields = null)
        {
            MozuClient <Mozu.Api.Contracts.Customer.CustomerAuthTicket> response;
            var client = Mozu.Api.Clients.Commerce.Customer.CustomerAccountClient.AddAccountAndLoginClient(accountAndAuthInfo, responseFields);

            client.WithContext(_apiContext);
            response = await client.ExecuteAsync();

            return(await response.ResultAsync());
        }
        public void Exercise_13_2_Add_New_Customer()
        {
            //Create a Customer Account resource
            var customerAccountResource = new Mozu.Api.Resources.Commerce.Customer.CustomerAccountResource(_apiContext);

            var existingAcct = customerAccountResource.GetAccountsAsync(filter: "EmailAddress eq '*****@*****.**'").Result;

            if (existingAcct == null || existingAcct.TotalCount == 0)
            {
                //Create a new Account Info and Authorization Info contract
                var customerAccountAndAuthInfo = new Mozu.Api.Contracts.Customer.CustomerAccountAndAuthInfo()
                {
                    Account = new Mozu.Api.Contracts.Customer.CustomerAccount()
                    {
                        AcceptsMarketing      = false,
                        CompanyOrOrganization = "Serenity Corp.",
                        EmailAddress          = "*****@*****.**",
                        ExternalId            = "A0001",
                        FirstName             = "Malcolm",
                        LastName    = "Reynolds",
                        IsActive    = true,
                        IsAnonymous = false,
                        LocaleCode  = "en-US",
                        TaxExempt   = false,
                        IsLocked    = false,
                        UserName    = "******",
                    },
                    Password = "******",
                    IsImport = true
                };

                var newAccount = customerAccountResource.AddAccountAndLoginAsync(customerAccountAndAuthInfo).Result;

                var contactMal = new Mozu.Api.Contracts.Customer.CustomerContact()
                {
                    Email             = "*****@*****.**",
                    FirstName         = "Malcolm",
                    LastNameOrSurname = "Reynolds",
                    Label             = "Capt.",
                    PhoneNumbers      = new Mozu.Api.Contracts.Core.Phone()
                    {
                        Mobile = "555-555-0001"
                    },
                    Address = new Mozu.Api.Contracts.Core.Address()
                    {
                        Address1        = "03-K64 Firefly Transport",
                        AddressType     = "Residential",
                        CityOrTown      = "Austin",
                        CountryCode     = "US",
                        PostalOrZipCode = "78759",
                        StateOrProvince = "TX"
                    },
                    Types = new System.Collections.Generic.List <Mozu.Api.Contracts.Customer.ContactType>()
                    {
                        new Mozu.Api.Contracts.Customer.ContactType()
                        {
                            IsPrimary = true,
                            Name      = "Billing"
                        }
                    }
                };

                var contactInara = new Mozu.Api.Contracts.Customer.CustomerContact()
                {
                    Email             = "*****@*****.**",
                    FirstName         = "Inara",
                    LastNameOrSurname = "Serra",
                    Label             = "Ms.",
                    PhoneNumbers      = new Mozu.Api.Contracts.Core.Phone()
                    {
                        Mobile = "555-555-0002"
                    },
                    Address = new Mozu.Api.Contracts.Core.Address()
                    {
                        Address1        = "03-K64 Firefly Transport -- Shuttle",
                        AddressType     = "Residential",
                        CityOrTown      = "Austin",
                        CountryCode     = "US",
                        PostalOrZipCode = "78759",
                        StateOrProvince = "TX"
                    },
                    Types = new System.Collections.Generic.List <Mozu.Api.Contracts.Customer.ContactType>()
                    {
                        new Mozu.Api.Contracts.Customer.ContactType()
                        {
                            IsPrimary = false,
                            Name      = "Billing"
                        }
                    }
                };

                //Create a Customer Contact resource
                var contactResource = new Mozu.Api.Resources.Commerce.Customer.Accounts.CustomerContactResource(_apiContext);

                //Add new contact
                var newContactMal = contactResource.AddAccountContactAsync(contactMal, newAccount.CustomerAccount.Id).Result;

                //Add additional contact
                var newContactInara = contactResource.AddAccountContactAsync(contactInara, newAccount.CustomerAccount.Id).Result;
            }
            //Create a Customer Credit resource
            var creditResource = new Mozu.Api.Resources.Commerce.Customer.CreditResource(_apiContext);

            //Create a Credit object
            var credit = new Mozu.Api.Contracts.Customer.Credit.Credit()
            {
                ActivationDate = DateTime.Now,
                Code           = Guid.NewGuid().ToString("N"),
                CreditType     = "GiftCard",
                CurrencyCode   = "USD",
                CurrentBalance = 1000,
                CustomerId     = 1002,
                InitialBalance = 1000
            };

            //Add credit
            var newCredit = creditResource.AddCreditAsync(credit).Result;
        }