要解决“Bigcommerce与Mailchimp集成创建了没有订阅状态的用户”的问题,您可以使用Bigcommerce的Webhooks和Mailchimp的API来实现。
以下是一个使用Python和Bigcommerce API的示例代码,用于在用户创建时将用户添加到Mailchimp的订阅列表,并设置订阅状态为“未订阅”:
import requests
import json
def add_user_to_mailchimp(user_id):
# 获取用户信息
user_url = f'https://api.bigcommerce.com/stores/{YOUR_STORE_HASH}/v3/customers/{user_id}'
headers = {
'X-Auth-Token': 'YOUR_BIGCOMMERCE_API_TOKEN',
'Accept': 'application/json'
}
response = requests.get(user_url, headers=headers)
user_data = response.json()
# 构建要发送给Mailchimp的数据
email = user_data['email']
first_name = user_data['first_name']
last_name = user_data['last_name']
data = {
'email_address': email,
'status': 'unsubscribed', # 设置订阅状态为未订阅
'merge_fields': {
'FNAME': first_name,
'LNAME': last_name
}
}
# 发送数据到Mailchimp的订阅列表
mailchimp_url = f'https://usX.api.mailchimp.com/3.0/lists/{YOUR_LIST_ID}/members'
auth = ('YOUR_MAILCHIMP_API_KEY', '')
response = requests.post(mailchimp_url, auth=auth, json=data)
if response.status_code == 200:
print('用户添加到Mailchimp成功')
else:
print('用户添加到Mailchimp失败')
# 在Bigcommerce中设置Webhook,当用户创建时触发该Webhook
# Webhook的URL应指向您的服务器上的一个路由,用于接收Bigcommerce发送的事件数据
# 以下是一个Flask示例代码,用于接收Bigcommerce的Webhook事件
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
data = request.get_json()
event_type = data['data']['type']
if event_type == 'customer.created':
user_id = data['data']['id']
add_user_to_mailchimp(user_id)
return 'Webhook received', 200
if __name__ == '__main__':
app.run()
请注意,您需要替换代码中的以下内容:
YOUR_STORE_HASH
:您的Bigcommerce商店的哈希值。YOUR_BIGCOMMERCE_API_TOKEN
:您的Bigcommerce API令牌。YOUR_LIST_ID
:您在Mailchimp中创建的订阅列表的ID。YOUR_MAILCHIMP_API_KEY
:您的Mailchimp API密钥。通过将上述代码部署到您的服务器上,并配置Bigcommerce的Webhook指向您的服务器的URL,当有新用户创建时,该代码将自动将用户添加到Mailchimp的订阅列表,并将订阅状态设置为“未订阅”。