sulu/sulu-sales

此软件包已被废弃,不再维护。未建议替代软件包。

Sulu的电子商务组件

安装6,534

依赖: 1

建议者: 0

安全: 0

星级: 2

关注者: 24

分支: 6

开放问题: 3

类型: sulu-bundle


README

配置

以下描述包含不同销售组件的默认配置。

SuluSalesCoreBundle

sulu_sales_core:
    priceformatter_digits: 2
    shop_location: ~ # Is used for calculating correct tax
    email_from: ~ # Originator of sales emails like an order confirmation
    email_templates: # Footer templates for email
        footer_txt: ~
        footer_html: ~

SuluSalesOrderBundle

仅当使用CartManager创建订单时才发送确认电子邮件。

sulu_sales_order:
    pdf_templates:
        confirmation: SuluSalesOrderBundle:Pdf:order.confirmation.html.twig
        base: SuluSalesCoreBundle:Pdf:pdf-base.html.twig
        header: SuluSalesCoreBundle:Pdf:pdf-base-header.html.twig
        footer: SuluSalesCoreBundle:Pdf:pdf-base-footer.html.twig
        macros: SuluSalesCoreBundle:Pdf:pdf-macros.html.twig
        dynamically: SuluSalesOrderBundle:Pdf:order.dynamically.html.twig
        dynamically_base: SuluSalesOrderBundle:Pdf:order.confirmation.html.twig
    pdf_response_type: 'inline'
    pdf_order_confirmation_name_prefix: order_confirmation
    pdf_order_dynamically_name_prefix: order_pdf
    email_templates:
        footer_txt: ~
        footer_html: ~
    shop_email_from: ~ # Originator of confirmation email
    shop_email_confirmation_to: ~ # Defines an extra recipient for confirmation email
    send_email_confirmation_to_customer: false # Defines if a confirmation mail should be sent to customer
    objects:
        sales_order:
            model: Sulu\Bundle\Sales\OrderBundle\Entity\Order
            repository: Sulu\Bundle\Sales\OrderBundle\Entity\OrderRepository

您还需要告诉doctrine如何解析目标实体

doctrine:
    orm:
        resolve_target_entities:
            Sulu\Bundle\Sales\CoreBundle\Entity\ItemInterface: Sulu\Bundle\Sales\CoreBundle\Entity\Item
            Sulu\Bundle\Sales\OrderBundle\Entity\OrderStatusInterface: Sulu\Bundle\Sales\OrderBundle\Entity\OrderStatus

动态PDF模板

可以通过配置轻松设置dynamically PDF模板。这样,可以动态地更改从特定订单对象生成的PDF的外观。为了增加更多的灵活性,可以配置dynamically_base模板,该模板将被dynamically扩展。例如:dynamically extends dynamically_base

由于已指定默认值并在组件中存在默认模板,因此严格来说不需要配置这些参数。

PDF响应类型

订单组件对返回PDF的http请求的反应方式。可以配置响应,例如,将其返回为inline,这样PDF文件将在新标签页中显示,或者作为attachment。作为一个附件,它将开始下载而不在浏览器中打开文件。

这些配置可以在应用程序的parameters.yml文件中设置,在键下

sulu_sales_orderbundle_pdf_responsetype: inline

此键的组件侧配置默认为inline

PDF命名前缀

可以配置的命名前缀是:pdf_order_confirmation_name_prefixpdf_order_dynamically_name_prefix。这样,可以轻松地配置返回的文件命名方式。因此,如果渲染动态模板,将使用pdf_order_dynamically_name_prefix并将其附加到订单号。应用相同的逻辑,确认PDF的文件名也将生成。

如果没有配置,则应用默认值。这些值与上面的示例配置中的值相同。

路由

组件的路由取决于位于相应Resources/config/routing目录中的路由文件。

这些文件按组件分组

  • SuluSalesOrderBundle
    • routing.xml
    • routing_api.xml
    • routing_website.xml
  • SuluSalesCoreBundle
    • routing.xml
  • SuluSalesShippingBundle
    • routing.xml
    • routing_api.xml

了解这一点也很重要,即测试的路由是单独配置的。(检查Tests/目录)

如何运行测试

以下命令将运行所有销售组件的测试

composer install

tests/app/console doctrine:schema:update --force

phpunit

文档

扩展销售订单

您可以使用sulu持久性来扩展订单实体和存储库。

事件

以下事件由系统触发

常量 参数 触发 参数
SalesOrderEvents:StatusChanged slu_sales_order.events.status_changed 当订单状态改变时触发。 SuluSalesOrderStatusChangeEvent