3brs / sylius-zasilkovna-plugin
Sylius 的 Zasilkovna 插件
Requires
- php: ^7.3|^8.0
- ext-json: *
- 3brs/sylius-shipment-export-plugin: 0.5.*
- sylius/sylius: 1.7.*|1.8.*|1.9.*|1.10.*
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- friendsofsymfony/oauth-server-bundle: ^1.6 || >2.0.0-alpha.0 ^2.0@dev
- lakion/mink-debug-extension: ^2.0.0
- phpspec/phpspec: ^7.0
- phpstan/phpstan: 0.12.88
- phpstan/phpstan-doctrine: 0.12.37
- phpstan/phpstan-symfony: ^0.12.7
- phpunit/phpunit: ^8.5
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^4.0.0
- symfony/browser-kit: ^5.2
- symfony/debug-bundle: ^5.2
- symfony/dotenv: ^5.2
- symfony/intl: ^5.2
- symfony/web-profiler-bundle: ^5.2
Conflicts
- symfony/browser-kit: 4.1.8
- symfony/dependency-injection: 4.1.8
- symfony/dom-crawler: 4.1.8
- symfony/routing: 4.1.8
- symfony/symfony: 4.1.8
This package is auto-updated.
Last update: 2024-08-30 01:34:20 UTC
README
Zásilkovna 插件
功能
- 允许通过 [cz] [pl] [sk] [hu] [ro] 向 Zasilkovna 分支或通过 Zasilkovna 服务发送到客户地址。
- 用户可以在结账过程中的运货步骤中从地图中选择 Zásilkovna 分支。
- 在最终结账步骤和后台面板中都可以看到 Zásilkovna 分支。
- 导出带有 Zasilkovna 运货的 CSV(无论是到 Zasilkovna 分支还是客户地址),并轻松将其导入到 Zasilkovna 系统中。
安装
-
运行
$ composer require 3brs/sylius-zasilkovna-plugin
。 -
将插件类添加到您的
config/bundles.php
return [ ... ThreeBRS\ShipmentExportPlugin\ThreeBRSSyliusShipmentExportPlugin::class => ['all' => true], ThreeBRS\SyliusZasilkovnaPlugin\ThreeBRSSyliusZasilkovnaPlugin::class => ['all' => true], ];
-
将资源添加到
config/packeges/_sylius.yaml
imports: ... ... - { resource: "@ThreeBRSSyliusZasilkovnaPlugin/Resources/config/resources.yml" }
-
将路由添加到
config/_routes.yaml
threebrs_sylius_shipment_export_plugin: resource: '@ThreeBRSSyliusShipmentExportPlugin/Resources/config/routing.yml' prefix: /admin
-
您的实体
Shipment
必须实现\ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShipmentInterface
。您可以使用 trait\ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShipmentTrait
。<?php declare(strict_types=1); namespace App\Entity\Shipping; use Doctrine\ORM\Mapping as ORM; use ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShipmentInterface; use ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShipmentTrait; use Sylius\Component\Core\Model\Shipment as BaseShipment; /** * @ORM\Entity * @ORM\Table(name="sylius_shipment") */ class Shipment extends BaseShipment implements ZasilkovnaShipmentInterface { use ZasilkovnaShipmentTrait; }
-
您的实体
ShippingMethod
必须实现\ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShipmentInterface
。您可以使用 trait\ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShipmentTrait
。<?php declare(strict_types=1); namespace App\Entity\Shipping; use Doctrine\ORM\Mapping as ORM; use ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShippingMethodInterface; use ThreeBRS\SyliusZasilkovnaPlugin\Model\ZasilkovnaShippingMethodTrait; use Sylius\Component\Core\Model\ShippingMethod as BaseShippingMethod; /** * @ORM\Entity * @ORM\Table(name="sylius_shipping_method") */ class ShippingMethod extends BaseShippingMethod implements ZasilkovnaShippingMethodInterface { use ZasilkovnaShippingMethodTrait; }
-
将
@ThreeBRSSyliusZasilkovnaPlugin/Admin/ShippingMethod/:zasilkovnaForm.html.twig
包含到@SyliusAdmin/ShippingMethod/_form.html.twig
中。... {{ include('@ThreeBRSSyliusZasilkovnaPlugin/Admin/ShippingMethod/_zasilkovnaForm.html.twig') }}
-
将
@ThreeBRSSyliusZasilkovnaPlugin/Shop/Checkout/SelectShipping/_zasilkovnaChoice.html.twig
包含到@SyliusShop/Checkout/SelectShipping/_choice.html.twig
中。... {{ include('@ThreeBRSSyliusZasilkovnaPlugin/Shop/Checkout/SelectShipping/_zasilkovnaChoice.html.twig') }}
-
在
@SyliusShop/Common/_address.html.twig
中将{% include '@SyliusShop/Common/_address.html.twig' with {'address': order.shippingAddress} %}
替换为{{ include('@ThreeBRSSyliusZasilkovnaPlugin/Shop/Common/Order/_addresses.html.twig') }}
。 -
在
@SyliusAdmin/Common/_address.html.twig
中将{% include '@SyliusAdmin/Common/_address.html.twig' with {'address': order.shippingAddress} %}
替换为{{ include('@ThreeBRSSyliusZasilkovnaPlugin/Admin/Common/Order/_addresses.html.twig') }}
。 -
在
@ThreeBRSSyliusShipmentExportPlugin/_row.html.twig
中覆盖模板。{% extends '@!ThreeBRSSyliusShipmentExportPlugin/_row.html.twig' %} {% block address %} {% if row.zasilkovna %} {{ include('@ThreeBRSSyliusZasilkovnaPlugin/_exporterRow.html.twig') }} {% else %} {{ parent() }} {% endif %} {% endblock %}
-
创建并运行 doctrine 数据库迁移。
有关如何使用自己的实体的指南,请参阅 Sylius 文档 - 自定义模型
用法
- 对于发送到 Zasilkovna 分支的配送,在后台面板中创建新的配送方式,设置
Zásilkovna API 密钥
并留空承运商 ID
。 - 对于发送到客户地址的配送,在后台面板中创建新的配送方式,设置
承运商 ID
并留空Zásilkovna API 密钥
。 - 如果您需要根据国家过滤地图中的点,请使用
在地图中仅显示特定国家的取货点
。如果留空,将显示所有支持国家中的所有点。 - 对于代码为 'zasilkovna' 的配送方式,将生成 Zásilkovna CSV 导出,您可以在参数中更改此设置,它是一个数组(因此可以包含多个代码,例如,如果您需要为不同的国家提供不同的价格,您将需要更多的配送方式;始终使用相同的 API 密钥是可以的)
parameters: shippingMethodsCodes: ['zasilkovna']
您应该将这两种方法都添加到该数组中,包括发送到 Zasilkovna 分支和通过 Zasilkovna 服务发送到客户地址的方法。 - Packeta API 文档:https://docs.packetery.com/03-creating-packets/01-csv-import.html
- 您可以通过参数扩展国家列表。
parameters: threebrs_sylius_zasilkovna_plugin_payment_methods: ['cz', 'pl', 'sk', 'hu', 'ro']
开发
用法
- 在
/src
中开发您的插件。 - 查看
bin/
目录以获取有用的命令。
测试
在您的更改之后,您必须确保测试仍然通过。
$ composer install
$ bin/console doctrine:schema:create -e test
$ bin/behat
$ bin/phpstan.sh
$ bin/ecs.sh
许可
此库采用 MIT 许可。