html SFMC定制偏好中心锅炉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html SFMC定制偏好中心锅炉相关的知识,希望对你有一定的参考价值。

<script type="text/javascript" runat="server">

    Platform.Load("core", "1");

    var debug = true;
    var request = {};

    SetVar("method", Request.Method)
    SetVar("urlThis", Platform.Request.RequestURL);
    SetVar("MasterDEKey", "ExampleMaster");

    if (request.method == "GET") {

        if (debug) {
            Write("GET<br>");
        }

        // retrieve the subscriberkey via system personalization string from the send context
        SetVar("SubscriberKey", Attribute.GetValue("_SubscriberKey"));

        if (request.SubscriberKey != "") {

          // retrieve the row from the Master DE
          var masterRows = Platform.Function.LookupRows(request.MasterDEKey,['SubscriberKey'], [request.SubscriberKey]);

          if (debug) {
            Write("<br>masterRows.length: " + masterRows.length);
            Write("<br>masterRows: " + Stringify(masterRows));
          }

          // set variables for the Master column values (for defaulting below)
          if (typeof masterRows !== 'undefined' &&  masterRows.length > 0) {

            // DE field names are case-sensitive
            SetVar("SubscriberKey", masterRows[0]["SubscriberKey"]);
            SetVar("EmailAddress", masterRows[0]["EmailAddress"]);
            SetVar("FirstName", masterRows[0]["FirstName"]);
            SetVar("LastName", masterRows[0]["LastName"]);
            SetVar("ZipCode", masterRows[0]["ZipCode"]);

          }

        }

    } else if (request.method == "POST") {

        if (debug) {
            Write("POST<br>");
        }

        // get form field values
        SetVar("SubscriberKey", Request.GetFormField("SubscriberKey"));

        // if the SubscriberKey is blank then fall back and use the email address
        if (request.SubscriberKey == "") {
            SetVar("SubscriberKey", Request.GetFormField("EmailAddress"));
        }

        // retrieve values from the form submission
        // form field names are case-sensitive
        SetVar("EmailAddress", Request.GetFormField("EmailAddress"));
        SetVar("FirstName", Request.GetFormField("FirstName"));
        SetVar("LastName", Request.GetFormField("LastName"));
        SetVar("ZipCode", Request.GetFormField("ZipCode"));

        if (request.SubscriberKey != "") {

          try {

              // set values for Subscriber update
              var sub = {
                     "SubscriberKey": request.SubscriberKey
                   , "EmailAddress": request.EmailAddress
                   , "Status" : "Active"
              };

              // initialize the Subscriber object
              var subObj = Subscriber.Init(request.SubscriberKey);

              // add/update the Subscriber
              SetVar("subscriberUpsertResults", subObj.Upsert(sub));

              // upsert a row in the Master Data Extension
              var de = DataExtension.Init(request.MasterDEKey);

              var row = {};
              row.EmailAddress = request.EmailAddress;
              row.SubscriberKey = request.SubscriberKey;
              row.FirstName = request.FirstName;
              row.LastName = request.LastName;
              row.ZipCode = request.ZipCode;

              if (debug) {
                Write("<br><br>DE row: " + Stringify(row));
              }

              try {

                // attempt to add a row
                SetVar("rowAddResults", de.Rows.Add(row));

              } catch (e1) {

                 if (debug) {
                   Write("<br><br>Exception (1): " + e1);
                 }

                 try {

                    SetVar("rowUpdateResults", de.Rows.Update(row, ['SubscriberKey'], [request.SubscriberKey]));

                 } catch (e2) {

                    if (debug) {
                     Write("<br><br>Exception (2): " + e2 + " " + Stringify(request));
                    }

                 }
              }

              SetVar("overallResult", "success");

          } catch(e3) {

              SetVar("overallResult", "error");

          }

        } // EmailAddress check

    } // POST

    // sets JS and AMPScript variables
    function SetVar(varName, varValue){
        request[varName] = varValue;
        Variable.SetValue(varName, varValue);
    }

    if (debug) {
        Write("<br><br>" + Stringify(request) + "<br><br>");
    }

</script><!DOCTYPE HTML>
<html>
    <head>
    <style>
      body {
        font-family: sans-serif;
        font-size:13px;
      }
      label {
        display:block;
        padding-top:10px;
      }
      input[type="text"] {
        display:block;

      }
      fieldset {
        border: 0;
        padding:0;
        margin:0;
      }
    </style>
    </head>
    <body>

      %%[ if @method == "GET" then ]%%

        <form id="form1" action="%%=v(@urlThis)=%%" method="post" enctype="application/x-www-form-urlencoded">
         <fieldset>
          <input type="hidden" name="SubscriberKey" value="%%=v(@SubscriberKey)=%%">

          <label for="Email Address">Email Address</label>
          <input type="text" name="EmailAddress" value="%%=v(@EmailAddress)=%%">

          <label for="First Name">First Name</label>
          <input type="text" name="FirstName" value="%%=v(@FirstName)=%%">

          <label for="Last Name">Last Name</label>
          <input type="text" name="LastName" value="%%=v(@LastName)=%%">

          <label for="ZipCode">Zip Code</label>
          <input type="text" name="ZipCode" value="%%=v(@ZipCode)=%%">

         </fieldset>

         <p><button type="submit">Submit</button></p>

        </form>

      %%[ elseif @method == "POST" then ]%%

        %%[ if @overallResult == "success" then ]%%

          <h1>Thanks</h1>
          We got your updates.

        %%[ elseif @overallResult == "error" then ]%%

          <h1>Oops!</h1>
          We had some trouble.

        %%[ endif ]%%


      %%[ endif ]%%

    </body>
</html>

以上是关于html SFMC定制偏好中心锅炉的主要内容,如果未能解决你的问题,请参考以下文章

html SFMC配置文件/订阅中心测试电子邮件

html SFMC-重复数据删除-外部rows.html

html SFMC-ampscript查对do.html

html SFMC-ampscript查对dont.html

html SFMC-ampscript-micrositebaseurl-1.HTML

html SFMC - AMPScript_hello-world.html