getSalutationKey example

$formElement = $this->getCmsFormElement();

        $formCmsElementResolver->enrich(
            $formElement,
            new ResolverContext($this->createMock(SalesChannelContext::class)new Request()),
            new ElementDataCollection()
        );

        /** @var SalutationCollection $enrichedCollection */
        $enrichedCollection = $formElement->getData();

        $sortedKeys = array_values($enrichedCollection->map(static fn (SalutationEntity $salutation) => $salutation->getSalutationKey()));

        static::assertEquals(['d', 'c', 'b', 'a']$sortedKeys);
    }

    private function getCmsFormElement(): CmsSlotEntity
    {
        $slot = new CmsSlotEntity();
        $slot->setType('form');
        $slot->setUniqueIdentifier('id');

        return $slot;
    }
return $address;
    }

    /** * @throws InconsistentCriteriaIdsException */
    private function getSalutations(SalesChannelContext $salesChannelContext): SalutationCollection
    {
        $salutations = $this->salutationRoute->load(new Request()$salesChannelContextnew Criteria())->getSalutations();

        $salutations->sort(fn (SalutationEntity $a, SalutationEntity $b) => $b->getSalutationKey() <=> $a->getSalutationKey());

        return $salutations;
    }

    private function getCountries(SalesChannelContext $salesChannelContext): CountryCollection
    {
        $criteria = (new Criteria())
            ->addFilter(new EqualsFilter('active', true))
            ->addAssociation('country.states');

        $countries = $this->countryRoute->load(new Request()$criteria$salesChannelContext)->getCountries();

        
#[Package('buyers-experience')] class SalutationSorter extends AbstractSalutationsSorter
{
    public function getDecorated(): AbstractSalutationsSorter
    {
        throw new DecorationPatternException(self::class);
    }

    public function sort(SalutationCollection $salutations): SalutationCollection
    {
        $salutations->sort(function DSalutationEntity $a, SalutationEntity $b) {
            if ($a->getSalutationKey() === SalutationDefinition::NOT_SPECIFIED) {
                return -1;
            }

            if ($b->getSalutationKey() === SalutationDefinition::NOT_SPECIFIED) {
                return 1;
            }

            return $b->getSalutationKey() <=> $a->getSalutationKey();
        });

        return $salutations;
    }
public function collect(CmsSlotEntity $slot, ResolverContext $resolverContext): ?CriteriaCollection
    {
        return null;
    }

    public function enrich(CmsSlotEntity $slot, ResolverContext $resolverContext, ElementDataCollection $result): void
    {
        $context = $resolverContext->getSalesChannelContext();

        $salutations = $this->salutationRoute->load(new Request()$contextnew Criteria())->getSalutations();

        $salutations->sort(fn (SalutationEntity $a, SalutationEntity $b) => $b->getSalutationKey() <=> $a->getSalutationKey());

        $slot->setData($salutations);
    }
}
return $page;
    }

    /** * @throws InconsistentCriteriaIdsException */
    private function getSalutations(SalesChannelContext $context): SalutationCollection
    {
        $salutations = $this->salutationRoute->load(new Request()$contextnew Criteria())->getSalutations();

        $salutations->sort(fn (SalutationEntity $a, SalutationEntity $b) => $b->getSalutationKey() <=> $a->getSalutationKey());

        return $salutations;
    }

    /** * @throws InconsistentCriteriaIdsException */
    private function getCountries(SalesChannelContext $salesChannelContext): CountryCollection
    {
        $criteria = (new Criteria())
            ->addFilter(new EqualsFilter('country.active', true))
            
Home | Imprint | This part of the site doesn't use cookies.