diff --git a/src/models/Log.php b/src/models/Log.php index dd29a1e..c0c52ec 100644 --- a/src/models/Log.php +++ b/src/models/Log.php @@ -45,9 +45,13 @@ public function defineRules(): array return $rules; } - public function getVariant(): Variant + public function getVariant(): ?Variant { - return Variant::findOne($this->variantId); + if ($this->variantId) { + return Variant::findOne($this->variantId); + } + + return null; } public function validateVariant(string $attribute, ?array $params, InlineValidator $validator): void diff --git a/src/services/Service.php b/src/services/Service.php index 2e01f74..4038e13 100644 --- a/src/services/Service.php +++ b/src/services/Service.php @@ -75,6 +75,16 @@ public function sendMail(LogRecord $log, string $subject, ?string $templatePath $view->setTemplateMode($view::TEMPLATE_MODE_SITE); } + if (!$log->variantId) { + $error = Craft::t('craft-commerce-back-in-stock', 'Could not find Variant for Back In Stock Notification email.'); + + BackInStock::error($error); + + $view->setTemplateMode($oldTemplateMode); + + return false; + } + $variant = Variant::findOne($log->variantId); if (!$variant) {