monsieurbiz/sylius-shipping-slot-plugin
Composer 安装命令:
composer require monsieurbiz/sylius-shipping-slot-plugin
包简介
A Sylius plugin which allow you to choose a delivery date and time.
README 文档
README
Shipping Slot
This plugin allows you to choose a delivery date and time.
Compatibility
| Sylius Version | PHP Version |
|---|---|
| 1.12 | 8.1 - 8.2 - 8.3 |
| 1.13 | 8.1 - 8.2 - 8.3 |
| 1.14 | 8.1 - 8.2 - 8.3 |
Installation
Install the plugin with composer:
composer require monsieurbiz/sylius-shipping-slot-plugin
If you are using Symfony Flex, the recipe will automatically do some actions.
For the installation without Flex, follow these additional steps
1. Add the plugin to your `config/bundles.php` file:
return [ // ... MonsieurBiz\SyliusShippingSlotPlugin\MonsieurBizSyliusShippingSlotPlugin::class => ['all' => true], ];
- Import the plugin's configuration by creating a new file
config/packages/monsieurbiz_sylius_shipping_slot_plugin.yamlwith the following content:
imports: - { resource: "@MonsieurBizSyliusShippingSlotPlugin/Resources/config/config.yaml" }
- Import the plugin's routing by creating a new file
config/routes/monsieurbiz_sylius_shipping_slot_plugin.yamlwith the following content:
monsieurbiz_sylius_shipping_slot_plugin: resource: "@MonsieurBizSyliusShippingSlotPlugin/Resources/config/routing.yaml"
- Copy the override template from the plugin to your
templatesdirectory:
mkdir -p templates/bundles/; cp -Rv vendor/monsieurbiz/sylius-shipping-slot-plugin/src/Resources/views/SyliusShopBundle templates/bundles/
After that, follow the next steps:
- Your
Orderentity should implement theMonsieurBiz\SyliusShippingSlotPlugin\Entity\OrderInterfaceand use theMonsieurBiz\SyliusShippingSlotPlugin\Entity\OrderTraittrait:
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; }
- Your
ProductVariantentity should implement theMonsieurBiz\SyliusShippingSlotPlugin\Entity\ProductVariantInterfaceand use theMonsieurBiz\SyliusShippingSlotPlugin\Entity\ProductVariantTraittrait:
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(); } }
- Your
Shipmententity should implement theMonsieurBiz\SyliusShippingSlotPlugin\Entity\ShipmentInterfaceand use theMonsieurBiz\SyliusShippingSlotPlugin\Entity\ShipmentTraittrait:
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; }
- Your
ShippingMethodentity should implement theMonsieurBiz\SyliusShippingSlotPlugin\Entity\ShippingMethodInterfaceand use theMonsieurBiz\SyliusShippingSlotPlugin\Entity\ShippingMethodTraittrait:
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(); } }
- Update your database schema with the following command:
bin/console doctrine:migrations:migrate
- Generate the migration and update your database schema:
bin/console doctrine:migrations:diff bin/console doctrine:migrations:migrate
Contributing
You can open an issue or a Pull Request if you want! 😘
Thank you!
统计信息
- 总下载量: 3.29k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-08-07
