如何以及在何处将变量传递给 MailJet 中的活动?

How and where to pass Variables to a campaign in MailJet?

我正在尝试使用 MailJet api v3

自动生成竞选草稿
  1. 我在他们的网站上用 MJML 创建了一个模板,很简单(templateid 是 $tId=829886;):
 <mj-raw> {% for products in var:product %} </mj-raw>
      <p>{%product.name %}</p>
      <p>{%product.price%}</p>
 <mj-raw>{% endfor %}</mj-raw>

I also included both [[UNSUB_LINK_IT]] and [[UNSUB_LINK_EN]] because of the locale it_IT

  1. 在我的 php 代码中,我正在测试:
$tId=829886;
$products=[
    ["name"=>'Product1','price'=>'free'],
    ['name'=>'Product2','price'=>'1 mil']
];
  1. 竞选草案
$body = [
    'Locale' => "it_IT",
    'Sender' => "MisterMailjet",
    'SenderEmail' => "s.s***i@***.p**",
    'Subject' => "Greetings from Mailjet",
    'ContactsListID' => "13",
    'Title' => "Friday newsletter".uniqid(),
    'EditMode' => 'tool2',
    'TemplateID'=>$tId,
    'Variables' => [
        'products' => $products
    ], ]; 
$response = $mj->post(Resources::$Campaigndraft, ['body' => $body]);
  1. 我尝试将 'Variables' 传递给 $response = $mj->post(Resources::$CampaigndraftDetailcontent, ['id' => $cId, 'body' => $body]); 但我总是得到

Invalid json input: object ""->"TCampaignDraft" has no property "Variables"

有人可以 link 或者给我看一个 $Campaigndraft 或 $CampaigndraftDetailcontent 的例子,他们在其中为循环传递一些变量,我似乎无法在网上找到任何东西。我不确定是否有可能再将 vars 传递给 campaign。如有任何帮助,我们将不胜感激

目前用于个性化的高级 "Template Language" 仅适用于所谓的交易消息,不适用于营销活动。因此,用于创建活动的 /campaigndraft 资源将无法识别用于在 Send API 调用中声明变量的 "Variables" 或 "Vars" 属性。

确实在指南中 here 你会看到

Mailjet Template language is available for transactional messages only.

据我所知,在活动中也应该发布模板语言,但那将使用联系人属性而不是变量。

希望对您有所帮助。