public ActionResult Index(string email) { // save the email to the current tracked user if it doesnt exsist Tracker.Current.Session.Identify(email); var contact = Tracker.Current.Contact; var emails = contact.GetFacet <IContactEmailAddresses>("Emails"); if (!emails.Entries.Contains("personal")) { emails.Preferred = "personal"; var personalEmail = emails.Entries.Create("personal"); personalEmail.SmtpAddress = email; } // create a new outcome object var subscribeOutcome = new ContactOutcome ( ID.NewID, new ID("{CF6C658B-1343-4905-8F4D-6E22594B5702}"), new ID(Tracker.Current.Contact.ContactId) ); Tracker.Current.RegisterContactOutcome(subscribeOutcome); return(View("Confirmation")); }
private void SetOutcome(Item definitonItem) { if (Tracker.Current == null) { return; } ID id = ID.NewID; ID interactionId = ID.Parse(Tracker.Current.Interaction.InteractionId); ID contactId = ID.Parse(Tracker.Current.Contact.ContactId); var definitionItem = definitonItem; if (Tracker.Current.HasOutcome(definitionItem.ID)) { return; } var outcome = new ContactOutcome(id, definitionItem.ID, contactId) { DateTime = DateTime.UtcNow.Date, MonetaryValue = MonetaryValue, InteractionId = interactionId }; var manager = Factory.CreateObject("outcome/outcomeManager", true) as OutcomeManager; if (manager != null) { manager.Save(outcome); } }
public string RegisterOutcome(OutcomeDetails data) { var Tracker = this.GetTracker(false); if (Tracker == null || !Tracker.IsActive) { return("Disabled"); } var id = ID.NewID; var interactionId = ID.Parse(Tracker.Interaction.InteractionId); var contactId = ID.Parse(Tracker.Contact.ContactId); var definitionId = new ID(data.definitionId); decimal monetaryValue = 0; decimal.TryParse(data.monetaryValue, out monetaryValue); var outcome = new ContactOutcome(id, definitionId, contactId) { DateTime = DateTime.UtcNow.Date, MonetaryValue = monetaryValue, InteractionId = interactionId }; var manager = Sitecore.Configuration.Factory.CreateObject("outcome/outcomeManager", true) as OutcomeManager; manager.Save(outcome); Tracker.RegisterContactOutcome(outcome); return("OK"); }
private void CreateOutcomeAnalytic(Contact contact) { var outcome = new ContactOutcome( ID.NewID, //sitecore/system/Marketing Control Panel/Outcomes/Subscribed new ID("{8931433F-EE16-4616-B996-C122E5A4E243}"), //your own Outcome new ID(contact.ContactId)); Tracker.Current.RegisterContactOutcome(outcome); }
public void TrackOutcome(ID definitionId) { Assert.ArgumentNotNull(definitionId, nameof(definitionId)); if (this.IsActive && Tracker.Current.Contact != null) { var outcomeId = new ID(); var contactId = new ID(Tracker.Current.Contact.ContactId); var outcome = new ContactOutcome(outcomeId, definitionId, contactId); Tracker.Current.RegisterContactOutcome(outcome); } }
public void TrackOutcome(ID definitionId) { Assert.ArgumentNotNull(definitionId, nameof(definitionId)); if (Tracker.Current != null && Tracker.Current.IsActive && Tracker.Current.Contact != null) { var outcomeId = new ID(); var contactId= new ID(Tracker.Current.Contact.ContactId); var outcome = new ContactOutcome(outcomeId, definitionId, contactId); Tracker.Current.RegisterContactOutcome(outcome); } }
public ActionResult Index(string email) { Tracker.Current.Session.Identify(email); var contact = Tracker.Current.Contact; var emails = contact.GetFacet <IContactEmailAddresses>("Emails"); if (!emails.Entries.Contains("personal")) { emails.Preferred = "personal"; var personalEmail = emails.Entries.Create("personal"); personalEmail.SmtpAddress = email; } var outcome = new ContactOutcome(ID.NewID, new ID("{E9A7385F-5C84-4C8D-AE77-AB7B6615FEC4}"), new ID(contact.ContactId)); Tracker.Current.RegisterContactOutcome(outcome); return(View("Confirmation")); }
public ActionResult Index(string email) { Tracker.Current.Session.Identify(email); var contact = Tracker.Current.Contact; var emails = contact.GetFacet <IContactEmailAddresses>("Emails"); if (!emails.Entries.Contains("personal")) { emails.Preferred = "personal"; var personalEmail = emails.Entries.Create("personal"); personalEmail.SmtpAddress = email; } var outcome = new ContactOutcome(ID.NewID, new ID("{8DAFFB64-56BE-4A19-81E2-5CB158299E5E}"), new ID(contact.ContactId)); Tracker.Current.RegisterContactOutcome(outcome); return(View("Confirmation")); }
public ActionResult Index(string email) { Sitecore.Analytics.Tracker.Current.Session.Identify(email); var contact = Sitecore.Analytics.Tracker.Current.Contact; var emails = contact.GetFacet <IContactEmailAddresses>("Emails"); if (!emails.Entries.Contains("personal")) { emails.Preferred = "personal"; var personalEmail = emails.Entries.Create("personal"); personalEmail.SmtpAddress = email; } var outcome = new ContactOutcome(ID.NewID, new ID("{F1A68003-6CD0-44C7-B7FD-556041A68090}"), new ID(contact.ContactId)); Tracker.Current.RegisterContactOutcome(outcome); return(View("Confirmation")); }
/// <summary> /// Processes the specified arguments. /// </summary> /// <param name="args">The arguments.</param> public override void Process(ServicePipelineArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.Request, "args.Request"); Assert.ArgumentNotNull(args.Result, "args.Result"); Assert.ArgumentCondition(args.Request is SubmitVisitorOrderRequest, "args.Request", "args.Request is SubmitVisitorOrderRequest"); Assert.ArgumentCondition(args.Result is SubmitVisitorOrderResult, "args.Result", "args.Result is SubmitVisitorOrderResult"); if (args.Result.Success) { if (Tracker.Current != null) { SubmitVisitorOrderResult result = args.Result as SubmitVisitorOrderResult; Order orderFromResult = result.Order; Assert.ArgumentNotNull(orderFromResult, "order result"); var contactId = Guid.Empty; if (Tracker.Current.Contact != null) { contactId = Tracker.Current.Contact.ContactId; } try { var serializedOrder = SerializeOrder(orderFromResult); var outcome = new ContactOutcome(ID.NewID, StorefrontConstants.KnownItemIds.ProductPurchaseOutcome, new ID(contactId)); outcome.CustomValues["ShopName"] = orderFromResult.ShopName; outcome.CustomValues["ExternalId"] = orderFromResult.ExternalId; outcome.CustomValues["Order"] = JsonConvert.SerializeObject(orderFromResult); outcome.MonetaryValue = orderFromResult.Total.Amount; Tracker.Current.RegisterContactOutcome(outcome); } catch (Exception ex) { CommerceLog.Current.Error("SubmitVisitorOrder, OrderOutcome", this, ex); } } } }
public void Execute(ITracker tracker, RequestInfo requestInfo) { var outcomes = requestInfo.Variables.GetOrDefault("TriggerOutcomes") as IEnumerable <TriggerOutcomeData>; if (outcomes != null) { var ix = 0; foreach (var o in outcomes) { var defintion = DefinitionManagerFactory.Default.GetDefinitionManager <IOutcomeDefinition>().Get(o.DefinitionId.ToID(), LanguageManager.DefaultLanguage.CultureInfo); if (defintion == null) { throw new Exception("Outcome not found"); } var oc = new ContactOutcome(Guid.NewGuid().ToID(), defintion.Id, tracker.Contact.ContactId.ToID()); if (defintion.IsMonetaryValueApplicable) { oc.MonetaryValue = o.MonetaryValue; } if (o.CustomValues != null) { foreach (var kv in o.CustomValues) { oc.CustomValues[kv.Key] = kv.Value; } } tracker.RegisterContactOutcome(oc); var added = tracker.GetContactOutcomes().First(outcome => outcome.Id == oc.Id); //Patch date time, and add 1 ms each time to avoid collisions in xProfile added.DateTime = (o.DateTime ?? tracker.CurrentPage.DateTime).AddMilliseconds(ix + 1); ++ix; } } }