Arguments

input
RequestProductByURLInput!
required

An object containing the product’s URL.

Returns

RequestProductResponse.productID
RequestProductResponse

The productID is the unique identifier for the requested product, which can be used in subsequent queries to fetch product information.

Example - request

GraphQL
mutation RequestProductByURL {
  requestProductByURL(
    input: {
      url: "https://www.berkeyfilters.com/products/big-berkey"
      marketplace: SHOPIFY
    }
  ) {
    productID
  }
}

Example - response

Response
{
  "data": {
    "requestProductByURL": {
      "productID": "2863034826852"
    }
  }
}

Errors

Invalid URL

If the marketplace is set to AMAZON and provided URL is not a valid Amazon product URL then invalid amazon url error is returned

JSON
{
    "errors": [
        {
            "message": "invalid amazon url",
            "path": [
                "requestProductByURL"
            ]
        }
    ],
    "data": null
}

Product data not found

If the product data can’t be found, a PRODUCT_NOT_FOUND_ERROR is returned. This can happen for a variety of reasons:

  1. The URL doesn’t point to a valid product page (for example, the provided URL returns a 404 status code)
  2. The URL points to a valid product page, but the Shopify store has custom configuration that makes it so the product metadata can’t be found in the expected way

If the store can’t be supported, then the store’s products can only be made available in Rye by integrating the store with Rye via the Rye Shopify app.

JSON
{
    "errors": [
        {
            "message": "Product data not found - if the URL is valid, then the store may not be supported. See docs for more details",
            "locations": [
                {
                    "line": 2,
                    "column": 3
                }
            ],
            "path": [
                "requestProductByURL"
            ],
            "extensions": {
                "code": "PRODUCT_NOT_FOUND_ERROR"
            }
        }
    ],
    "data": null
}