juicesweb/sylius-click-n-collect-plugin

Sylius 点击取货插件,用于在 COVID-19 大流行期间安全地销售和交付。

dev-main 2023-05-02 18:41 UTC

This package is not auto-updated.

Last update: 2024-09-21 17:45:54 UTC


README

Click 'N' Collect Approved by Sylius

在冠状病毒大流行期间安全地销售和交接!

由于冠状病毒大流行,世界上大部分地区处于封锁状态,大多数商店关闭或排长队。

Sylius Click 'N' Collect 是一种解决方案,可在封锁期间(甚至封锁之后)安全地销售和交接您的产品。通过允许 无接触 提货并防止排队,Sylius Click 'N' Collect 保护了您的员工和您的客户。

Sylius Click 'N' Collect 是 Sylius 电子商务平台的一个插件。它是免费的(指言论自由,也指啤酒),由您的朋友们从 Les-Tilleuls.coop 提供。它也可以与 Sylius 的所有现有功能和插件一起使用。

CI

它是如何工作的?

Screencast

作为客户

  1. 进入商店网站
  2. 选择要订购的产品
  3. 选择取货地点(例如实体店)
  4. 选择一个可用的时段
  5. 在线支付,或选择店内支付(也支持 Stripe 和 PayPal)。
  6. 可选:生成一个 PIN,您需要它来检索订单
  7. 在选定的时段内到商店取货!如果适用,使用 PIN 码解锁箱子。

作为卖家

  1. 使用管理界面中的时间表查看即将到来的订单
  2. 准备订单:把它们放入袋子,并使订单编号醒目(可以用订书机固定或使用记号笔)
  3. 用适当的清洁产品仔细清洁货架和锁(如果适用)
  4. 把袋子放在货架上
  5. 可选:使用 PIN 锁定货架上的箱子,以确保订单安全
  6. 从远处、窗户后面或使用监控摄像头监视取货

重复!

您现在在销售的同时,也能防止大流行病传播!

安装

注意:要本地测试插件,请参阅 CONTRIBUTING.md

  1. 安装 Sylius

  2. 安装 Sylius Click 'N' Collectcomposer require tilleuls/sylius-click-n-collect-plugin

  3. 注册包

    <?php
    
    // config/bundles.php
    
    return [
        // ...
        CoopTilleuls\SyliusClickNCollectPlugin\CoopTilleulsSyliusClickNCollectPlugin::class => ['all' => true],
    ];
  4. 导入配置

    # config/packages/sylius_click_n_collect.yaml
    imports:
        - { resource: "@CoopTilleulsSyliusClickNCollectPlugin/Resources/config/app/config.yml" }
  5. 导入路由

    # 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
  6. 更新本地实体

    <?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;
    }
  7. 覆盖模板

    cp -R vendor/tilleuls/sylius-click-n-collect-plugin/tests/Application/templates/* templates
    
  8. 创建和执行数据库迁移

    bin/console doctrine:migrations:diff
    bin/console doctrine:migrations:migrate
    
  9. 复制资产

    bin/console assets:install
    bin/console sylius:theme:assets:install
    
  10. 添加您的产品库存,或导入它们

  11. 配置取货地点、可用的时段以及您能安全并行服务的顾客数量

  12. 创建一个专门的配送方式

  13. 可选:从管理界面配置在线支付方式(默认支持 Stripe 和 PayPal)

导出数据

请参阅 docs/exports.md

您现在可以开始销售了!

许可证

大流行条款

使用本软件时,您必须确保所有使用该软件的工人和客户都没有风险!这意味着您必须减少工人和客户之间的接触次数(在大多数情况下,送货应为无接触),并且您必须为处理产品的工人提供口罩、免洗手消毒液和手套。

生命比利润更重要。

AGPL

Sylius Click 'N' Collect 在 AGPL-3.0 许可下发布。对于不希望或无法使用 AGPL-3.0 许可软件的公司,也提供商业许可证。如需更多信息,请联系我们:contact@les-tilleuls.coop

鸣谢

Kévin DunglasLes-Tilleuls.coop 创建。商业支持可在 Les-Tilleuls.coop 获取。