google-api-php-client icon indicating copy to clipboard operation
google-api-php-client copied to clipboard

Method: Location get does not return price in serviceItems array

Open syedMSohaib opened this issue 1 year ago • 2 comments

Environment details

  • OS: MacOs
  • PHP version: 8.3.7

Steps to reproduce

  1. As mentioned in the documentation, i am trying to get data for a particular location and using below API, as the api returns the data, but in serviceItems price object is missing, As per https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.ServiceItem below should be the object
{
 "price": {
   object ([Money](https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.Money))
 },

 // Union field service_item_info can be only one of the following:
 "structuredServiceItem": {
   object ([StructuredServiceItem](https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.StructuredServiceItem))
 },
 "freeFormServiceItem": {
   object ([FreeFormServiceItem](https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.FreeFormServiceItem))
 }
 // End of list of possible types for union field service_item_info.
}

but in my case price node is missing

Code example

$response = $client->authorize()->request('GET', 'https://mybusinessbusinessinformation.googleapis.com/v1/locations/xxxx?readMask=name,languageCode,storeCode,title,phoneNumbers,categories,storefrontAddress,websiteUri,regularHours,specialHours,serviceArea,labels,adWordsLocationExtensions,latlng,openInfo,metadata,profile,relationshipData,moreHours,serviceItems');

$response = json_decode($response->getBody());

I also tried using https://developers.google.com/oauthplayground, still same result price object is missing !

Thanks!

syedMSohaib avatar Jul 02 '24 11:07 syedMSohaib

Hello @syedMSohaib! Thanks for the message.

Taking a look a the spec it mentions that price is optional: image

Is the price set for the ServiceItem?

Also, I recommend taking a look at the BusinessProfilePerformance service in the google-api-php-client-services repo here: https://github.com/googleapis/google-api-php-client-services/tree/main/src/BusinessProfilePerformance

That class should let you access the API without writing a query from the client and use the service instead. Shouldn't fix this issue mind you, but should make writing code easier.

Hectorhammett avatar Jul 12 '24 18:07 Hectorhammett

@Hectorhammett thanks for reaching back to me and for the suggestion.

In original code, i am actually using the service instead, just giving you the query API for a context to know that these are the variable i am asking for from api.

Is the price set for the ServiceItem?

The admin of our GBP Location is updating the pricing directly from google GBP portal, but while fetching the API it does not return the prices node,

Screenshot 2024-07-13 at 3 12 54 PM

If you want i can give the complete API response, and parameters !,

Will be eagerly waiting for your response, Thanks

syedMSohaib avatar Jul 13 '24 10:07 syedMSohaib

Hey, do you find a way around for this? I'm facing the same issues as well

kaijaz123 avatar Jun 13 '25 09:06 kaijaz123