我们将Mailchimp实施从1.3更新到3.0。我们成功更新了代码,以便将某人订阅到列表中。现在我们正在尝试添加电子商务订单。在API v1.3中,我们使用函数campaignEcommOrderAdd
完成了此操作。我在v3.0中找到了这个函数:/ecommerce/stores/{store_id}/orders
(website link)。
但我无法让它发挥作用。发布到Mailchimp时,我收到404错误,但我不知道我做错了什么。以下是我的代码。
$apiKey = "xxx"; //xxx for privacy reasons
$json = json_encode(array(
'id' => $mailchimp_order['id'],
'customer' => array(
'id' => $mailchimp_order['email_id'],
),
'campaign_id' => $mailchimp_order['campaign_id'],
'currency_code' => "EUR",
'order_total' => $mailchimp_order['total'],
'tax_total' => $mailchimp_order['tax'],
'lines' => $mailchimp_order['items'],
));
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://'.$dataCenter.'.api.mailchimp.com/3.0/ecommerce/stores/'.$mailchimp_order['store_id'].'/orders';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
这是我的$json
var:
{
"id":"10000003",
"customer":{
"id":"a90f52f710"
},
"campaign_id":"641657",
"currency_code":"EUR",
"order_total":"56.90",
"tax_total":"47.02",
"lines":[
{
"id":"224",
"product_id":"4427",
"product_title":"Product name",
"product_variant_id":0,
"quantity":"1",
"price":"49.95"
}
]
}
这是我得到的错误:
object(stdClass) {
type => 'http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/'
title => 'Resource Not Found'
status => (int) 404
detail => 'The requested resource could not be found.'
instance => ''
}
答案 0 :(得分:0)
我不知道更多,我会在这里尝试一些事情。一个(你可能已经尝试过这个,但检查$url
的输出)以确保所有设置都正确。其次,我会通过发出GET请求来确保您发布此订单的商店实例是可访问/存在的,这将是:
$url = 'https://'.$dataCenter.'.api.mailchimp.com/3.0/ecommerce/stores/'.$mailchimp_order['store_id']'
最后,我会验证与订单关联的广告系列和产品实例是否可以使用以下方式访问:
获取https:// {dc} .api.mailchimp.com / 3.0 / campaigns / 641657
获取https:// {dc} .api.mailchimp.com / 3.0 / ecommerce / stores / {store_id} / products / 4427
此外,如果您为应用程序进行了大量的3.0更新,那么实现一个抽象出大量代码的库可能会很有用我使用这个:
https://github.com/Jhut89/Mailchimp-API-3.0-PHP
我的声望得分不会让我发布更多链接到这些端点,但它们应该很容易在MailChimp文档中找到。希望有所帮助。