The writeAccess
field was removed from the integration
entity without replacement as it was unused.
The defaultRunInterval
field is now required for ScheduledTask
entities. So you now have to provide the following required fields to create a new Scheduled Task in the DB:
name
scheduledTaskClass
runInterval
defaultRunInterval
status
All usages of \Shopware\Core\Content\Media\DeleteNotUsedMediaService
should be replaced with \Shopware\Core\Content\Media\UnusedMediaPurger
. There is no replacement for the countNotUsedMedia
method because counting the number of unused media on a system with a lot of media is time intensive.
The deleteNotUsedMedia
method exists on the new service but has a different signature. Context
is no longer required. To delete only entities of a certain type it was previously necessary to add an extension to the Context
object. Instead, pass the entity name to the third parameter of deleteNotUsedMedia
.
The first two parameters allow to process a slice of media, passing null to those parameters instructs the method to check all media, in batches.
- Changed the following classes to be internal:
\Shopware\Core\Framework\Webhook\Hookable\HookableBusinessEvent
\Shopware\Core\Framework\Webhook\Hookable\HookableEntityWrittenEvent
\Shopware\Core\Framework\Webhook\Hookable\HookableEventFactory
\Shopware\Core\Framework\Webhook\Hookable\WriteResultMerger
\Shopware\Core\Framework\Webhook\Message\WebhookEventMessage
\Shopware\Core\Framework\Webhook\ScheduledTask\CleanupWebhookEventLogTask
\Shopware\Core\Framework\Webhook\BusinessEventEncoder
\Shopware\Core\Framework\Webhook\WebhookDispatcher
With v6.6 we change the class hierarchy of the following flow event interfaces:
CustomerRecoveryAware
MessageAware
NewsletterRecipientAware
OrderTransactionAware
CustomerAware
CustomerGroupAware
MailAware
OrderAware
ProductAware
SalesChannelAware
UserAware
LogAware
When you have implemented one of these interfaces in one of your own event classes, you should now also implement the FlowEventAware
interface by yourself.
This is necessary to ensure that your event class is compatible with the new flow event system.
Before:
<?php declare(strict_types=1);
namespace App\Event;
use Shopware\Core\Framework\Log\LogAware;
class MyEvent implements LogAware
{
// ...
}
After:
<?php declare(strict_types=1);
namespace App\Event;
use Shopware\Core\Framework\Event\FlowEventAware;
class MyEvent implements FlowEventAware, LogAware
{
// ...
}
The methods setNextLanguage()
and setNextDefinition()
in \Shopware\Elasticsearch\Framework\Indexing\IndexerOffset
are removed, use selectNextLanguage()
or selectNextDefinition()
instead.
Before:
$offset->setNextLanguage($languageId);
$offset->setNextDefinition($definition);
After:
$offset->selectNextLanguage($languageId);
$offset->selectNextDefinition($definition);
The \Shopware\Core\Framework\Api\Sync\SyncOperationResult
class was removed without replacement, as it was unused.
The method getHandledMessages()
in abstract class \Shopware\Core\Framework\MessageQueue\ScheduledTask\ScheduledTaskHandler
was removed, please use the #[AsMessageHandler]
attribute instead.
Before:
class MyScheduledTaskHandler extends ScheduledTaskHandler
{
public static function getHandledMessages(): iterable
{
return [MyMessage::class];
}
public function run(): void
{
// ...
}
}
After:
#[AsMessageHandler(handles: MyMessage::class)]
class MyScheduledTaskHandler extends ScheduledTaskHandler
{
public function run(): void
{
// ...
}
}
- Use component
sw-external-link
instead ofsw-dashboard-external-link
The selector to initialize the AjaxModal
plugin will be changed to not interfere with Bootstrap defaults data-attribute API.
<a data-bs-toggle="modal" data-url="/my/route" href="/my/route">Open Ajax Modal</a>
<a data-ajax-modal="true" data-url="/my/route" href="/my/route">Open Ajax Modal</a>
- Use
DaysSinceFirstLoginRule
instead with operator=
anddaysPassed
of0
to achieve identical behavior
The generateNewPath()
and saveSeed()
methods in \Shopware\Storefront\Theme\AbstractThemePathBuilder
are now abstract, this means you should implement those methods to allow atomic theme compilations.
For more details refer to the corresponding ADR.