tilleuls / sylius-click-n-collect-plugin
Sylius 点击取货插件,用于在 COVID-19 疫情期间安全销售和配送。
Requires
- php: >=8.0
- simshaun/recurr: ^5.0
- sylius/calendar: ^0.4.0
- sylius/mailer-bundle: ^2.0
- sylius/sylius: ^1.11
- symfony/lock: ^5.4 || ^6.0
- symfony/webpack-encore-bundle: ^1.16
Requires (Dev)
- phpspec/prophecy-phpunit: ^2.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^0.12.0
- phpstan/phpstan-doctrine: ^0.12.0
- phpstan/phpstan-strict-rules: ^0.12.0
- phpstan/phpstan-webmozart-assert: ^0.12.0
- phpunit/phpunit: ^9.0
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- sylius-labs/coding-standard: ^4.0
- symfony/browser-kit: ^5.4 || ^6.0
- symfony/css-selector: ^6.1
- symfony/debug-bundle: ^5.4 || ^6.0
- symfony/dotenv: ^5.4 || ^6.0
- symfony/error-handler: ^6.1
- symfony/intl: ^5.4 || ^6.0
- symfony/panther: ^2.0
- symfony/web-profiler-bundle: ^5.4 || ^6.0
Conflicts
- doctrine/inflector: ^1.4
README
在冠状病毒大流行期间安全销售和交付!
由于冠状病毒大流行,世界大部分地区处于封锁状态,大多数商店关闭或排长队。
Sylius 点击 'N' 取货 是一种在封锁期间(甚至封锁之后)安全销售和交付产品的解决方案。通过允许 无接触 取货并防止排队,Sylius 点击 'N' 取货 保护了您的员工和客户。
Sylius 点击 'N' 取货 是用于 Sylius 电子商务平台的插件。它是免费的(既指言论自由,也指啤酒免费),由 Les-Tilleuls.coop 的朋友们提供。它还可以与 Sylius 的所有现有功能和插件一起使用。
它如何工作?
作为客户
- 访问商店的网站
- 选择要订购的产品
- 选择取货地点(例如,实体店)
- 选择可用的时段
- 在线支付,或选择店内支付(也支持 Stripe 和 PayPal)。
- 可选:生成一个 PIN,您需要它来取回订单
- 在选定的时间段内在商店取货订单!如果适用,使用 PIN 码解锁箱子。
作为卖家
- 使用管理界面的日历来查看即将到来的订单
- 准备订单:将它们放入袋子,并使订单号码易于辨认(可以使用订书机或标记笔)
- 小心地清洁货架和锁(如果适用)以及适当的清洁产品
- 将袋子放入货架
- 可选:使用 PIN 锁定货架上的箱子以安全保管订单
- 远程监控取货,从窗户后面或使用监控摄像头
重复操作!
现在您可以在防止大流行传播的同时销售产品了!
安装
注意:要本地测试插件,请参阅 CONTRIBUTING.md
-
安装 Sylius 点击 'N' 取货:
composer require tilleuls/sylius-click-n-collect-plugin
-
注册包
<?php // config/bundles.php return [ // ... CoopTilleuls\SyliusClickNCollectPlugin\CoopTilleulsSyliusClickNCollectPlugin::class => ['all' => true], ];
-
导入配置
# config/packages/sylius_click_n_collect.yaml imports: - { resource: "@CoopTilleulsSyliusClickNCollectPlugin/Resources/config/app/config.yml" }
-
导入路由
# config/routes/sylius_click_n_collect.yaml coop_tilleuls_sylius_click_n_collect_shop: resource: "@CoopTilleulsSyliusClickNCollectPlugin/Resources/config/shop_routing.yml" prefix: /{_locale} requirements: _locale: ^[a-z]{2}(?:_[A-Z]{2})?$ coop_tilleuls_sylius_click_n_collect_admin: resource: "@CoopTilleulsSyliusClickNCollectPlugin/Resources/config/admin_routing.yml" prefix: /admin
-
更新本地实体
<?php // src/Entity/Shipping/ShippingMethod.php namespace App\Entity\Shipping; use CoopTilleuls\SyliusClickNCollectPlugin\Entity\ClickNCollectShippingMethod; use CoopTilleuls\SyliusClickNCollectPlugin\Entity\ClickNCollectShippingMethodInterface; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\ShippingMethod as BaseShippingMethod; /** * @ORM\Entity * @ORM\Table(name="sylius_shipping_method") */ class ShippingMethod extends BaseShippingMethod implements ClickNCollectShippingMethodInterface { use ClickNCollectShippingMethod { __construct as initializeShippingMethodLocations; } public function __construct() { parent::__construct(); $this->initializeShippingMethodLocations(); } // ... }
<?php // src/Entity/Shipping/Shipment.php namespace App\Entity\Shipping; use CoopTilleuls\SyliusClickNCollectPlugin\Entity\ClickNCollectShipment; use CoopTilleuls\SyliusClickNCollectPlugin\Entity\ClickNCollectShipmentInterface; use CoopTilleuls\SyliusClickNCollectPlugin\Validator\Constraints\SlotAvailable; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Shipment as BaseShipment; /** * @ORM\Entity * @ORM\Table(name="sylius_shipment", indexes={@ORM\Index(columns={"location_id", "collection_time"})}) * @SlotAvailable(groups={"sylius"}) */ class Shipment extends BaseShipment implements ClickNCollectShipmentInterface { use ClickNCollectShipment; }
-
覆盖模板
cp -R vendor/tilleuls/sylius-click-n-collect-plugin/tests/Application/templates/* templates
-
创建并执行数据库迁移
bin/console doctrine:migrations:diff bin/console doctrine:migrations:migrate
-
复制资产
bin/console assets:install bin/console sylius:theme:assets:install
-
添加您的产品库存或 导入它们
-
配置取货地点、可用时段以及您能安全并行服务的客户数量
-
创建专门的配送方式
-
可选:从管理员配置在线支付方式(默认支持 Stripe 和 PayPal)
导出数据
请参阅 docs/exports.md
您现在可以开始销售了!
许可证
大流行条款
使用本软件时,您必须确保所有使用该软件的员工和客户都没有风险!这意味着您必须减少员工与客户之间的接触次数(在大多数情况下,配送应为无接触),并且您必须为处理产品的员工提供口罩、免洗手消毒液和手套。
生命比利润更重要。
AGPL
Sylius Click 'N' Collect 遵循 AGPL-3.0 许可协议。对于不希望或无法使用 AGPL-3.0 许可协议软件的公司,也提供商业许可。如需更多信息,请联系我们:contact@les-tilleuls.coop。
致谢
由 Kévin Dunglas 为 Les-Tilleuls.coop 创建。商业支持可在 Les-Tilleuls.coop 获取。