diff --git a/src/Shopify.php b/src/Shopify.php
index 4da3f9d810c45d0171516189db7e3d605ecf28fd..db6e113fdc805d293d3c5d32ad8f493c4b42cd4e 100644
--- a/src/Shopify.php
+++ b/src/Shopify.php
@@ -1,8 +1,64 @@
 <?php
 
+declare(strict_types=1);
+
 namespace Octolize\Shopify\Codeception;
 
+use Exception;
+
 class Shopify extends \Codeception\Module
 {
 
+    public function loginAsAdmin()
+    {
+        $i = $this->getModule('WebDriver');
+        $isPl = false;
+        if ($i->loadSessionSnapshot('admin')) {
+            return;
+        }
+        $i->amOnUrl($this->config['admin_url']);
+        try {
+            $i->moveMouseOver('body', rand(1, 100), rand(1, 100));
+            $i->seeInCurrentUrl(parse_url($this->config['admin_url'], PHP_URL_PATH));
+        } catch (Exception $e) {
+            $i->wait(rand(1, 2));
+            try {
+                $i->waitForText('Continue with Google', 10);
+            } catch (Exception $e) {
+                $i->waitForText('Kontynuuj z Google', 30);
+                $isPl = true;
+            }
+            $i->click($isPl?'Kontynuuj z Google':'Continue with Google');
+            try {
+                $i->seeInCurrentUrl(parse_url($this->config['admin_url'], PHP_URL_PATH));
+                $i->dontSeeInCurrentUrl('google.com');
+            } catch (Exception $e) {
+                try {
+                    $i->waitForText($this->config['admin_username']);
+                    $i->clickWithLeftButton(Locator::find('div', ['data-email' => $this->config['admin_username']]));
+                    $i->seeInCurrentUrl(parse_url($this->config['admin_url'], PHP_URL_PATH));
+                    $i->dontSeeInCurrentUrl('google.com');
+                } catch (Exception $e) {
+                    $i->wait(rand(1, 5));
+                    $i->moveMouseOver('body', rand(1, 100), rand(1, 100));
+                    try {
+                        $i->seeElement('input[name="identifier"]');
+                        $i->fillField('identifier', $this->config['admin_username']);
+                        $i->click($isPl ? 'Dalej' : 'Next');
+                        $i->wait(rand(1, 5));
+                        $i->moveMouseOver('input[name=Passwd]', rand(1, 100), rand(1, 100));
+                        $i->fillField('Passwd', $this->config['google_password']);
+                        $i->click($isPl ? 'Dalej' : 'Next');
+                    } catch (Exception $e) {
+                        $i->wait(rand(1, 5));
+                        $i->moveMouseOver('body', rand(1, 100), rand(1, 100));
+                        $i->fillField('password', $this->config['google_password']);
+                        $i->click($isPl ? 'Dalej' : 'Next');
+                    }
+                }
+            }
+        }
+        $i->saveSessionSnapshot('admin');
+    }
+
 }