Google shopping API: 如何增量更新发货设置?
Google shopping API: How to update shippingsettings incrementally?
我有一个大型数据集,我需要将其推送到 Google Merchant Center 中的帐户级运输设置。我正在通过 PHP 客户端库使用 Google 购物 API。
如果我加载数据的一个子集并在最后调用它一次,它工作正常:
$settings = $clientservice->shippingsettings->get('XXXXXX', 'XXXXXX');
for each data point that represents a service
for each data point that represents a rate group
create weight/destination state table
next
next
$settings->setServices($services);
$updatedSettings = $clientservice->shippingsettings->update('XXXXXX', 'XXXXXX', $settings);
但是,如果我加载整组数据并尝试立即应用它,我会收到 413 Request Too Large 响应。所以我想逐步加载它,一次加载一项服务。我试过这个:
$settings = $clientservice->shippingsettings->get('XXXXXX', 'XXXXXX');
for each data point that represents a service
for each data point that represents a rate group
create weight/destination state table
next
$settings->setServices([$service]);
$updatedSettings = $clientservice->shippingsettings->patch('XXXXXX', 'XXXXXX', $settings);
next
但是,每项服务只是覆盖前一项服务。据我所知,"patch" 似乎与 "update" 一样运作。有人知道如何进行这项工作吗?
不是 100% 确定我理解你问题的问题部分。但是我可以告诉您,此更新将更新您随请求发送的所有字段。假设我们有一个对象
class Foo {
public $aname= 'Jane';
public $aaddress = '12 Blueberry Hill';
public $aage = '23';
}
如果我进行更新
update('Jane Doe', '12 Blueberry Hill');
它期望在此实例中发送的所有文件年龄可能会设置为空,因为它未包含在请求中。
现在补丁只会更新您包含的字段
update('Jane Doe', '112 Blueberry Hill');
因此此请求将更新姓名和地址,而不涉及年龄。
如果您遇到大小问题,那么您应该查看您使用的 api 是否包括我认为大多数 Google api 都包含的字段可选参数。然后你可以只请求你想要更新的字段,然后发送一个补丁。
我有一个大型数据集,我需要将其推送到 Google Merchant Center 中的帐户级运输设置。我正在通过 PHP 客户端库使用 Google 购物 API。
如果我加载数据的一个子集并在最后调用它一次,它工作正常:
$settings = $clientservice->shippingsettings->get('XXXXXX', 'XXXXXX');
for each data point that represents a service
for each data point that represents a rate group
create weight/destination state table
next
next
$settings->setServices($services);
$updatedSettings = $clientservice->shippingsettings->update('XXXXXX', 'XXXXXX', $settings);
但是,如果我加载整组数据并尝试立即应用它,我会收到 413 Request Too Large 响应。所以我想逐步加载它,一次加载一项服务。我试过这个:
$settings = $clientservice->shippingsettings->get('XXXXXX', 'XXXXXX');
for each data point that represents a service
for each data point that represents a rate group
create weight/destination state table
next
$settings->setServices([$service]);
$updatedSettings = $clientservice->shippingsettings->patch('XXXXXX', 'XXXXXX', $settings);
next
但是,每项服务只是覆盖前一项服务。据我所知,"patch" 似乎与 "update" 一样运作。有人知道如何进行这项工作吗?
不是 100% 确定我理解你问题的问题部分。但是我可以告诉您,此更新将更新您随请求发送的所有字段。假设我们有一个对象
class Foo {
public $aname= 'Jane';
public $aaddress = '12 Blueberry Hill';
public $aage = '23';
}
如果我进行更新
update('Jane Doe', '12 Blueberry Hill');
它期望在此实例中发送的所有文件年龄可能会设置为空,因为它未包含在请求中。
现在补丁只会更新您包含的字段
update('Jane Doe', '112 Blueberry Hill');
因此此请求将更新姓名和地址,而不涉及年龄。
如果您遇到大小问题,那么您应该查看您使用的 api 是否包括我认为大多数 Google api 都包含的字段可选参数。然后你可以只请求你想要更新的字段,然后发送一个补丁。