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

时间:2015-03-11 20:18:58

标签: php google-api google-api-php-client

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

exerpt from google answer

如果我想使用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设置此属性。我甚至不确定我是否以正确的方式这样做。可能遗漏了一些东西。完整的代码示例将非常有用。

1 个答案:

答案 0 :(得分:2)

我无法找到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);

试试吧!