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