Shopify
vendor/Shopify.js
Shopify()
Interact with the Shopify Admin API.
Returns
Void
request()
Make a request to a Shopify site.
This is just a wrapper to Mesa.shopify.request.
Returns
Void
Shopify.get(path[, options, connectionInfo])
Make a GET request to a Shopify site.
Parameters
path
string
options
Additional configuration for Shopify calls
Optional
connectionInfo
If you would like to connect to a separate Shopify website that Mesa is not installed on, create a Custom App and include a connectionInfo
object.
Optional
Returns
object
handleImageList(path, options, connectionInfo)
Handles listing of images with pagination.
Parameters
path
string
- Shopify REST endpoint path.
options
Object
- Query options.
connectionInfo
Object
- Connection info for external Shopify sites.
Returns
Array
Array of images in REST format.
handleImage(originalPath, options, connectionInfo)
Handles retrieval of a single image by its ID for a specific product.
Parameters
originalPath
string
- Original API endpoint path.
options
- Query options (not used in this implementation).
connectionInfo
- Connection information for Shopify.
Returns
Object
Processed image data in REST format.
handleProductCount(options, connectionInfo)
Handles the product count query.
Parameters
options
connectionInfo
Returns
handlePaginatedGraphQLQuery(queryFunction, options, transformFunction, connectionInfo)
Handles paginated GraphQL queries for products or variants.
Parameters
queryFunction
Function
- Function that generates a GraphQL query.
options
Object
- Query options, including filters and limits.
transformFunction
Function
- Function to transform the returned data into the desired REST format.
connectionInfo
Object
- Optional connection info for external Shopify sites.
Returns
Array
Array of transformed paginated results.
handleProductList(path, options, connectionInfo)
Handles listing of products with pagination.
Parameters
path
string
- Shopify REST endpoint path.
options
Object
- Query options.
connectionInfo
Object
- Connection info for external Shopify sites.
Returns
Array
Array of products in REST format.
Shopify.handleProduct(originalPath, options, connectionInfo)
Retrieve a single product by ID using GraphQL and convert it to REST format.
Parameters
originalPath
string
- Original API endpoint path.
options
- Options containing query parameters.
connectionInfo
- Connection information for a separate Shopify store.
Returns
object
Product data in REST format.
Shopify.handleProductPost(data[, connectionInfo])
Handles the creation of a product and its variants, if provided. Converts the REST payload into the appropriate GraphQL format.
Parameters
data
Object
- The product data in REST API format.
connectionInfo
- Connection information for Shopify.
Optional
Returns
Object
- The product payload in REST API format.
handleVariantList(path, options, connectionInfo)
Handles listing of variants with pagination.
Parameters
path
string
- Shopify REST endpoint path.
options
Object
- Query options.
connectionInfo
Object
- Connection info for external Shopify sites.
Returns
Array
Array of variants in REST format.
Shopify.handleVariant(originalPath, options, connectionInfo)
Retrieve a specific variant by product ID and variant ID using GraphQL and convert it to REST format.
Parameters
originalPath
string
- Original API endpoint path.
options
- Options containing query parameters.
connectionInfo
- Connection information for a separate Shopify store.
Returns
object
Variant data in REST format.
handleImagePost(data, connectionInfo)
Handles the creation of a product image. Converts the REST payload to GraphQL format and returns the response in REST format.
Parameters
data
Object
- The REST image payload.
connectionInfo
- Shopify connection info.
Returns
Object
- The image payload in REST format.
send(query, variables, connectionInfo, endpoint)
Send a GraphQL query to Shopify.
Parameters
query
variables
connectionInfo
endpoint
Returns
object
Shopify.post(path, data[, options, connectionInfo])
Make a POST request to a Shopify site.
By default Shopify calls will auto-wrap any outgoing JSON data, eg. Shopify.post('/admin/products.json', data) will result in { "product": { data } } use options.skipJsonWrap=true to override this behavior
Parameters
path
string
data
object
options
Additional configuration for Shopify calls
Optional
connectionInfo
If you would like to connect to a separate Shopify website that Mesa is not installed on, create a Custom App and include a connectionInfo
object.
Optional
Returns
object
handleVariantPut(productId, variantId, data, connectionInfo)
Handles updating a single variant for a specific product.
Parameters
productId
string
- The ID of the product.
variantId
string
- The ID of the variant.
data
Object
- The variant data to update.
connectionInfo
- Shopify connection details.
Returns
Object
- The updated variant in REST format.
handleProductPut(productId, data, connectionInfo)
Handles the updating of a product and its related entities (variants, images, etc.).
Parameters
productId
string
- The ID of the product to update.
data
Object
- The product data to update.
connectionInfo
- Shopify connection details.
Returns
Object
- The updated product in REST format.
Shopify.put(path, data[, options, connectionInfo])
Make a PUT request to a Shopify site.
By default Shopify calls will auto-wrap any outgoing JSON data, eg. Shopify.put('/admin/products.json', data) will result in { "product": { data } } use options.skipJsonWrap=true to override this behavior
Parameters
path
string
data
object
options
Additional configuration for Shopify calls
Optional
connectionInfo
If you would like to connect to a separate Shopify website that Mesa is not installed on, create a Custom App and include a connectionInfo
object.
Optional
Returns
object
Shopify.patch(path, data[, options, connectionInfo])
Make a PATCH request to a Shopify site.
By default Shopify calls will auto-wrap any outgoing JSON data, eg. Shopify.patch('/admin/products.json', data) will result in { "product": { data } } use options.skipJsonWrap=true to override this behavior
Parameters
path
string
data
object
options
Additional configuration for Shopify calls
Optional
connectionInfo
If you would like to connect to a separate Shopify website that Mesa is not installed on, create a Custom App and include a connectionInfo
object.
Optional
Returns
object
Shopify.delete(path[, options, connectionInfo])
Make a DELETE request to a Shopify site.
By default Shopify calls will auto-wrap any outgoing JSON data, eg. Shopify.post('/admin/products.json', data) will result in { "product": { data } } use options.skipJsonWrap=true to override this behavior
Parameters
path
string
options
Additional configuration for Shopify calls
Optional
connectionInfo
If you would like to connect to a separate Shopify website that Mesa is not installed on, create a Custom App and include a connectionInfo
object.
Optional
Returns
object
getMyshopifyDomain(context)
Returns myshopify domain from the credential.
Parameters
context
Returns
string
The myshopify domain. Ex: mystore.myshopify.com
getShopifyAdminUrl(context)
Returns myshopify domain from the credential.
Parameters
context
Returns
string
The Shopify admin url, including https://. Ex: https://admin.shopify.com/store/mystore
getShopifyUuid(context)
Returns the subdomain part of the myshopify domain from the credential.
Parameters
context
Returns
string
The subdomain part of the myshopify domain. Ex: mystore
deleteProduct(path, options, connectionInfo)
Delete a product by ID.
Parameters
path
string
- Shopify REST endpoint path.
options
Object
- Query options.
connectionInfo
Object
- Connection info for external Shopify sites.
Returns
Void
deleteVariant(path, options, connectionInfo)
Delete a variant by ID.
Parameters
path
string
- Shopify REST endpoint path.
options
Object
- Query options.
connectionInfo
Object
- Connection info for external Shopify sites.
Returns
Void
deleteImage(path, options, connectionInfo)
Delete a product image by ID.
Parameters
path
string
- Shopify REST endpoint path.
options
Object
- Query options.
connectionInfo
Object
- Connection info for external Shopify sites.
Returns
Void
getAllProducts([query={}, limit=250])
Make consecutive calls to Shopify in order to retrieve all products. https://help.shopify.com/en/api/reference/products/product
Parameters
query={}
object
Parameters to append to the Shopify querystring.
Optional
limit=250
number
Result count for Shopify query.
Optional
Examples
Returns
array
appendToArray([data], The)
Update a value if it already exists, or append it to the array if it does not exist. The example routine below should be every time we are updating tags
or note_attributes
to ensure that multiple Automations will work nicely with each other and not overwrite values set in other Automations.
Parameters
data
array
An array of values that you would like to append a value to
Optional
The
string
object
value to append to the array. For tags
, this would be a string
. For note_attributes
, this would be an object.
Examples
Returns
array
getVariantInventoryData(variantId)
Get inventory location information for a Shopify variant. https://help.shopify.com/en/api/reference/inventory/inventorylevel
Parameters
variantId
number
Shopify variant id.
Examples
Returns
<a href="#object-inventorydata">InventoryData</a>
buildVariantInventoryUpdate(variantId, inventoryCount[, adjust=true, fulfillableAlter])
Build InventoryLevel update information for a Shopify variant. https://help.shopify.com/en/api/reference/inventory/inventorylevel
Parameters
variantId
number
Shopify variant id.
inventoryCount
number
Value to set as inventory.
adjust=true
bool
Switch for available_adjustment vs available.
Optional
fulfillableAlter
Callback function allows fulfillment location to be altered.
Optional
Examples
Returns
<a href="#object-inventoryupdatedata">InventoryUpdateData</a>
{Object} Options()
options parameter for Shopify calls
By default Shopify calls will auto-wrap any outgoing JSON data, eg. Shopify.post('/admin/products.json', data) will result in { "product": { data } } use skipJsonWrap=true to override this behavior
Properties
Returns
Void
{Object} ConnectionInfo()
connectionInfo parameter for Shopify calls
Properties
Returns
Void
{Object} FulfillableLocation()
Fulfillable location shape returned by fulfillableAlter https://help.shopify.com/en/api/reference/inventory/location
Parameters
location_id
number
The ID of the location that the inventory level belongs to.
Returns
Void
{Function} fulfillableAlter(inventoryLevels)
Callback allows buildVariantInventoryUpdate fulfillment location to be altered. https://help.shopify.com/en/api/reference/inventory/inventorylevel
Parameters
inventoryLevels
Array.<Object>
Inventory levels for the variant at different locations.
inventoryLevels.inventory_item_id
number
Inventory item id for variant
inventoryLevels.location_id
number
Location id
inventoryLevels.available
number
Inventory count
inventoryLevels.updated_at
string
Last updated
Returns
<a href="#object-fulfillablelocation">FulfillableLocation</a>
fulfillableLocation
{Object} InventoryData()
Return from getVariantInventoryData.
Properties
Returns
Void
{Object} InventoryUpdateData()
Return from buildVariantInventoryUpdate. Will either have available or available_adjustment depending on adjust param. https://help.shopify.com/en/api/reference/inventory/inventorylevel
Properties
Returns
Void
Last updated
Was this helpful?