cryptom2 / magento-nftloyalty
用于将NFT代币用作“折扣卡”的Magento 2 NFT忠诚度扩展程序,允许实施NFT忠诚度计划。
Requires
- cryptom2/base: ~1.0.0
- web3p/web3.php: ~1.0.0
README
允许使用NFT代币作为“折扣卡”的Magento 2 NFT忠诚度扩展程序,以实施NFT忠诚度计划。
描述
扩展程序为Magento 2购物车规则功能添加了新的条件,并检查客户钱包中是否有指定的NFT代币。
如果钱包中有NFT代币,则根据在Magento购物车规则中设置的规则应用折扣。
扩展程序允许在magento商店和web3项目之间实施折扣计划、合作伙伴计划、NFT忠诚度计划。
前端动作模块使用Metamask和web3.js,后端检查使用修改后的web3.php库。
工作原理
客户可以在购物车页面和结账页面应用NFT。
- 客户将自己的钱包连接到网站并点击
应用NFT
。 - 将客户钱包地址发送到后端并保存到报价表中。
- 保存后,Magento从NFT表中获取所有NFT,并通过调用NFT智能合约上的
balanceOf
来检查客户是否有任何或多个这些NFT。 - 如果客户有NFT表中的NFT,则找到的NFT将保存在单独的表中
- Magento重新计算总计(在应用NFT后运行collectTotals)
- 在汇总总计的过程中,Magento运行销售规则总计,该规则运行NFT规则,并在符合条件时应用购物车规则
- Magento更新前端摘要(总计)部分以输出折扣给客户
安装
添加PHP Web3存储库
PHP Web3库使用旧版本的 phpseclib
(v2),但magento需要版本3。这在web3分叉中已更改,因此您需要添加自定义存储库以用于web3.php。
"web3p/web3.php": { "type": "git", "url": "git@github.com:torys877/web3.php.git" }
Composer安装
composer require cryptom2/magento-nftloyalty:v1.0.0
运行magento
php bin/magento setup:upgrade
为测试安装Hardhat
Hardhat允许您运行本地以太坊网络,部署演示NFT并在本地测试模块。
转到
{project_folder}/vendor/cryptom2/magento-nftloyalty/hardhatnft
运行
npm install --save-dev hardhat
npx hardhat node
npx hardhat run --network localhost ./scripts/deploy.ts
运行这些命令后,您应该看到用于演示测试的NFT代币地址和Hardhat默认账户,这些账户可以集成到Metamask中。
功能
营销部分下的菜单
添加新的NFT
NFT名称
- 将在管理员区域的购物车规则中用于选择NFT(稍后,在输出到前端以显示确切应用了哪个NFT)NFT合约Abi
- 目前未使用,如果NFT需要一些自定义功能,将稍后使用NFT符号
- 稍后将使用或代替NFT名称NFT地址
- NFT地址,Magento使用此NFT地址检查客户的NFT余额
配置
启用
- 启用/禁用功能RPC端点
- 端点NFT智能合约ABI
- NFT智能合约的默认JSON ABI。现在仅使用1个函数balanceOf
购物车页面上应用NFT部分
结账页面上应用NFT部分
添加包含NFT条件的销售规则
待办事项
现在扩展已具备基本功能,仅检查客户钱包中是否有或没有NFT。但它在未来还有很大的潜力。
以下是一些将在以后实现的任务:
- 添加检查NFT代币数量,并根据客户拥有的NFT数量应用折扣(目前它只检查
balanceOf
大于零或没有) - 在结账和购物车页面上输出NFT名称、规则名称或NFT符号,以显示用于折扣的NFT
- 在应用NFT期间,将客户钱包和一些数据作为签名消息从前端发送到后端(为了安全起见)
- 根据某些条件(订单总价或商店购买金额)为客户铸造NFT
- 输出客户钱包(账户)以选择应分配给网站或用于NFT应用的钱包
- 实现某种NFT接口,以将折扣规则保存在NFT智能合约中,并在Magento中应用它们
- 如果您感兴趣,请随意分支并修复/实现任何内容
作者
Ihor Oleksiienko
许可协议
Magento 2的NFT忠诚度扩展(Magento NFT Loyalty extension)根据MIT许可证授权 - 请参阅LICENSE文件以获取详细信息