monsieurbiz/sylius-shipping-slot-plugin

一个Sylius插件,允许您选择配送日期和时间。


README

Banner of Sylius Shipping Slot plugin

配送时间槽

Shipping Slot Plugin license Tests Security Flex Recipe

此插件允许您选择配送日期和时间。

安装

使用composer安装插件

composer require monsieurbiz/sylius-shipping-slot-plugin

如果您使用Symfony Flex,食谱将自动执行一些操作。

对于没有Flex的安装,请按照以下额外步骤操作

1. 将插件添加到您的`config/bundles.php`文件

return [
    // ...
    MonsieurBiz\SyliusShippingSlotPlugin\MonsieurBizSyliusShippingSlotPlugin::class => ['all' => true],
];
  1. 通过创建一个新文件config/packages/monsieurbiz_sylius_shipping_slot_plugin.yaml并包含以下内容来导入插件的配置
imports:
    - { resource: "@MonsieurBizSyliusShippingSlotPlugin/Resources/config/config.yaml" }
  1. 通过创建一个新文件config/routes/monsieurbiz_sylius_shipping_slot_plugin.yaml并包含以下内容来导入插件的路由
monsieurbiz_sylius_shipping_slot_plugin:
    resource: "@MonsieurBizSyliusShippingSlotPlugin/Resources/config/routing.yaml"
  1. 将插件中的覆盖模板复制到您的templates目录
mkdir -p templates/bundles/; cp -Rv vendor/monsieurbiz/sylius-shipping-slot-plugin/src/Resources/views/SyliusShopBundle templates/bundles/

之后,按照以下步骤操作

  1. 您的`Order`实体应该实现`MonsieurBiz\SyliusShippingSlotPlugin\Entity\OrderInterface`并使用`MonsieurBiz\SyliusShippingSlotPlugin\Entity\OrderTrait`特性
namespace App\Entity\Order;

use Doctrine\ORM\Mapping as ORM;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\OrderInterface as MonsieurBizOrderInterface;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\OrderTrait;
use Sylius\Component\Core\Model\Order as BaseOrder;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_order")
 */
#[ORM\Entity]
#[ORM\Table(name: 'sylius_order')]
-class Order extends BaseOrder
+class Order extends BaseOrder implements MonsieurBizOrderInterface
{
+    use OrderTrait;
}
  1. 您的`ProductVariant`实体应该实现`MonsieurBiz\SyliusShippingSlotPlugin\Entity\ProductVariantInterface`并使用`MonsieurBiz\SyliusShippingSlotPlugin\Entity\ProductVariantTrait`特性
namespace App\Entity\Product;

use Doctrine\ORM\Mapping as ORM;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\ProductVariantInterface as MonsieurBizProductVariantInterface;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\ProductVariantTrait;
use Sylius\Component\Core\Model\ProductVariant as BaseProductVariant;
use Sylius\Component\Product\Model\ProductVariantTranslationInterface;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_product_variant")
 */
#[ORM\Entity]
#[ORM\Table(name: 'sylius_product_variant')]
-class ProductVariant extends BaseProductVariant
+class ProductVariant extends BaseProductVariant implements MonsieurBizProductVariantInterface
{
+    use ProductVariantTrait;
+
    protected function createTranslation(): ProductVariantTranslationInterface
    {
        return new ProductVariantTranslation();
    }
}
  1. 您的`Shipment`实体应该实现`MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShipmentInterface`并使用`MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShipmentTrait`特性
namespace App\Entity\Shipping;

use Doctrine\ORM\Mapping as ORM;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShipmentInterface as MonsieurBizShipmentInterface;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShipmentTrait;
use Sylius\Component\Core\Model\Shipment as BaseShipment;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_shipment")
 */
#[ORM\Entity]
#[ORM\Table(name: 'sylius_shipment')]
-class Shipment extends BaseShipment
+class Shipment extends BaseShipment implements MonsieurBizShipmentInterface
{
+    use ShipmentTrait;
}
  1. 您的`ShippingMethod`实体应该实现`MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShippingMethodInterface`并使用`MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShippingMethodTrait`特性
namespace App\Entity\Shipping;

use Doctrine\ORM\Mapping as ORM;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShippingMethodInterface as MonsieurBizShippingMethodInterface;
+use MonsieurBiz\SyliusShippingSlotPlugin\Entity\ShippingMethodTrait;
use Sylius\Component\Core\Model\ShippingMethod as BaseShippingMethod;
use Sylius\Component\Shipping\Model\ShippingMethodTranslationInterface;

/**
 * @ORM\Entity
 * @ORM\Table(name="sylius_shipping_method")
 */
#[ORM\Entity]
#[ORM\Table(name: 'sylius_shipping_method')]
-class ShippingMethod extends BaseShippingMethod
+class ShippingMethod extends BaseShippingMethod implements MonsieurBizShippingMethodInterface
{
+    use ShippingMethodTrait {
+        ShippingMethodTrait::__construct as private shippingMethodTraitConstruct;
+    }
+
+    public function __construct()
+    {
+        parent::__construct();
+        $this->shippingMethodTraitConstruct();
+    }
+
    protected function createTranslation(): ShippingMethodTranslationInterface
    {
        return new ShippingMethodTranslation();
    }
}
  1. 使用以下命令更新您的数据库模式
bin/console doctrine:migrations:migrate
  1. 生成迁移并更新您的数据库模式
bin/console doctrine:migrations:diff
bin/console doctrine:migrations:migrate

赞助商

  • Glacier1891
  • WahsWash

贡献

如果您想,可以开启一个问题或Pull Request! 😘
谢谢!