aligent / orocommerce-invoices-bundle
OroCommerce Bundle 允许客户通过店面门户查看/支付发票
v5.0.1
2022-08-23 03:48 UTC
Requires
- aligent/oro-fixtures: 5.0.*
- oro/commerce: 5.0.*
Requires (Dev)
- friendsofphp/php-cs-fixer: ~2.18.2 || ~2.19.0
- phpmd/phpmd: ^2.12
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
- symfony/phpunit-bridge: ~4.4.24 || ~6.1.0
This package is auto-updated.
Last update: 2024-09-06 01:44:35 UTC
README
此插件添加了客户在店面客户门户中查看/支付发票的功能。
功能
- 客户可以列出、筛选并查看他们的未支付/已支付/逾期发票
- 到期后,发票会自动标记为逾期
- 客户可以对一个或多个发票进行支付
- 客户可以对每个发票支付自定义金额
- 可以配置发票的允许支付方式
- 可以在支付表单上显示自定义消息
- 成功支付的发票金额会自动从剩余发票余额中扣除
- 全额支付后,发票会自动标记为已支付
- 发票可以在Oro后端(管理员)面板中列出、筛选和查看,包括相关的发票支付
- 可以在全局或按网站关闭发票功能
- 可以通过客户用户角色(ACL)权限控制对发票和支付的访问
要求
- OroCommerce 5.0
重要注释/注意事项
- 发票是完全独立的实体,目前它们与Oro订单、结账或支付条款方法没有任何关系。
- 目前只能通过API(例如,将发票推入Oro来自第三方系统)或通过Oro自定义来创建发票。
- 每个发票的剩余余额仅使用当前成功的发票支付金额进行更新,而不是Oro中所有发票支付的总金额(这样可以通过API设置每个发票的总支付金额)。这允许支持离线/外部支付。
- 此插件目前不会触发电子邮件通知(例如,发票已创建、发票到期/逾期、发票支付确认)。
- 重定向到外部支付表单(例如,PayPal Express)的支付方式可能不受支持,尚未进行测试。
- 发票支付被标记为
active: true
,一旦成功执行PaymentTransaction
,则更新为active: false
。
安装和使用
注意:根据您的本地环境调整说明
安装
通过Composer安装
composer require aligent/orocommerce-invoices-bundle
安装完成后,运行平台更新以执行安装
php bin/console oro:platform:update --env=prod
配置
安装完成后,访问 系统配置 => 商务 => 订单 => 发票管理
。
演示数据固定
为了测试目的,此插件包含一系列具有各种状态(开放、逾期、已支付)的示例发票。这些可以通过以下命令在开发环境中加载
php bin/console oro:migration:data:load --env=dev --fixtures-type=demo --bundles=AligentInvoiceBundle -vvv
数据库修改
创建数据库表
aligent_invoice
- 存储发票 (Invoice
)aligent_invoice_line_item
存储发票行项 (InvoiceLineItem
)aligent_invoice_payment
存储发票支付 (InvoicePayment
)aligent_invoice_payment_line_item
存储发票支付行项 (InvoicePaymentLineItem
)oro_enum_invoice_status
存储发票状态枚举值 (Extend\Entity\EV_Invoice_Status
)
示例API有效载荷
创建新发票
POST /admin/api/aligentinvoices
{ "data": { "type": "aligentinvoices", "id": "new-invoice-'1", "attributes": { "invoiceNo": "INV-413", "issueDate": "2022-06-01", "dueDate": "2022-07-01", "amount": "100.0000", "currency": "AUD", "totalTax": "11.11", "amountPaid": "80.0000", "createdAt": "2022-06-01T16:15:20Z", "updatedAt": "2022-06-14T02:10:24Z" }, "relationships": { "customer": { "data": { "type": "customers", "id": "7" } }, "lineItems": { "data": [ { "type": "aligentinvoicelineitems", "id": "line-item-1" }, { "type": "aligentinvoicelineitems", "id": "line-item-2" } ] }, "status": { "data": { "type": "aligentinvoicestatuses", "id": "open" } } } }, "included": [ { "type": "aligentinvoicelineitems", "id": "line-item-1", "attributes": { "amount": "25.0000", "currency": "AUD", "summary": "Line Item 1" } }, { "type": "aligentinvoicelineitems", "id": "line-item-2", "attributes": { "amount": "75.0000", "currency": "AUD", "summary": "Line Item 2" } } ] }
核心覆盖和扩展
无
路线图/剩余任务
- OroCommerce 5.0 支持
- 实现单元测试
- 实现演示发票数据设置(使用 aligent/oro-fixtures)
- 更新支付方法配置,使用规则而不是方法(#2)
- 提高发票支付JavaScript组件和SaveState功能的可靠性和可用性
- 添加全局禁用发票支付的能力(仅查看模式)
- 实现带有用户角色ACL权限的发票管理员的CRUD UI
- 自动清理旧的待处理发票支付(但保留失败记录)
- 确保支持外部托管的支付方法(例如,PayPal Express)
潜在的未来增强
- 实现支付确认电子邮件
- 自动创建OroCommerce订单的账单(通过支付条款支付)
- 可选地将发票行项目链接到OroCommerce订单
- 关于到期/逾期发票的通知(电子邮件和站内通知)
- Oro后台办公仪表板小部件(到期/逾期发票)