cleverage / sylius-dpd-plugin
为Sylius提供的简单DPD REST插件
1.0.3
2023-11-23 08:54 UTC
Requires
- php: ^7.4
- ext-json: *
- ext-simplexml: *
- 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-debug-extension: ^2.0.0
- 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
- phpspec/phpspec: ^7.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: 0.12.99
- phpstan/phpstan-doctrine: 0.12.33
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: 0.12.12
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^4.0
- 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.7.1
README
简介
此Sylius插件允许您使用DPD管理包裹运输。您可以定义DPD自提点
配送方式。
对于自提点配送,根据用户输入的送货地址生成一个交互式地图和自提点列表。
用法
待添加截图
安装
步骤1:安装并启用插件
打开命令控制台,进入您的项目目录并执行以下命令以下载此插件的最新稳定版本
$ composer require cleverage/sylius-dpd-plugin
此命令要求您全局安装了Composer,如Composer文档中的安装章节所述。
将bundle添加到您的config/bundles.php
<?php # config/bundles.php return [ // ... CleverAge\SyliusDpdPlugin\CleverAgeSyliusDpdPlugin::class => ['all' => true], // ... ];
步骤2:导入路由和配置
导入路由
# config/routes/clerverage_sylius_dpd.yaml clever_age_sylius_dpd_shop: resource: "@CleverAgeSyliusDpdPlugin/Resources/config/shop_routing.yml"
导入应用配置
# config/packages/_sylius.yaml imports: - { resource: "@CleverAgeSyliusDpdPlugin/Resources/config/config.yaml" }
步骤3:更新模板
管理后台部分
将以下内容添加到管理模板SyliusAdminBundle/Order/Show/_shipment.html.twig
中的运输标题之后
{% include "CleverAgeSyliusDpdPlugin/Shipment/Label/pickupPoint.html.twig" %}
示例在这里。
商店部分
将以下内容添加到商店模板SyliusShopBundle/Checkout/SelectShipping/_choice.html.twig
// ... {% if method.isDpdPickup %} {% include '@CleverAgeSyliusDpdPlugin/Shipment/selectedPickupPoint.html.twig' %} {% endif %} // ... {% if method.isDpdPickup %} {% include '@CleverAgeSyliusDpdPlugin/Shipment/map.html.twig' with { 'pickupPoints': [myPickupPoints] } %} {% endif %}
示例在这里。
然后添加以下内容到商店模板SyliusShopBundle/Common/Order/_shipments.html.twig
中的运输方式标题之后
{% include "@CleverAgeSyliusDpdPlugin/Shipment/Label/pickupPoint.html.twig" %}
示例在这里。
步骤4:更新样式、脚本和安装资源
将以下内容添加到商店模板SyliusShopBundle/_styles.html.twig
{% include '@SyliusUi/_stylesheets.html.twig' with { 'path': 'bundles/cleveragesyliusdpdplugin/css/dpd-map.css' } %} {% include '@SyliusUi/_stylesheets.html.twig' with { 'path': 'bundles/cleveragesyliusdpdplugin/css/dpd-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/cleveragesyliusdpsplugin/js/dpd-map.js') }}" type="module"></script> {% include '@SyliusUi/_javascripts.html.twig' with { 'path': 'bundles/cleveragesyliusdpdplugin/js/dpd-select-shipping.js' } %} {% include '@SyliusUi/_javascripts.html.twig' with { 'path': 'bundles/cleveragesyliusdpdplugin/js/dpd-select-pickup-point.js' } %} {% include '@SyliusUi/_javascripts.html.twig' with { 'path': 'bundles/cleveragesyliusdpdplugin/js/dpd-change-pickup-point.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\SyliusDpdPlugin\Contract\DpdShippingMethodInterface; use CleverAge\SyliusDpdPlugin\Entity\Traits\DpdShippingMethodTrait; use Sylius\Component\Core\Model\ShippingMethod as BaseShippingMethod; /** * @ORM\Entity() * @ORM\Table(name="sylius_shipping_method") */ class ShippingMethod extends BaseShippingMethod implements DpdShippingMethodInterface { use DpdShippingMethodTrait; }
订单资源
如果您尚未扩展订单资源,以下是它应该看起来的样子
<?php // src/Entity/Order.php declare(strict_types=1); namespace App\Entity; use CleverAge\SyliusDpdPlugin\Entity\Traits\DpdOrderTrait; 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 { use DpdOrderTrait; }
您可以在这里阅读有关扩展资源的更多信息。
更新运输和订单资源配置
接下来,您需要告诉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_dpd.yaml clever_age_sylius_dpd: securityKey: 'security key'
现在享受吧!