Please flag GraphQL Migration blockers here

Hi devs,

If there are specific issues or gaps on the GraphQL API, please post them in this topic, so we can support you with your migration from the REST API.

2 Likes

ProductsCount: (I haven’t confirmed if its been updated in the last couple of months) - it should match all features with products_count.

Product MediaImages: Ability to add new item with set Position. Should also return created_at, updated_at, Position, and linked variant_ids.

I will run more tests soon and add to this thread with my findings.

1 Like

Hello @Liam-Shopify, I am looking for a replacement for the below REST API that retrieves all article authors.

Since the above is a REST API, it is already deprecated, but I can’t find a direct replacement for this in the GraphQL API explorer. The AI assistant suggests using the get articles GraphQL API (which is paginated) and then extracting the authors out of it - articles - GraphQL Admin.

Please suggest.

order.order_number not being present in graphql

This is completely blocking us. There is too many code to rewrite and this is just stopping us from doing that and the deadline is approaching

See: Order number in Graphql API

The checkouts webhooks: Webhooks, whose payloads represents an AbandonedCheckout until they are converted to a real order, do not send the id of the line items(the AbandonedCheckoutLineItem), however this field is newly introduced in the GraphQL admin api: AbandonedCheckoutLineItem - GraphQL Admin

There is a key property on the line item in the webhook payload but no key field exists on the AbandonedCheckoutLineItem GraphQL object.

This is a major blocker for us as there is no way to map an AbandonedCheckoutLineItem from a webhook to its GraphQL equivalent resource- we can uniquely identify an AbandonedCheckoutLineItem by its unique key in the webhook but not in its GraphQL resource, and we can only identify AbandonedCheckoutLineItems by it’s id in GraphQL but can not by its key.

Can we please get the id of the line item sent along with the webhook, or add the key field to the GraphQL object, or even better both to make the REST vs GraphQL versions of the object consistent with each other? :slight_smile:

Another request- the fulfillment_events webhooks contain an updated_at: Webhooks

However I noticed there is no updatedAt field on the GraphQL resource, only a createdAt: FulfillmentEvent - GraphQL Admin

I do see the updated_at property is marked as deprecated on the FulfillmentEvent REST resource: FulfillmentEvent - REST however isn’t this not correct as the field is available on the GraphQL admin api? Can we get an updatedAt field on the GraphQL version of the resource as it does seem to be available and sent along in the webhooks?

For the Dispute/DisputeEvidence resource, there is a REST admin api endpoint to get the DisputeEvidence’s associated with a Dispute: Dispute Evidence - REST

However I can’t seem to find an equivalent query on the GraphQL admin api side. There is only a query to get a disputeEvidence given its id, disputeEvidence - GraphQL Admin, but none that actually lets you list the DisputeEvidence’s associated to a Dispute. There is a way to query for all Disputes via the shopifyPaymentsAccount query: shopifyPaymentsAccount - GraphQL Admin, but no connection to DisputeEvidence.

Is there a way to fetch the DisputeEvidence for a Dispute?

@Liam-Shopify currently we have the following gaps in GraphQL which we would require to be filled before we move on from the REST API;

REST Object REST Field Note
User permissions Not available even though it is documented. An error is returned when querying this field in GraphQL.
GiftCard api_client_id
user_id No longer accessible by public applications
line_item_id
Shop plan_name Doesn’t exist in GraphQL.
DisplayName can be used in GraphQL but not fully consistent with plan_name when shop is Frozen or Cancelled for example
OrderTransaction source_name Docs suggest using Order.source_name but it has a different meaning.
device_id
payments_refund_attributes.status
location_id Docs suggest using Order.location but it has a different meaning.
message
user_id No longer accessible by public applications
Refund user_id No longer accessible by public applications

Please let us know if you require more info

Similar to @geon, the omission of order.order_number is a big blocker for us.

1 Like

In the REST API Refund data, the OrderAdjustments have a field called “kind” (which is now deprecated): Refund - REST

Valid values: shipping_refund and refund_discrepancy .

This is no longer present in GraphQL - OrderAdjustment - GraphQL Admin

What would be the correct way to determine if the refund adjustment is related to shipping or not?

EDIT: found the answer, should be inside refundShippingLines now.