juicesweb / sylius-dpd-plugin
Sylius的简单DPD REST插件
Requires
- php: ^7.4 || ^8.0
- ext-json: *
- ext-simplexml: *
- sylius/sylius: ~1.8.0 || ~1.9.0 || ~1.10.0 || ~1.11.0 || ~1.12.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
This package is not auto-updated.
Last update: 2024-09-29 14:52:23 UTC
README
简介
此sylius插件允许您使用DPD管理包裹运输。您可以定义DPD自提点
配送方式。
对于自提点配送,根据用户输入的送货地址生成一个包含自提点列表的交互式地图。
用法
待添加截图
安装
步骤1:安装并启用插件
打开命令行,进入您的项目目录,并执行以下命令以下载此插件的最新稳定版本
$ composer require cleverage/sylius-dpd-plugin
此命令需要您已全局安装Composer,请参阅Composer文档中的安装章节。
将包添加到您的 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'
现在就可以享受了!