crankycyclops / m2-module-discount-code-url
允许通过查询字符串或URL路径自动将折扣代码应用于浏览器会话。
Requires
- php: ~7.1.0||~7.2.0||~7.3.0||~7.4.0||~8.0.0||~8.1.0||~8.2.0
- magento/magento-composer-installer: *
This package is auto-updated.
Last update: 2024-09-16 17:49:45 UTC
README
本模块允许通过查询字符串自动将折扣代码应用于浏览器会话。例如,使用默认设置,以下链接将确保在结账时应用MYDISCOUNTCODE优惠券
https://url.to.my.store?discount=MYDISCOUNTCODE
如果启用URL路径功能,还可以通过以下URL应用折扣代码
https://url.to.my.store/path/to/page/discount/MYDISCOUNTCODE
此URL将把折扣代码MYDISCOUNTCODE应用于会话,并内部重定向到https://url.to.my.store/path/to/page而不进行任何重定向。此功能是实验性的,并依赖于一些技巧,因此如果您启用它,请务必彻底测试您的网站以确保兼容性。
可以通过URL参数管理设置配置查询字符串参数和URL路径。默认值为"discount",但如果您将其更改为,例如"coupon",则以下URL将应用于会话
https://url.to.my.store?coupon=MYDISCOUNTCODE
https://url.to.my.store/path/to/page/coupon/MYDISCOUNTCODE(如果启用URL路径功能)
您可以在管理员中通过Cookie生命周期设置设置折扣代码cookie的有效期。默认值为0,这意味着cookie将存活,浏览器将记住优惠券,直到窗口或标签页关闭。大于0的值将表示优惠券应该被记住的秒数(例如,3600表示优惠券将记住一小时。)
入门
先决条件
我仅在Magento 2.3上进行了测试(我主要为了自己的需求开发这个模块,但现在将其开源以供可能需要的人使用),但它也应该适用于2.2,甚至可能适用于2.1。如果不行,请提交一个问题,如果我有时间,我会看看——不过,由于2.2自2.2.10起已停止支持,您可能应该升级到2.3...对吧?O:-)
我使用的语言功能至少需要PHP 7.1,但PHP 7.1已经停止支持,所以(理想情况下)这不应该成为任何人的问题。
安装
可以通过composer安装此模块
composer require crankycyclops/m2-module-discount-code-url
/path/to/store/bin/magento module:enable Crankycyclops_DiscountCodeUrl
/path/to/store/bin/magento setup:upgrade
清除缓存也是一个好主意。
配置选项可以在“商店”->“配置”->“客户”->“促销”->“折扣URL设置”中找到
贡献者
- James Colannino(作者) - crankycyclops
- Vladimir Bratukhin - vo1
- Hidayet Ok - hidonet
- Terrapin - TerrapinSoftware
如何贡献
想要修复错误或实现功能?如果是这样,首先,感谢您! 有人在那里觉得我的代码很有用,愿意为此做出贡献,我对此表示深深的感激。一般来说,我对问题和PR非常开放。我唯一的要求是您遵守以下指南
-
始终向develop分支提交pull请求。 我只在准备发布时将代码合并到master分支。
-
要保守,除非你正在修复某个已损坏的部分,否则请避免对现有代码进行更改。 你可能会找到实现现有行为的一种更优雅的方式,但这样做可能会引入新的错误,并且直到我不再有全职工作来担心的时候,我不会有时间进行大量的回归测试。我依赖这个模块来运行自己的生产环境,并且始终将稳定性置于优雅之上。
-
尊重现有的代码风格。 我知道我没有遵循Magento和许多人偏爱的PSR-2指南。这可能会让人抱怨,但我有自己的K&R风格的代码,我觉得更舒适,而且虽然我选择开源这个模块以帮助他人,但我仍然想享受与我自己的代码一起工作的乐趣。
-
避免在一个PR中混合无关的更改。 例如,假设你修复了在结账期间将折扣代码应用到购物车中的错误。在这个过程中,你意识到你可以通过重构另一个无关的类来使代码更高效。上述更改应该分成两个单独的PR,这样我可以独立检查和合并每一个。
-
在提交PR之前测试你的代码。 我将在批准和合并你的代码之前进行自己的测试,但你应该尽力确保它按预期工作,并且不会引入新的错误。
-
避免无谓的更改。 无谓的更改包括但不限于:无需改变周围代码的空白;没有良好理由地重命名类、函数和变量(这可能会引入错误);以及仅仅因为你有不同的偏好而改变现有代码的风格。
-
对于新的功能,首先考虑创建一个带有“feature request”标签的问题,这样我们就可以讨论它。 如果你想要实现一个新功能并直接跳到PR,那也可以,但我不一定想合并它,如果你投入了大量的工作,那会很遗憾。
-
要有礼貌。 如果你无礼、争论或对抗,我不会与你打交道。开源是一种协作体验,应该对每个人都是愉快的。
许可证
本项目受GPL v3许可。有关详细信息,请参阅LICENSE文件。