Open
Description
What happened?
Description
Somehow, my best guest is during the upgrade to craft 5 but I am not sure, purchasables where created without inventory.
This results in an error when you want to edit the variant in the cp.
And then there is (as far as I know) no way to re-save the variant or a way to add the inventory for the purchasable manually.
The error:
2025-01-07 08:41:01 [web.ERROR] [TypeError] TypeError: craft\commerce\services\Inventory::getInventoryItemById(): Argument #1 ($id) must be of type int, null given, called in /Users/user/Sites/site-x/vendor/craftcms/commerce/src/services/Inventory.php on line 81 and defined in /Users/user/Sites/site-x/vendor/craftcms/commerce/src/services/Inventory.php:88
Stack trace:
#0 /Users/user/Sites/site-x/vendor/craftcms/commerce/src/services/Inventory.php(81): craft\commerce\services\Inventory->getInventoryItemById(NULL)
#1 /Users/user/Sites/site-x/vendor/craftcms/commerce/src/base/Purchasable.php(903): craft\commerce\services\Inventory->getInventoryItemByPurchasable(Object(craft\commerce\elements\Variant))
#2 /Users/user/Sites/site-x/vendor/craftcms/commerce/src/fieldlayoutelements/PurchasableStockField.php(87): craft\commerce\base\Purchasable->getInventoryItem()
#3 /Users/user/Sites/site-x/vendor/craftcms/cms/src/fieldlayoutelements/BaseField.php(365): craft\commerce\fieldlayoutelements\PurchasableStockField->inputHtml(Object(craft\commerce\elements\Variant), false)
#4 /Users/user/Sites/site-x/vendor/craftcms/cms/src/models/FieldLayout.php(1013): craft\fieldlayoutelements\BaseField->formHtml(Object(craft\commerce\elements\Variant), false)
#5 /Users/user/Sites/site-x/vendor/craftcms/cms/src/web/View.php(1776): craft\models\FieldLayout->craft\models\{closure}()
#6 /Users/user/Sites/site-x/vendor/craftcms/cms/src/models/FieldLayout.php(1012): craft\web\View->namespaceInputs(Object(Closure), NULL)
#7 /Users/user/Sites/site-x/vendor/craftcms/cms/src/controllers/ElementsController.php(937): craft\models\FieldLayout->createForm(Object(craft\commerce\elements\Variant), false, Array)
#8 /Users/user/Sites/site-x/vendor/craftcms/cms/src/controllers/ElementsController.php(411): craft\controllers\ElementsController->_prepareEditor(Object(craft\commerce\elements\Variant), false, true, Object(craft\web\Response), 'cp-screen-38334...', Object(Closure), Object(Closure), Object(Closure))
#9 [internal function]: craft\controllers\ElementsController->craft\controllers\{closure}(Object(craft\web\Response), 'cp-screen-38334...')
#10 /Users/user/Sites/site-x/vendor/craftcms/cms/src/web/CpScreenResponseFormatter.php(67): call_user_func(Object(Closure), Object(craft\web\Response), 'cp-screen-38334...')
#11 /Users/user/Sites/site-x/vendor/craftcms/cms/src/web/CpScreenResponseFormatter.php(48): craft\web\CpScreenResponseFormatter->_formatJson(Object(craft\web\Request), Object(craft\web\Response), Object(craft\web\CpScreenResponseBehavior))
#12 /Users/user/Sites/site-x/vendor/yiisoft/yii2/web/Response.php(1109): craft\web\CpScreenResponseFormatter->format(Object(craft\web\Response))
#13 /Users/user/Sites/site-x/vendor/craftcms/cms/src/web/Response.php(339): yii\web\Response->prepare()
#14 /Users/user/Sites/site-x/vendor/yiisoft/yii2/web/Response.php(340): craft\web\Response->prepare()
#15 /Users/user/Sites/site-x/vendor/yiisoft/yii2/base/Application.php(390): yii\web\Response->send()
#16 /Users/user/Sites/site-x/web/index.php(12): yii\base\Application->run()
#17 /Users/user/.composer/vendor/laravel/valet/server.php(110): require('/Users/user/Sit...')
#18 {main} {"memory":29708304,"exception":"[object] (TypeError(code: 0): craft\\commerce\\services\\Inventory::getInventoryItemById(): Argument #1 ($id) must be of type int, null given, called in /Users/user/Sites/site-x/vendor/craftcms/commerce/src/services/Inventory.php on line 81 at /Users/user/Sites/site-x/vendor/craftcms/commerce/src/services/Inventory.php:88)"}
Steps to reproduce
Not sure how this happend, but is there a way to add a inventory manually or something?
Expected behavior
Create the inventory when it is missing.
Actual behavior
It throws an error, leaving no way to edit the variant.
Craft CMS version
5.5.6
Craft Commerce version
5.2.11
PHP version
8.3
Operating system and version
Mac OS 15.2 (24C101)
Database type and version
MySQL 8.*
Image driver and version
No response
Installed plugins and versions
- Craft Commerce 5.2.11