verbb / snipcart

A Craft CMS plugin to integrate with Snipcart.
Other
21 stars 9 forks source link

Deprecation Error: Elements’ `getSourceId()` method has been deprecated. Use `getCanonicalId()` instead. #39

Closed DynamiteGoesBoom closed 2 years ago

DynamiteGoesBoom commented 2 years ago

This bug appears to take place on entries with the snipcart field and devMode set to True.

To Reproduce

Steps to reproduce the behavior:

  1. Enable devMode
  2. Save Entry
  3. See error

Expected behavior

No deprecation error should appear

Screenshots

Screen Shot 2021-10-26 at 12 09 51 PM

Software

sjcallender commented 2 years ago

The deprecation error seems appropriate since Craft deprecated getSourceId in Craft version 3.7.0. https://github.com/craftcms/cms/blob/56cd1bc3ae79e120efbca43896a203a9a1148585/src/base/Element.php#L2311-L2322

This change in 3.7.17.2 is what is introducing it for first time, however.

We should look to update references to it.

@DynamiteGoesBoom - Can you show us the full stack trace of your errors?

DynamiteGoesBoom commented 2 years ago

Sure thing @sjcallender:

craft\errors\DeprecationException: Elements’ `getSourceId()` method has been deprecated. Use `getCanonicalId()` instead. in /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/fostercommerce/craft-snipcart/src/models/ProductDetails.php:532
Stack trace:
#0 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/base/Element.php(2244): craft\services\Deprecator->log()
#1 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/Component.php(140): craft\base\Element->getSourceId()
#2 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/base/Element.php(1660): yii\base\Component->__get()
#3 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/fostercommerce/craft-snipcart/src/models/ProductDetails.php(532): craft\base\Element->__get()
#4 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/fostercommerce/craft-snipcart/src/models/ProductDetails.php(211): fostercommerce\snipcart\models\ProductDetails->skuIsUniqueElementAttribute()
#5 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/validators/InlineValidator.php(84): fostercommerce\snipcart\models\ProductDetails->validateSku()
#6 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/validators/Validator.php(261): yii\validators\InlineValidator->validateAttribute()
#7 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/Model.php(368): yii\validators\Validator->validateAttributes()
#8 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/fostercommerce/craft-snipcart/src/fields/ProductDetails.php(320): yii\base\Model->validate()
#9 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/base/Element.php(2004): fostercommerce\snipcart\fields\ProductDetails->validateProductDetails()
#10 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/validators/InlineValidator.php(84): craft\base\Element->validateCustomFieldAttribute()
#11 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/validators/Validator.php(261): yii\validators\InlineValidator->validateAttribute()
#12 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/Model.php(368): yii\validators\Validator->validateAttributes()
#13 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/services/Elements.php(2518): yii\base\Model->validate()
#14 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/services/Elements.php(783): craft\services\Elements->_saveElementInternal()
#15 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/controllers/EntriesController.php(385): craft\services\Elements->saveElement()
#16 [internal function]: craft\controllers\EntriesController->actionSaveEntry()
#17 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array()
#18 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/Controller.php(181): yii\base\InlineAction->runWithParams()
#19 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/web/Controller.php(190): yii\base\Controller->runAction()
#20 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/Module.php(534): craft\web\Controller->runAction()
#21 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/web/Application.php(277): yii\base\Module->runAction()
#22 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/web/Application.php(586): craft\web\Application->runAction()
#23 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/craftcms/cms/src/web/Application.php(256): craft\web\Application->_processActionRequest()
#24 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/vendor/yiisoft/yii2/base/Application.php(392): craft\web\Application->handleRequest()
#25 /home/forge/domain-name.com/releases/a29688322bba151b9ff082c009ebfae0a733353c/web/index.php(21): yii\base\Application->run()
#26 {main}
sjcallender commented 2 years ago

Thanks. I think I got this covered in #40. You can try locally by changing your fostercommerce/craft-snipcart requirement in composer.json to "fostercommerce/craft-snipcart": "dev-patch-20211026 as 1.5.5" and run composer update.

We'll try to get this released this week.

johnnynotsolucky commented 2 years ago

@DynamiteGoesBoom this should be resolved in v1.5.6