Google Shopping API: Как обновлять параметры доставки? - PullRequest
0 голосов
/ 12 июня 2018

У меня большой набор данных, который мне нужно отправить в настройки доставки на уровне аккаунта в Google Merchant Center.Я использую Google Shopping API через клиентскую библиотеку PHP.

Если я загружаю подмножество данных и вызываю его один раз в конце, он работает нормально:

$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

Однако каждый сервис просто перезаписывает предыдущий.«Патч», кажется, работает так же, как «обновление», насколько я могу судить.Кто-нибудь знает, как заставить это работать?

1 Ответ

0 голосов
/ 12 июня 2018

Не уверен на 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 необязательный параметр fields, я думаю, что большинство из API Google делают.Затем вы можете запросить только те поля, которые хотите обновить, и затем отправить патч с этим.

...