12

ADDRESS 是一个合并字段,但文档(http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/)不清楚如何将其传递给 API,因为它有街道的子字段,邮编,城市等。有没有人有一个例子如何做到这一点?

4

6 回答 6

23

这个 JSON 有效:

{
  "addr1" : "first line",
  "addr2" : "second line",
  "city" : "city",
  "state": "state",
  "zip": "zip code",
  "country": "country"
}

它记录在此处的架构中: https ://us1.api.mailchimp.com/schema/3.0/Lists/Members/MergeField.json

于 2017-05-31T09:25:06.940 回答
4

合并字段可以这样传递:

'FNAME' => $contact->first_name,
'LNAME' => $contact->last_name,
'ADDRESS' => (Object)[
        'addr1' => $contact->fulladdress,
        //'addr2' => $contact->address2,
        'city' => $contact->city,
        'state' => $contact->state_region,
        'zip' => $contact->zip_postal_code,
        'country' => $contact->country->shortcode,
        'language' => $contact->language->code,
 ],
于 2019-07-06T13:29:14.857 回答
3

以防万一有人遇到同样的问题。

我创建了自己的地址类并尝试将ADDRESS-MergeField 设置为 JSON 字符串,如下所示:

member.MergeFields["ADDRESS"] = Newtonsoft.Json.JsonConvert.SerializeObject(MyAddressObject);

这不会设置地址,但也不会返回错误。


需要分配一个Dictionary<string, object>

var adr = new Dictionary<string, object>
{
    { "addr1", "123 Whatever" },
    { "addr2", "" },
    { "city", "New York" },
    { "state", "NY" },
    { "zip", "12345" },
    { "country", "US" }
};

member.MergeFields["ADDRESS"] = adr;
于 2019-12-30T15:48:08.707 回答
2

它对我有用(php)

$address = new stdClass();
$address->addr1 = $customer->address;
$address->city = $customer->city;
$address->state = $customer->state;
$address->zip = $customer->zip;
$address->country = $customer->country;

$options = [
    'status' => 'subscribed',
    'email_address' => $customer->email,
    'merge_fields' => [
        'FNAME'=> $customer->first_name,
        'LNAME'=> $customer->last_name,
        'PHONE' => $customer->phone,
        'ADDRESS' => $address,
    ]
];
...
curl_setopt($ch, CURLOPT_POSTFIELDS,json_encode($options));
...
于 2020-07-07T05:16:52.570 回答
0

蟒蛇答案

我收到错误是因为地址行 1 是空的。这是一个有效的复制和粘贴代码:

added_user= {}
added_user.update({'email_address': "ground0@yahoo.com"})
#status options: "subscribed", "unsubscribed", "cleaned", "pending", or "transactional"
added_user.update({'status': 'subscribed'})
address_dict = {
            "addr1": "line 1",
            "addr2": "made up address",
            "city": "Kirkland",
            "state": "WA",
            "zip": "12345",
            "country": "US",
            "language": "en"
        }

added_user.update({'merge_fields':{ 'FNAME': "Corona",'LNAME': "Virus", 'ADDRESS':address_dict}})
client.lists.members.create(list_id=list_id,data=added_user)
于 2020-04-01T06:28:51.187 回答
0

您可以创建自己的地址类并将其分配如下

  public class Address
    {
        [JsonProperty("addr1")]
        public string Address1 { get; set; }

        [JsonProperty("addr2")]
        public string Address2 { get; set; }

        [JsonProperty("city")]
        public string City { get; set; }

        [JsonProperty("state")]
        public string State { get; set; }

        [JsonProperty("zip")]
        public string Zip { get; set; }

        [JsonProperty("country")]
        public string Country { get; set; }

    }

     var address = new Address()
                                {
                                    Address1 = "1 Main Street,
                                    Address2 = "",
                                    City = "Brooklyn",
                                    State = "NY",
                                    Zip = "11299",
                                    Country = "US"
                                };

member.MergeFields["ADDRESS"] = address;
于 2021-02-04T02:30:23.473 回答