shopgate / webcheckout-shopware6
Shopgate Webcheckout for Shopware 6
Requires
- jakeasmith/http_build_url: ^1.0.1
- rbdwllr/reallysimplejwt: ^5.0.0
- shopware/core: ^6.6.0
README
生产清单
安装
通过 Packagist 安装(推荐)
如果此插件在 packagist.org
上可用,则只需将其 composer 包添加到 Shopware 的根 composer
cd [shopware6 root folder]
composer require shopgate/webcheckout-shopware6
之后,只需在 root/composer.json
中递增插件版本,然后运行 composer update
以获取最新版本。
文件夹安装
您可以通过将插件文件夹复制到 custom/plugins
目录来手动安装。例如 custom/plugins/SgateWebcheckoutSW6
。然后您可以像其他插件一样安装和启用。对于此安装方法,请确保插件文件夹中有一个 vendor
目录,因为我们有 composer 依赖。您可以通过运行以下命令来完成此操作:
cd [plugin folder] # this is because we do not want to install shopware core files composer remove shopware/core
Composer 链接(开发)
将插件放置在 custom/plugins
文件夹中。现在您可以通过在根目录中运行此命令将其链接到 composer:
cd custom/plugins git clone git@github.com:shopgate/shopware6-webcheckout.git cd ../.. composer require shopgate/webcheckout-shopware6
启用并激活
通过命令行安装和激活模块
cd [shopware6 root folder]
bin/console plugin:refresh
bin/console plugin:install --activate SgateWebcheckoutSW6
如果您更喜欢,也可以通过 Shopware 管理面板安装和激活。
JS 编译
对于 Shopware 6.5+,在安装并启用插件后,您需要重新编译 JS。如果您有 GitHub 安装,这应该就足够了。
composer run build:js bin/console theme:compile
对于通过 Symfony2 Flex、zip 或 shopware-installer.phar.php 的常规安装
bin/build-js.sh
CSS 编译
每次您在 Admin > Extensions > Shopgate Webcheckout Config > Custom CSS
中配置 CSS 后,都需要重新编译您的主题(目前只能通过命令行)。
bin/console theme:compile
签名密钥
应用程序将把客户重定向到结账页面或其账户页面。为了保持登录信息的安全,我们需要加密应用程序发出的调用。因此,我们需要一种类型的密码来加密这些登录数据。Shopware 6 有一个本地的安全密钥,用于此类情况,它被称为 APP_SECRET
。
首先,您可以在 [root]/.env
文件中检查此值。在开发模式下,它可能设置为 APP_SECRET: 1
。这将不起作用,因为这只是一个糟糕的秘密,并意味着需要更改。
如果您没有在那里看到它,或者希望 Shopware 6 管理这些数据而不是将其保存在文件中,则可以按照以下步骤检查密钥值:
bin/console secrets:list --reveal
如果没有设置值,您可以通过在控制台中运行此命令为您的商店设置一个安全的密钥:
bin/console secrets:set APP_SECRET --random
请确保在创建密钥时遵守以下最低要求:
- 密钥长度至少为 8 个字符;
- 使用大写和小写字母;
配置
- 目前,我们不支持启用
设置登录/注册 > 清除并删除登出时的购物车
设置。如果您必须保持启用,可以为 Shopgate 应用程序创建一个单独的销售渠道。
开发
Cookie
您可以通过在浏览器中启用一个名为 sgWebView
的 Cookie 来部分模拟客户查看我们的应用程序。如果您想添加 CSS 类并查看它们如何显示,而不需要应用程序,这将很有用。
打开浏览器控制台并粘贴
// Enable view document.cookie="sgWebView=1; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/; SameSite=None; Secure"; // Disable view document.cookie="sgWebView=0; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/; SameSite=None; Secure";
CSS
如果您需要更快地处理 CSS,可以启用 SW6 的 storefront-watch 并更新我们的 CSS 文件 src/Resources/app/storefront/src/scss/base.scss
示例 CSS 处理
这些只是示例,请查看 body 类以了解哪个页面有什么处理
/* All pages */ .is-sg-app { display: none; } /* Login page -> account/login */ body.is-ctl-auth.is-act-loginpage.is-sg-app { display: none; } /* Registration page -> account/register */ body.is-ctl-register.is-act-accountregisterpage.is-sg-app { display: none; }
特殊
.is-sg-codebase-v1
- 指向旧的 Swift/Java 应用程序基础,我们可以通过在代理头中看到 Codebase:<11 来识别它.is-sg-codebase-v2
- 指向新的 React Native 应用程序基础,我们可以通过在代理头中看到 Codebase: 11+ 来识别它(例如libshopgate/25.0 (Jagdwelt 24 11.0.2 Codebase:11.0.2)
)
会话扩展
如果您正在创建自定义扩展。需要一个头部 shopgate-check: 1
,并在常规 SW6 店面 API 调用中提供,以扩展当前的客户会话(如果已过期)。这将确保他们不会太频繁地被注销。