juicesweb/sylius-dpd-plugin

Sylius的简单DPD REST插件

安装: 3

依赖者: 0

建议者: 0

安全: 0

星星: 0

关注者: 0

分支: 2

类型:sylius-plugin

This package is not auto-updated.

Last update: 2024-09-29 14:52:23 UTC


README

Latest Version Software License

简介

此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'

现在就可以享受了!