Möchte man in einem Plugin einen User anmelden geht das so.
In diesem Beispiel sind in dem Array $userdata die Daten des Users und dieser wird mit ACCOUNT_MODE_FAST_LOGIN als Gst für eine Bestellung eingeloggt und steht anschließend auch in der s_user Tabelle.
public function setShopwareUserdata($userdata) { $customer = new Shopware\Models\Customer\Customer(); $customer->setAccountMode(\Shopware\Models\Customer\Customer::ACCOUNT_MODE_FAST_LOGIN); $customer->setActive(true); $customer->setCustomerType(\Shopware\Models\Customer\Customer::CUSTOMER_TYPE_BUSINESS); $customer->setEmail($userdata['email']); $customer->setFirstname($userdata['firstname']); $customer->setLastname($userdata['lastname']); $salutation = 'ms'; if ('Herr' == $userdata['salutation']) { $salutation = 'mr'; } $customer->setSalutation($salutation); $customer->setRawPassword(md5('temp')); $customer->setShop(Shopware()->Shop()); $customer->setLanguageSubShop(Shopware()->Shop()); $billing = new \Shopware\Models\Customer\Address(); $billing->setFirstname($userdata['firstname']); $billing->setLastname($userdata['lastname']); $billing->setSalutation($salutation); $billing->setStreet($userdata['street']); $billing->setZipcode($userdata['zip']); $billing->setCity($userdata['city']); $billing->setCompany($userdata['company']); $billing->setPhone($userdata['phone']); $billing->setCountry(Shopware()->Models()->getRepository(\Shopware\Models\Country\Country::class)->findOneBy(['iso' => 'DE'])); $billing->setCustomer($customer); /** @var \Shopware\Bundle\AccountBundle\Service\RegisterServiceInterface $registerService */ $registerService = Shopware()->Container()->get('shopware_account.register_service'); /** @var \Shopware\Bundle\StoreFrontBundle\Struct\ShopContextInterface $context */ $context = Shopware()->Container()->get('shopware_storefront.context_service')->getShopContext(); $registerService->register($context->getShop(), $customer, $billing); Shopware()->Front()->Request()->setPost('email', $customer->getEmail()); Shopware()->Front()->Request()->setPost('passwordMD5', $customer->getPassword()); Shopware()->Modules()->Admin()->sLogin(true); }