cryptom2/magento-nftloyalty

用于将NFT代币用作“折扣卡”的Magento 2 NFT忠诚度扩展程序,允许实施NFT忠诚度计划。

安装: 3

依赖项: 0

建议者: 0

安全: 0

星级: 5

关注者: 3

分支: 0

开放问题: 0

类型:magento2-module

v1.0.0 2023-03-28 18:26 UTC

This package is auto-updated.

Last update: 2024-09-28 21:43:49 UTC


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中。

功能

营销部分下的菜单

Menu

添加新的NFT

  • NFT名称 - 将在管理员区域的购物车规则中用于选择NFT(稍后,在输出到前端以显示确切应用了哪个NFT)
  • NFT合约Abi - 目前未使用,如果NFT需要一些自定义功能,将稍后使用
  • NFT符号 - 稍后将使用或代替NFT名称
  • NFT地址 - NFT地址,Magento使用此NFT地址检查客户的NFT余额

New NFT

配置

  • 启用 - 启用/禁用功能
  • RPC端点 - 端点
  • NFT智能合约ABI - NFT智能合约的默认JSON ABI。现在仅使用1个函数 balanceOf

Configuration

购物车页面上应用NFT部分

Cart Page0

Cart Page1

Cart Page2

结账页面上应用NFT部分

Checkout Page1

Checkout Page2

添加包含NFT条件的销售规则

Sales Rule

待办事项

现在扩展已具备基本功能,仅检查客户钱包中是否有或没有NFT。但它在未来还有很大的潜力。

以下是一些将在以后实现的任务:

  • 添加检查NFT代币数量,并根据客户拥有的NFT数量应用折扣(目前它只检查balanceOf大于零或没有)
  • 在结账和购物车页面上输出NFT名称、规则名称或NFT符号,以显示用于折扣的NFT
  • 在应用NFT期间,将客户钱包和一些数据作为签名消息从前端发送到后端(为了安全起见)
  • 根据某些条件(订单总价或商店购买金额)为客户铸造NFT
  • 输出客户钱包(账户)以选择应分配给网站或用于NFT应用的钱包
  • 实现某种NFT接口,以将折扣规则保存在NFT智能合约中,并在Magento中应用它们
  • 如果您感兴趣,请随意分支并修复/实现任何内容

作者

Ihor Oleksiienko

许可协议

Magento 2的NFT忠诚度扩展(Magento NFT Loyalty extension)根据MIT许可证授权 - 请参阅LICENSE文件以获取详细信息