Retail Commerce: Replacement of REST API with GraphQL API for Shopify
Retail Commerce: Replacement of REST API with GraphQL API for Shopify
Retail Commerce: Replacement of REST API with GraphQL API for Shopify
Shopify is deprecating the REST API for apps and integrations after February 1, 2025, and switching to GraphQL instead. In MYOB Acumatica 2025.1, the corresponding changes have been implemented in the ecommerce connector. The connector synchronizes the following entities by using GraphQL:
- Stock Item
- Non-Stock Item
- Template Item
- Product Availability
Stock Item and Non-Stock Item Entities
The following table shows how the ecommerce connector maps MYOB Acumatica fields to Shopify fields when it synchronizes stock items and non-stock items with Shopify by using the GraphQL API.
Tip: For details about the mapping for the Shopify user interface, see Stock Item Entity and Non-Stock Item Entity.
Table 1. Stock Item and Non-Stock Item Import/Export Mapping
Fields in MYOB Acumatica
Fields in Shopify
Field Name
Form Object
Field Name for Query
Object
Type
The Stock Items (IN202500) form if the exported item is a stock item or the Non-Stock Items (IN202000) form if the exported item is a non-stock item
Description
Summary area
title
ProductCreateInput / ProductUpdateInput
String
Item Class
General tab, Item Defaults section
productType
ProductCreateInput / ProductUpdateInput
String
Description
Description tab
descriptionHtml
ProductCreateInput / ProductUpdateInput
HTML
Vendor ID
Vendors tab
vendor
ProductCreateInput / ProductUpdateInput
String
Search Keywords
eCommerce tab
tags
ProductCreateInput / ProductUpdateInput
String
Category ID
Attributes tab, Sales Categories table
tags
ProductCreateInput / ProductUpdateInput
String
Visibility: Visible
eCommerce tab
status: ACTIVE
ProductCreateInput / ProductUpdateInput
String
Visibility: Featured
eCommerce tab
status: ARCHIVED
ProductCreateInput / ProductUpdateInput
String
Visibility: Invisible
eCommerce tab
status: DRAFT
ProductCreateInput / ProductUpdateInput
String
Inventory ID
Summary area
sku
ProductVariantsBulkInput / ProductVariantsBulkUpdate
String
Weight
Packaging tab, Dimensions section
inventoryItem.measurement.weight.value
ProductVariantsBulkInput.inventoryItem > InventoryItemInput.measurement > InventoryItemMeasurementInput.weight
Decimal
Weight UOM
Packaging tab, Dimensions section
inventoryItem.measurement.weight.unit
ProductVariantsBulkInput.inventoryItem > InventoryItemInput.measurement > InventoryItemMeasurementInput.weight
String
Default Price
Price/Cost tab, Price Management section
price
ProductVariantsBulkInput / ProductVariantsBulkUpdate
Money
Tax Category
General tab, Item Defaults section
taxable
ProductVariantsBulkInput / ProductVariantsBulkUpdate
Boolean
MSRP
Price/Cost tab, Price Management section
compareAtPrice
ProductVariantsBulkInput / ProductVariantsBulkUpdate
Money
Alternate Type: GTIN/EAN/UPC/ISBN or Barcode
Cross-Reference tab
barcode
ProductVariantsBulkInput / ProductVariantsBulkUpdate
String
A stock item
requiresShipping
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
A non-stock item, Require Shipment: Selected
General tab, Item Defaults section
Page Title
eCommerce tab
Product.seo.title
ProductCreateInput.seo / ProductUpdateInput.seo
String
Meta Description
eCommerce tab
Product.seo.description
ProductCreateInput.seo / ProductUpdateInput.seo
String
Template Item Entity
The following table shows how the ecommerce connector maps MYOB Acumatica fields to Shopify fields when it synchronizes template items with Shopify by using the GraphQL API.
Tip: For details about the mapping for the Shopify user interface, see Template Item Entity.
Table 2. Template Item Import/Export Mapping
Fields in MYOB Acumatica
Fields in Shopify
Field Name
Form Object
Field Name for Query
Object
Type
The Template Items (IN203000) form
Description
Summary area
title
ProductCreateInput / ProductUpdateInput
String
Item Class
General tab, Item Defaults section
productType
ProductCreateInput / ProductUpdateInput
String
Description
Description tab
descriptionHtml
ProductCreateInput / ProductUpdateInput
HTML
Vendor ID
Vendors tab
vendor
ProductCreateInput / ProductUpdateInput
String
Search Keywords
eCommerce tab
tags
ProductCreateInput / ProductUpdateInput
String
Category ID
Attributes tab, Sales Categories table
tags
ProductCreateInput / ProductUpdateInput
String
Visibility: Visible
eCommerce tab
status: ACTIVE
ProductCreateInput / ProductUpdateInput
String
Visibility: Featured
eCommerce tab
status: ARCHIVED
ProductCreateInput / ProductUpdateInput
String
Visibility: Invisible
eCommerce tab
status: DRAFT
ProductCreateInput / ProductUpdateInput
String
As part of the synchronization of the Template Item entity, .matrix items are exported to Shopify. The following table shows how the ecommerce connector maps MYOB Acumatica fields to Shopify fields when it synchronizes matrix items with Shopify by using the GraphQL API.
Table 3. Matrix Item Import/Export Mapping
Fields in MYOB Acumatica
Fields in Shopify
Field Name
Form Object
Field Name for Query
Object
Type
The Template Items form
Attribute
Configuration tab, Attributes section
options
ProductCreateBulkInput / ProductUpdateBulkInput
Array
Attribute Value
Item Creation tab
options values
ProductCreateBulkInput / ProductUpdateBulkInput
Array
Default Price
Price/Cost tab, Price Management section
price
ProductCreateBulkInput / ProductUpdateBulkInput
Money
Tax Category
General tab, Item Defaults section
taxable
ProductCreateBulkInput / ProductUpdateBulkInput
Boolean
MSRP
Price/Cost tab, Price Management section
compareAtPrice
ProductCreateBulkInput / ProductUpdateBulkInput
Money
Page Title
eCommerce tab
Product.seo.title
ProductCreateInput.seo / ProductUpdateInput.seo
String
Meta Description
eCommerce tab
Product.seo.description
ProductCreateInput.seo / ProductUpdateInput.seo
String
Availability: Set as Available (Track Qty.)
eCommerce tab
inventoryItem.tracked: true
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Set as Available (Don't Track Qty.)
eCommerce tab
inventoryItem.tracked: false
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Set as Pre-Order
eCommerce tab
inventoryItem.tracked: false
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Do Not Update
eCommerce tab
inventoryItem.tracked: No changes
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Set as Unavailable
eCommerce tab
inventoryItem.tracked: false
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
When Qty. Unavailable: Do Nothing
eCommerce tab
inventoryPolicy: No changes
ProductVariantsBulkInput.inventoryPolicy / ProductVariantsBulkUpdate.inventoryPolicy
String
When Qty. Unavailable: Set as Unavailable
eCommerce tab
inventoryPolicy: DENY
ProductVariantsBulkInput.inventoryPolicy / ProductVariantsBulkUpdate.inventoryPolicy
String
When Qty. Unavailable: Set as Pre-Order/Continue Selling
eCommerce tab
inventoryPolicy: CONTINUE
ProductVariantsBulkInput.inventoryPolicy / ProductVariantsBulkUpdate.inventoryPolicy
String
The Stock Items (IN202500) form if the matrix item is a stock item or the Non-Stock Items (IN202000) form if the matrix item is a non-stock item
Inventory ID
Summary area
sku
ProductVariantsBulkInput / ProductVariantsBulkUpdate
String
Weight
Packaging tab, Dimensions section
inventoryItem.measurement.weight.value
ProductVariantsBulkInput.inventoryItem > InventoryItemInput.measurement > InventoryItemMeasurementInput.weight
Decimal
Weight UOM
Packaging tab, Dimensions section
inventoryItem.measurement.weight.unit
ProductVariantsBulkInput.inventoryItem > InventoryItemInput.measurement > InventoryItemMeasurementInput.weight
String
Alternate Type: GTIN/EAN/UPC/ISBN or Barcode
Cross-Reference tab
barcode
ProductVariantsBulkInput / ProductVariantsBulkUpdate
String
Product Availability Entity
The following table shows how the ecommerce connector maps MYOB Acumatica fields to Shopify fields when it exports the availability of stock items to Shopify by using the GraphQL API.
Tip: For details about the mapping for the Shopify user interface, see Product Availability Entity.
Table 4. Product Availability Export Mapping
Fields in MYOB Acumatica
Fields in Shopify
Field Name
Form Object
Field Name for Query
Object
Type
The Stock Items (IN202500) form
Availability: Set as Available (Track Qty.)
eCommerce tab
inventoryItem.tracked: true
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Set as Available (Don't Track Qty.)
eCommerce tab
inventoryItem.tracked: false
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Set as Pre-Order
eCommerce tab
inventoryItem.tracked: false
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Do Not Update
eCommerce tab
inventoryItem.tracked: No changes
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
Availability: Set as Unavailable
eCommerce tab
inventoryItem.tracked: false
ProductVariantsBulkInput.inventoryItem / ProductVariantsBulkUpdate.inventoryItem
Boolean
The Shopify Stores (BC201010) form when When Qty. Unavailable is set to Store Default on the eCommerce tab of the Stock Items form
When Qty. Unavailable: Do Nothing
eCommerce tab
inventoryPolicy: No changes
ProductVariantsBulkInput.inventoryPolicy / ProductVariantsBulkUpdate.inventoryPolicy
String
When Qty. Unavailable: Set as Unavailable
eCommerce tab
inventoryPolicy: DENY
ProductVariantsBulkInput.inventoryPolicy / ProductVariantsBulkUpdate.inventoryPolicy
String
When Qty. Unavailable: Set as Pre-Order/Continue Selling
eCommerce tab
inventoryPolicy: CONTINUE
ProductVariantsBulkInput.inventoryPolicy / ProductVariantsBulkUpdate.inventoryPolicy
String
Fields Unavailable in GraphQL
The following table shows the Shopify fields that were available during the synchronization of the Stock Item, Non-Stock Item, and Template Item entities through the REST API but are unavailable with GraphQL.
Table 5. External Fields Unavailable Through GraphQL: Stock Item, Non-Stock Item, and Template Item
Tabs of the Entities (BC202000) form
External Object
External Field
REST API Object
REST API Field
Import Mapping, Import Filtering
Product
Published
Published
Import Mapping, Import Filtering, Export Mapping
Product
PublishedScope
PublishedScope
Import Mapping, Export Mapping
Product -> Product Variants
FulfillmentService
Product > Product Variants
fulfillment_service
PresentmentPrices
Product > Product Variants
presentment_prices
The following table shows the Shopify fields that were available during the synchronization of the Product Availability entity through the REST API but are unavailable with GraphQL.
Table 6. External Fields Unavailable Through GraphQL: Product Availability
External Field
REST API Object
REST API Field
RelocateIfNecessary
InventoryLevel
relocate_if_necessary
DisconnectIfNecessary
InventoryLevel
disconnect_if_necessary