【问题标题】:Always get 404 error when adding ecommerce orders using Mailchimp API 3.0使用 Mailchimp API 3.0 添加电子商务订单时总是出现 404 错误
【发布时间】:2016-07-12 02:48:00
【问题描述】:

我们正在将 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 => ''
}

【问题讨论】:

    标签: php mailchimp mailchimp-api-v3.0


    【解决方案1】:

    如果不知道更多,我会在这里尝试一些事情。一个(您可能已经尝试过,但请检查$url 的输出)以确保所有设置正确。其次,我会通过发出 GET 请求来确保您发布此订单的商店实例是可访问/存在的,具体如下:

    $url = 'https://'.$dataCenter.'.api.mailchimp.com/3.0/ecommerce/stores/'.$mailchimp_order['store_id']'
    

    最后,我将验证与订单关联的活动和产品实例都可以使用:

    • GET https://{dc}.api.mailchimp.com/3.0/campaigns/641657

    • GET 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 文档中找到。希望对您有所帮助。

    【讨论】:

    • 感谢您的评论!我似乎找不到时间检查这个。我最终会的,但我想提前感谢您抽出时间回答我的问题
    • 没问题的朋友!希望对您有所帮助。
    猜你喜欢
    • 2016-01-02
    • 2018-02-11
    • 2016-05-25
    • 2017-08-16
    • 2017-01-27
    • 2021-05-13
    • 2015-08-13
    • 2019-05-29
    • 2017-05-05
    相关资源
    最近更新 更多