Merchant product: REST → GraphQL migration guide
Quick reference table
| REST endpoint |
GraphQL operation |
Notes |
POST /v3/ecommerce/product/batch/query |
Merchant.products |
Batch product read; paginated connection replaces unpaged dictionary |
POST /v3/ecommerce/advertiser/products/query |
Advertiser.availableItemsetItems(merchantId:) |
Flat SKU ID list; paginate with first/after |
POST /v3/ecommerce/product/advertisers/query |
Merchant.advertisersWithProductPermissions(skuIds:) |
Advertiser ids with permission for given SKUs |
Shared nested types and enums
MerchantProduct
| REST field |
GraphQL field |
GraphQL type |
Nullable |
Notes |
SkuId |
itemCode |
String! |
Not nullable |
N/A |
ProductName |
name |
String! |
Not nullable |
N/A |
CategoryId |
category.id |
ID! |
Not nullable |
REST exposes source category string; GraphQL resolves MerchantCategory object. |
BrandName |
brandName |
String |
Nullable |
Direct. |
Link |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
MobileLink |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
ImageLink |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
Availability |
availability |
String |
Nullable |
Direct. |
Description |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
AgeGroup |
ageGroup |
String |
Nullable |
Direct. |
GTIN |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
MPN |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
Color |
color |
String |
Nullable |
Direct. |
Size |
size |
String |
Nullable |
Direct. |
Price |
price |
Decimal |
Nullable |
Amount only; see Price.Amount. |
Price.Amount |
price |
Decimal |
Nullable |
Flattened to scalar on the GraphQL type. |
Price.CurrencyCode |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
Custom1 |
custom1Value |
String |
Nullable |
N/A |
Custom2 |
custom2Value |
String |
Nullable |
N/A |
Custom3 |
custom3Value |
String |
Nullable |
N/A |
Custom4 |
custom4Value |
String |
Nullable |
N/A |
Custom5 |
custom5Value |
String |
Nullable |
N/A |
CustomNumeric1 |
customNumeric1Value |
Decimal |
Nullable |
N/A |
CustomNumeric2 |
customNumeric2Value |
Decimal |
Nullable |
N/A |
CustomNumeric3 |
customNumeric3Value |
Decimal |
Nullable |
N/A |
CustomNumeric4 |
customNumeric4Value |
Decimal |
Nullable |
N/A |
CustomNumeric5 |
customNumeric5Value |
Decimal |
Nullable |
N/A |
CreatedAtUtc |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
LastUpdatedAtUtc |
N/A |
N/A |
N/A |
Not currently available in GraphQL. |
GraphQL-only fields with no REST counterpart: category.name, category.parents, category.fullPaths.