- Shopify now requires Craft CMS 4.3.0+ or 5.0.0+.
- Added the “API Version” setting. (#128, #121)
- Added support for selecting products in Link fields. (Craft 5 only.)
- Product syncing now uses presentment prices by default. (#122)
- Added
craft\shopify\linktypes\Product
. - Added
craft\shopify\models\Settings::getApiVersion()
. - Added
craft\shopify\models\Settings::setApiVersion()
. - Added
craft\shopify\services\Api::getMetaFieldClass()
. - Added
craft\shopify\services\Api::getProductClass()
. - Added
craft\shopify\services\Api::getSupportedApiVersions()
. - Added
craft\shopify\services\Api::getVariantClass()
. - Deprecated
craft\shopify\services\Api::SHOPIFY_API_VERSION
. - Fixed a bug where variant column data could be larger than a MySQL TEXT column.
shopify/sync
commands now support a--throttle
option.- Fixed a bug where syncing Shopify variants would be limited to 50. (#115)
- Added
craft\shopify\console\controllers\SyncController::$throttle
. - Added
craft\shopify\services\Products::$throttle
. - Added
craft\shopify\services\Products::$sleepSeconds
.
- Fixed a bug where syncing meta fields would cause Shopify API rate limiting.
- Fixed a bug where variant meta fields weren’t being unpacked.
- Fixed a PHP error that could occur when syncing products with emojis. (#107)
- Fixed a PHP error that could occur when syncing products. (#105)
- Added support for syncing variant meta fields. (#99)
- Added the
syncProductMetafields
andsyncVariantMetafields
config settings, which can be enabled to sync meta fields. - Added
craft\shopify\models\Settings::$syncProductMetafields
. - Added
craft\shopify\models\Settings::$syncVariantMetafields
.
- Shopify now requires Craft CMS 5.0.0-beta.10 or later.
- Fixed a PHP error that could occur when syncing products with emojis. (#107)
- Fixed a PHP error that could occur when syncing products. (#105)
- Fixed a bug where syncing meta fields would cause Shopify API rate limiting.
- Fixed a bug where variant meta fields weren’t being unpacked.
- Added support for syncing variant meta fields. (#99)
- Added the
syncProductMetafields
andsyncVariantMetafields
config settings, which can be enabled to sync meta fields. - Added
craft\shopify\models\Settings::$syncProductMetafields
. - Added
craft\shopify\models\Settings::$syncVariantMetafields
.
Important
After updating, visit your Shopify store and go to Settings → Apps and sales channels → Develop apps → [your app] → Configuration, and update the Webhook version setting to 2023-10
.
- Syncing meta fields is no longer performed via a queue job.
- Shopify products’ reference handle is now
shopifyproduct
. (#77) - Deprecated
craft\shopify\jobs\UpdateProductMetadata
. - Removed
craft\shopify\events\ShopifyProductSyncEvent::$metafields
.ShopifyProductSyncEvent::$element->getMetaFields()
can be used instead. - shopify/shopify-api 5.2.0 or later is now required. (#81, #84)
- Fixed a bug where routes weren’t saving the chosen template.
- Added support for syncing variant inventory levels. (#61)
- Added
craft\shopify\elements\db\ProductQuery::publishedScope()
. (#65) - Fixed a PHP error that occurred when saving the plugin settings in headless mode. (#68)
- Fixed a bug where changes to the product field layout in the project config weren’t applying correctly. (#52)
- Fixed an error that occurred when installing the plugin on PostgreSQL. (#58)
- Fixed a SQL error that occurred when syncing products with several tags. (#54)
- Product metadata is now synced via a queue job to avoid the Shopify API rate limiting.
- Added the
resave/shopify-products
console command. (#47) - Products are now automatically re-saved when the “Product URI Format” setting is changed. (#47)
- The product field layout is now stored in the project config.
- Fixed a PHP error that occurred when saving invalid settings. (#39, #40)
- Added
craft\shopify\elements\Product::getCheapestVariant()
. - Added
craft\shopify\elements\Product::getDefaultVariant()
.
- Fixed a namespacing bug.
- Initial release under new management. If you’re upgrading from Shopify Product Fetcher, see Migrating from v2.x.