crankycyclops/m2-module-discount-code-url

允许通过查询字符串或URL路径自动将折扣代码应用于浏览器会话。

安装数: 9299

依赖项: 0

建议者: 0

安全: 0

星标: 39

关注者: 4

分支: 15

开放性问题: 1

类型:magento2-module

1.0.4 2024-04-16 16:52 UTC

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设置”中找到

贡献者

如何贡献

想要修复错误或实现功能?如果是这样,首先,感谢您! 有人在那里觉得我的代码很有用,愿意为此做出贡献,我对此表示深深的感激。一般来说,我对问题和PR非常开放。我唯一的要求是您遵守以下指南

  1. 始终向develop分支提交pull请求。 我只在准备发布时将代码合并到master分支。

  2. 要保守,除非你正在修复某个已损坏的部分,否则请避免对现有代码进行更改。 你可能会找到实现现有行为的一种更优雅的方式,但这样做可能会引入新的错误,并且直到我不再有全职工作来担心的时候,我不会有时间进行大量的回归测试。我依赖这个模块来运行自己的生产环境,并且始终将稳定性置于优雅之上。

  3. 尊重现有的代码风格。 我知道我没有遵循Magento和许多人偏爱的PSR-2指南。这可能会让人抱怨,但我有自己的K&R风格的代码,我觉得更舒适,而且虽然我选择开源这个模块以帮助他人,但我仍然想享受与我自己的代码一起工作的乐趣。

  4. 避免在一个PR中混合无关的更改。 例如,假设你修复了在结账期间将折扣代码应用到购物车中的错误。在这个过程中,你意识到你可以通过重构另一个无关的类来使代码更高效。上述更改应该分成两个单独的PR,这样我可以独立检查和合并每一个。

  5. 在提交PR之前测试你的代码。 我将在批准和合并你的代码之前进行自己的测试,但你应该尽力确保它按预期工作,并且不会引入新的错误。

  6. 避免无谓的更改。 无谓的更改包括但不限于:无需改变周围代码的空白;没有良好理由地重命名类、函数和变量(这可能会引入错误);以及仅仅因为你有不同的偏好而改变现有代码的风格。

  7. 对于新的功能,首先考虑创建一个带有“feature request”标签的问题,这样我们就可以讨论它。 如果你想要实现一个新功能并直接跳到PR,那也可以,但我不一定想合并它,如果你投入了大量的工作,那会很遗憾。

  8. 要有礼貌。 如果你无礼、争论或对抗,我不会与你打交道。开源是一种协作体验,应该对每个人都是愉快的。

许可证

本项目受GPL v3许可。有关详细信息,请参阅LICENSE文件。