Всегда появляется ошибка 404 при добавлении заказов электронной коммерции с использованием Mailchimp API 3.0

Мы обновляем нашу реализацию Mailchimp с 1.3 до 3.0. Мы успешно обновили наш код, чтобы подписать кого-то на список. Сейчас мы пытаемся добавить заказ электронной коммерции. В API v1.3 мы сделали это с помощью функции campaignEcommOrderAdd, Я нашел функцию для этого в v3.0: /ecommerce/stores/{store_id}/orders(ссылка на сайт).

Но я не могу заставить его работать. При публикации в 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 вар:

{
"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

Решение

Не зная больше, я бы попробовал несколько вещей здесь. Один (возможно, вы уже пробовали это, но проверьте вывод $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. Надеюсь, это поможет.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]