webgriffe / sylius-back-in-stock-notification-plugin
及时通知客户和访客当产品库存恢复时
4.1.0
2024-06-03 08:17 UTC
Requires
- php: ^8.1
- doctrine/dbal: ^2.7 || ^3.0
- doctrine/migrations: ^3.0
- doctrine/orm: ^2.13
- psr/log: ^2.0
- sylius/mailer-bundle: ^1.8 || ^2.0
- sylius/resource: ^1.9
- sylius/resource-bundle: ^1.9
- sylius/sylius: ^1.12
- symfony/config: ^5.4 || ^6.0
- symfony/console: ^5.4 || ^6.0
- symfony/dependency-injection: ^5.4 || ^6.0
- symfony/form: ^5.4 || ^6.0
- symfony/framework-bundle: ^5.4 || ^6.0
- symfony/http-foundation: ^5.4 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/options-resolver: ^5.4 || ^6.0
- symfony/routing: ^5.4 || ^6.0
- symfony/translation-contracts: ^2.0
- symfony/validator: ^5.4 || ^6.0
- symfony/webpack-encore-bundle: ^1.15
- twig/twig: ^2.0 || ^3.0
- webmozart/assert: ^1.10
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.6
- dbrekelmans/bdi: ^1.1
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0.0
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- phpspec/phpspec: ^7.2
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.8.1
- phpstan/phpstan-doctrine: 1.3.37
- phpstan/phpstan-strict-rules: ^1.3.0
- phpstan/phpstan-webmozart-assert: ^1.2.0
- phpunit/phpunit: ^9.6 || ^10.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- rector/rector: ^0.15.0
- robertfausk/behat-panther-extension: ^1.1
- sylius-labs/coding-standard: ^4.2
- sylius-labs/suite-tags-extension: ^0.2
- symfony/browser-kit: ^5.4 || ^6.0
- symfony/debug-bundle: ^5.4 || ^6.0
- symfony/dotenv: ^5.4 || ^6.0
- symfony/flex: ^2.2.2
- symfony/intl: ^5.4 || ^6.0
- symfony/web-profiler-bundle: ^5.4 || ^6.0
- vimeo/psalm: ^5.9
Conflicts
- symfony/framework-bundle: 6.2.8
This package is auto-updated.
Last update: 2024-09-03 09:00:12 UTC
README
库存恢复通知插件
添加产品库存恢复时接收电子邮件通知的功能的插件
功能
订阅以在产品库存恢复时接收通知
在您的账户的相应部分查看您的订阅
在相应的管理部分查看您的客户订阅
要求
- PHP
^8.0
- Sylius
^1.11.2
安装
-
运行
composer require webgriffe/sylius-back-in-stock-notification-plugin --no-scripts
。 -
将插件添加到
config/bundles.php
文件
Webgriffe\SyliusBackInStockNotificationPlugin\WebgriffeSyliusBackInStockNotificationPlugin::class => ['all' => true],
- 通过在
config/routes/webgriffe_sylius_back_in_stock_notification_plugin.yaml
文件中创建文件来导入插件路由,内容如下
webgriffe_sylius_back_in_stock_notification_plugin: resource: "@WebgriffeSyliusBackInStockNotificationPlugin/config/routing.yaml"
- 在您的
config/packages/webgriffe_sylius_back_in_stock_notification_plugin.yaml
文件中导入所需的包配置
imports: - { resource: "@WebgriffeSyliusBackInStockNotificationPlugin/config/packages.yaml" }
- 更新数据库模式并安装资源
bin/console doctrine:migrations:migrate bin/console assets:install bin/console sylius:theme:assets:install
- 通过将源添加到您的 webpack 配置来安装插件 JS 资源
// Shop config Encore.setOutputPath('public/build/shop/') .setPublicPath('/build/shop') .addEntry('shop-entry', './vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/Resources/private/entry.js') .addEntry('webgriffe-sylius-back-in-stock-notification-entry', './vendor/webgriffe/sylius-back-in-stock-notification-plugin/public/js/back-in-stock-notification.js') // The line to add .disableSingleRuntimeChunk() .cleanupOutputBeforeBuild() .enableSourceMaps(!Encore.isProduction()) .enableVersioning(Encore.isProduction()) .enablePostCssLoader() .enableSassLoader()
- 运行 yarn build
bin/console yarn:build
- 清除缓存
bin/console cache:clear
配置
此模块使用 Symfony 命令发送邮件。不幸的是,命令行上下文不了解您的虚拟主机或域名。为了修复此问题,命令从订阅的渠道加载主机名,如果没有设置,则默认为 localhost
。在控制台命令中,URL 默认使用 http。您可以使用这些配置参数全局更改它
- 通过添加以下内容编辑
config/services.yml
文件
parameters: router.request_context.scheme: https
- 如前所述,此模块提供了一个检查产品库存的命令。您必须在 crontab 中设置命令
bin/console webgriffe:back-in-stock-notification:alert
,每天一次就足够了
0 12 * * * <absolute-php-path> <absolute-path-to-sylius-dir>/bin/console webgriffe:back-in-stock-notification:alert
可选配置
如果您想使用我们定义的 Behat 步骤,您必须将我们的 Behat 类包含在您的 autoloader-dev 中。为了实现这一点,请向您的 composer.json
添加以下行
"autoload-dev": { "psr-4": { "Tests\\Webgriffe\\SyliusBackInStockNotificationPlugin\\": "vendor/webgriffe/sylius-back-in-stock-notification-plugin/tests/" } },
贡献
要为此插件做出贡献,请克隆此存储库,为您的功能或错误修复创建一个分支,进行更改,然后确保所有测试都通过。
composer install (cd tests/Application && yarn install) (cd tests/Application && yarn build) (cd tests/Application && APP_ENV=test bin/console assets:install public) docker-compose up -d # only if you haven't mysql and mailhog installed locally (cd tests/Application && APP_ENV=test bin/console doctrine:database:create) (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create)
要设置插件数据库,请记住在 tests/Application/.env
和 tests/Application/.env.test
中配置您的数据库凭据。
运行插件测试
PHPUnit
vendor/bin/phpunit
PHPSpec
vendor/bin/phpspec run
Behat(非 JS 场景)
vendor/bin/behat --strict --tags="~@javascript"
Behat(JS 场景)
-
启动无头 Chrome
google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
- 安装 SSL 证书(只需一次)并在
127.0.0.1:8080
上运行测试应用程序的 web 服务器
symfony server:ca:install APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
- 运行 Behat
vendor/bin/behat --strict --tags="@javascript"
静态分析
Psalm
vendor/bin/psalm
PHPStan
vendor/bin/phpstan analyse -c phpstan.neon
编码标准
vendor/bin/ecs check
使用带有您的插件的 Sylius
- 使用
test
环境
(cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load)
APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
- 使用
dev
环境
(cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load)
APP_ENV=dev symfony server:start --dir=tests/Application/public --daemon
许可证
此插件受 MIT 许可证的保护。有关完整的许可证,请参阅 LICENSE 文件。
鸣谢
由 Webgriffe® 开发。