billie/shopware6-payment-module

Shopware 6 的 Billie 支付模块

安装次数: 2,844

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 1

公开问题: 1

类型:shopware-platform-plugin


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());