使用 google-api-php-client 为产品创建多个自定义属性

Creating Multiple Custom Attibutes For Product with google-api-php-client

根据那个回答 https://support.google.com/merchants/answer/4588281?hl=en-GB

如果我想为带有 API 的产品设置多个促销 ID,我可以指定多行:

<sc:attribute name="promotion_id">PROMOTION_ID</sc:attribute> 

我正在使用这个库https://github.com/google/google-api-php-client

我的问题是我该如何使用这个库。我应该使用自定义属性吗?例如。

$feed_entry = new Google_Service_Content_Product();

$promotions_ids = array (20,21,22);
foreach ($promotions_ids as $promotion_id ) {
  $promotion = new Google_Service_Content_ProductCustomAttribute();
  $promotion->setName('promotion_id');
  $promotion->setValue($promotion_id);
  $feed_entry->setCustomAttributes($promotion);
}

但这只会为不同的 ID 重新设置此属性。我什至不确定我是否以正确的方式这样做。可能遗漏了什么。完整的代码示例真的很有帮助。

我找不到 PHP 的最终代码示例。也就是说,如果您查看 API 其他语言的库,您会发现:

对于 Java 它使用 List<ProductCustomAttribute>:

public Product setCustomAttributes(java.util.List<ProductCustomAttribute> customAttributes)

Source

对于 JavaScript 它使用 map:

setCustomAttributes(map)
setCustomAttributes({ 'size': 'Large', 'color': 'Green' })

Source

结论:

有问题的 PHP 方法很有可能使用 arrayGoogle_Service_Content_ProductCustomAttribute 个对象:

public function setCustomAttributes($customAttributes)

$feed_entry = new Google_Service_Content_Product();
$promotions_ids = array (20,21,22);
$customAttributes = array();

foreach ($promotions_ids as $promotion_id ) {
  $promotion = new Google_Service_Content_ProductCustomAttribute();
  $promotion->setName('promotion_id');
  $promotion->setValue($promotion_id);
  $customAttributes[] = $promotion;
}

$feed_entry->setCustomAttributes($customAttributes);

试试吧!