cleverage / sylius-colissimo-plugin
Sylius 的 Colissimo 插件。
Requires
- php: ^7.4
- ext-json: *
- sylius/sylius: ~1.8.0 || ~1.9.0
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/extension-installer: ^1.0
- phpstan/phpstan: 0.12.74
- phpstan/phpstan-doctrine: 0.12.31
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: 0.12.12
- phpunit/phpunit: ^9.5
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^3.1
- symfony/browser-kit: ^4.4 || ^5.2
- symfony/debug-bundle: ^4.4 || ^5.2
- symfony/dotenv: ^4.4 || ^5.2
- symfony/intl: ^4.4 || ^5.2
- symfony/web-profiler-bundle: ^4.4 || ^5.2
- vimeo/psalm: 4.4.1
Conflicts
- api-platform/core: ^2.6
README
介绍
此 sylius 插件允许您使用 Colissimo 管理包裹运输。您可以定义如 colissimo 自提点
或 colissimo 家送
之类的送货方式。
对于自提点送货,根据用户输入的送货地址生成一个包含自提点列表的交互式地图。
用法
待添加截图
安装
步骤 1: 安装并启用插件
打开命令行,进入您的项目目录并执行以下命令以下载此插件的最新稳定版本
$ composer require cleverage/sylius-colissimo-plugin
此命令要求您全局安装 Composer,如 Composer 文档中的 安装章节 所述。
将捆绑包添加到您的 config/bundles.php
<?php # config/bundles.php return [ // ... CleverAge\SyliusColissimoPlugin\CleverAgeSyliusColissimoPlugin::class => ['all' => true], // ... ];
步骤 2: 导入路由和配置
导入路由
# config/routes/clerverage_sylius_colissimo.yaml clever_age_sylius_colissimo_shop: resource: "@CleverAgeSyliusColissimoPlugin/Resources/config/shop_routing.yml" clever_age_sylius_colissimo_admin: resource: "@CleverAgeSyliusColissimoPlugin/Resources/config/admin_routing.yml" prefix: /admin
导入应用程序配置
# config/packages/_sylius.yaml imports: - { resource: "@CleverAgeSyliusColissimoPlugin/Resources/config/config.yaml" }
步骤 3: 更新模板
管理员部分
将以下内容添加到管理员模板 SyliusAdminBundle/ShippingMethod/_form.html.twig
<h4 class="ui dividing header">{{ 'clever_age.admin.ui.shipping_method.title'|trans }}</h4> {{ form_row(form.colissimoPickup) }} {{ form_row(form.colissimoHomeDelivery) }}
示例在此 处。
接下来,在管理员模板 SyliusAdminBundle/Order/Show/_shipment.html.twig
中送货标题之后添加以下内容
{% include "CleverAgeSyliusColissimoPlugin/Shipment/Label/pickupPoint.html.twig" %}
示例在此 处。
商店部分
将以下内容添加到商店模板 SyliusShopBundle/Checkout/SelectShipping/_choice.html.twig
// ... {% if method.isColissimoPickup %} {% include '@CleverAgeSyliusColissimoPlugin/Shipment/selectedPickupPoint.html.twig' %} {% endif %} // ... {% if method.isColissimoPickup %} {% include '@CleverAgeSyliusColissimoPlugin/Shipment/map.html.twig' with { 'pickupPoints': [myPickupPoints] } %} {% endif %}
示例在此 处。
接下来,在商店模板 SyliusShopBundle/Common/Order/_shipments.html.twig
中送货方法标题之后添加以下内容
{% include "@CleverAgeSyliusColissimoPlugin/Shipment/Label/pickupPoint.html.twig" %}
示例在此 处。
步骤 4 : 更新样式、脚本和安装资源
将以下内容添加到商店模板 SyliusShopBundle/_styles.html.twig
{% include '@SyliusUi/_stylesheets.html.twig' with { 'path': 'bundles/cleveragesyliuscolissimoplugin/css/map.css' } %} {% include '@SyliusUi/_stylesheets.html.twig' with { 'path': 'bundles/cleveragesyliuscolissimoplugin/css/popup.css' } %} {# Important for the map ! #} <link rel="stylesheet" href="https://unpkg.com/leaflet@1.8.0/dist/leaflet.css" integrity="sha512-hoalWLoI8r4UszCkZ5kL8vayOGVae1oxXe/2A4AO6J9+580uKHDO3JdHb7NzwwzK5xr/Fs0W40kiNHxM9vyTtQ==" crossorigin="" />
示例在此 处。
接下来,在商店模板 SyliusShopBundle/_scripts.html.twig
中添加以下内容
<script src="{{ asset('bundles/cleveragesyliuscolissimoplugin/js/map.js') }}" type="module"></script> {% include '@SyliusUi/_javascripts.html.twig' with { 'path': 'bundles/cleveragesyliuscolissimoplugin/js/select-pickup-point.js' } %} {% include '@SyliusUi/_javascripts.html.twig' with { 'path': 'bundles/cleveragesyliuscolissimoplugin/js/change-pickup-point.js' } %} {% include '@SyliusUi/_javascripts.html.twig' with { 'path': 'bundles/cleveragesyliuscolissimoplugin/js/select-shipping.js' } %}
示例在此 处。
安装资源
bin/console assets:install --symlink
步骤 5 : 自定义资源
送货方法资源
如果您还没有扩展送货方法资源,它应该看起来像这样
<?php // src/Entity/ShippingMethod.php declare(strict_types=1); namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use CleverAge\SyliusColissimoPlugin\Model\ShippingMethodInterface; use CleverAge\SyliusColissimoPlugin\Model\ShippingMethodTrait; use Sylius\Component\Core\Model\ShippingMethod as BaseShippingMethod; /** * @ORM\Entity() * @ORM\Table(name="sylius_shipping_method") */ class ShippingMethod extends BaseShippingMethod implements ShippingMethodInterface { use ShippingMethodTrait; }
订单资源
如果您还没有扩展订单资源,它应该看起来像这样
<?php // src/Entity/Order.php declare(strict_types=1); namespace App\Entity; use CleverAge\SyliusColissimoPlugin\Model\OrderInterface; use CleverAge\SyliusColissimoPlugin\Model\OrderTrait; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Order as BaseOrder; /** * @ORM\Entity() * @ORM\Table(name="sylius_order") */ class Order extends BaseOrder implements OrderInterface { use OrderTrait; }
您可以在 此处 阅读有关扩展资源的更多信息。
更新送货和订单资源配置
接下来,您需要告诉 Sylius 您将使用您自己的扩展资源
# config/packages/_sylius.yaml sylius_shipping: resources: shipping_method: classes: model: App\Entity\ShippingMethod sylius_order: resources: order: classes: model: App\Entity\Order
步骤 6 : 更新数据库模式
bin/console doctrine:migrations:diff bin/console doctrine:migrations:migrate
步骤 7 : 配置插件
// config/packages/cleverage_sylius_colissimo.yaml clever_age_sylius_colissimo: encryptionKey: 'your encryption key'
现在就可以享受了!