billie / shopware6-payment-module
Shopware 6 的 Billie 支付模块
3.0.0
2023-08-31 10:23 UTC
Requires
- php: ~8.1.0 || ~8.2.0
- billie/api-php-sdk: ^3.0.0
- shopware/core: ^6.5.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- rector/rector: ^0.17.1
- symplify/easy-coding-standard: ^11.5
- dev-master
- 3.0.x-dev
- 3.0.0
- 2.0.x-dev
- 2.0.1
- 1.0.2
- 1.0.1
- 1.0.0
- dev-task/BILLSWVI-106_66-compatibility
- dev-task/BILLSWVI-81_add-merchant-name
- dev-task/BILLSWVI-95_direct-debit
- dev-task/BILLSWVI-70_fix-cancel-delivery
- dev-task/BILLSWVI-95_direct-debit_phpstan
- dev-task/add-newer-shopware-version
- dev-task/BILLSWVI-74_65x-compatibility
- dev-task/BILLSWVI-74_65x-compatibility_64
- dev-task/BILLSWVI-83_apiv2
- dev-task/BILLSWVI-60_implement-account-change-payment
- dev-task/BILLSWVI-57_64-compatiblity
- dev-task/state-maschine
This package is auto-updated.
Last update: 2024-09-10 16:04:10 UTC
README
如果您不使用 Shopware 默认的发票文档,您需要通知 Billie 模块关于来自 ERP/WaWi 的发票号码。
请勿通过直接 SQL 命令修改任何数据!
以下代码片段将展示您如何正确修改 Billie 数据。您应该为此创建一个自定义插件,或者将其集成到您的 WaWi/ERP 系统的适配器中。
准备
您应该通过 Symfony 的 DI 注入实体存储库。服务的名称为 billie_order_data.repository
,它将是一个 \Shopware\Core\Framework\DataAbstractionLayer\EntityRepository
的实例。
您也可以通过容器获取它(不推荐)
/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */ /** @var \Shopware\Core\Framework\DataAbstractionLayer\EntityRepository $repository */ $repository = $container->get('billie_order_data.repository');
通过订单 ID 获取 Billie 订单数据
如果您只有订单的实体 ID,您需要使用存储库通过订单 ID 查找 Billie 数据。
/** @var \Shopware\Core\Framework\DataAbstractionLayer\EntityRepository $repository */ $orderId = 'YOUR_ORDER_ID'; $criteria = new \Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria(); $criteria->addFilter(new \Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsFilter( \Billie\BilliePayment\Components\Order\Model\OrderDataEntity::FIELD_ORDER_ID, $orderId )); /** @var \Billie\BilliePayment\Components\Order\Model\OrderDataEntity $billieOrderData */ $billieOrderData = $repository->search($criteria, \Shopware\Core\Framework\Context::createDefaultContext())->first(); $billieOrderData->getId(); // ID of the Billie order data entity $billieOrderData->getReferenceId(); // billie order reference id (uui) $billieOrderData->getExternalInvoiceNumber(); // external invoice number $billieOrderData->getExternalInvoiceUrl(); // external invoice url $billieOrderData->getExternalDeliveryNoteUrl(); // external delivery note url $billieOrderData->getBankIban(); // bank account: iban $billieOrderData->getBankBic(); // bank account: bic $billieOrderData->getBankName(); // bank account: name
从加载的订单实体获取 Billie 订单数据
如果您已经有一个订单实体的实例,您可以通过 getExtension
方法简单地获取订单数据。
/** @var \Shopware\Core\Checkout\Order\OrderEntity $order */ $order = [...]; /** @var \Billie\BilliePayment\Components\Order\Model\OrderDataEntity $billieOrderData */ $billieOrderData = $order->getExtension(\Billie\BilliePayment\Components\Order\Model\Extension\OrderExtension::EXTENSION_NAME); $billieOrderData->getExternalInvoiceNumber(); // External invoice number $billieOrderData->getExternalInvoiceUrl(); // external invoice url $billieOrderData->getExternalDeliveryNoteUrl(); // external delivery note url
更新 Billie 订单数据
如果您需要修改 Billie 数据,您应该使用实体存储库和 upsert
方法来完成此操作。
/** @var \Shopware\Core\Framework\DataAbstractionLayer\EntityRepository $repository */ $repository->upsert([ [ \Billie\BilliePayment\Components\Order\Model\OrderDataEntity::FIELD_ID => 'ID of the Billie order data entity', // This is always required ! \Billie\BilliePayment\Components\Order\Model\OrderDataEntity::FIELD_EXTERNAL_INVOICE_NUMBER => 'external invoice number', \Billie\BilliePayment\Components\Order\Model\OrderDataEntity::FIELD_EXTERNAL_INVOICE_URL => 'external invoice url', \Billie\BilliePayment\Components\Order\Model\OrderDataEntity::FIELD_EXTERNAL_DELIVERY_NOTE_URL => 'external delivery note url', ] ], \Shopware\Core\Framework\Context::createDefaultContext());