EZ Publish/EZ Publish 改进的商品配送系统

来自站长百科
跳转至: 导航、​ 搜索

EZ Publish | EZ Publish安装与卸载 | EZ Publish的使用 | EZ Publish常见问题 | EZ Publish其他

eZ Publish 3.8 允许为网络商店定制配送选项(例如:配送费用可以依赖于商品分类)。这可以通过实现配送处理器来实现。配送处理器是一个PHP 类,它提供了保存商品集(购物篮或订单)信息与计算配送费用的机制。eZ Publish 没有内建任何配送处理器,因此需要开发您自己的配送处理器来支持配送选项。不能在一个站点入口中同时使用两个配送处理器。配送处理器必须在"Handler"INI 配置中指定。

当用户查看商品页面时,配送费用不会被显示也不会被包含在商品费用中。向系统的购物篮中添加商品后,系统会计算它们的配送价格,配送价格会显示在商品列表中,也会被包含到订单总价中。配送处理器不但返回配送费用,也会返回配送选项简介和一个到配送管理界面(可以修改配送选项)的链接。这些信息会在购物篮中与配送费用一起显示。在订单确定页面和管理界面中的订单视图中也会显示配送费用和配送选项简介。

INI 配置[ ]

"shop.ini"文件中"[ShippingSettings]"分区定义了用于计算配送费用的配送处理器。在这个分区内,可以指定一下配置:

• "Handler"配置指定使用的配送处理器

• "RepositoryDirectories[]"数组指定eZ Publish 从哪里搜索内建的配送处理器。

• "ExtensionDirectories[]"数组指定eZ Publish 从哪里搜索附加的配送处理器。默认情况下,eZ Publish 会在extension 的"shippinghandlers"子目录中搜索。

例1

以下配置可以在"shop.ini"重设文件中"[ShippingSettings]"下添加:

[ShippingSettings]
Handler=ezcustom
RepositoryDirectories[]=kernel/classes/shippinghandlers

这些配置会要求eZ Publish 使用"kernel/classes/shippinghandlers/ezcustomshippinghandler.php"定义的配送处理器。

例2

如果有一个扩展"myextension",它包含一个配送处理器"mycost",您可以在"shop.ini"重设文件中加入如下配置:

[ShippingSettings]
Handler=mycost
ExtensionDirectories[]=myextension

[ShippingSettings]
Handler=mycost
RepositoryDirectories[]=extension/myextension/shippinghandlers

这些配置会要求eZ Publish 使用"extension/myextension/shippinghandlers/mycostshippinghandler.php"中定义的配送处理器。

创建新的配送处理器[ ]

本节为希望开发新配送处理器的程序员(只适用于熟悉PHP 的程序员)提供了一些有用的信息。请注意,不建议修改eZ Publish 内核,因此您应该通过扩展来实现。

实现细节[ ]

配送处理器是一个PHP 类,它实现以下方法:

/**
* Invoked to get shipping information for given product collection.
* \public
* \static
*/
function getShippingInfo( $productCollectionID );
/*
* Invoked when shopping basket contents is changed
* to update shipping info/cost appropriately.
* \public
* \static
*/
function updateShippingInfo( $productCollectionID );
/**
* Invoked when the associated product collection is removed
* to clean up shipping information.
* \public
* \static
*/
function purgeShippingInfo( $productCollectionID );

处理器被eZShippingManager 类中相同方法调用。

$shippingInfo = eZShippingManager::getShippingInfo( $productCollection );

getShippingInfo()方法只用于调用自定义的配送处理器的getShippingInfo()方法。这个方法返回指定商品的配送信息,它是一个包含以下信息的哈希:

EzpublishGJDSPPSXT1.jpg

创建您自己的处理器[ ]

以下文字描述了如何实现一个简单的用于演示目的的配送处理器。

1. 在"extension"目录中创建如下子目录:

• myextension
• myextension/settings
• myextension/shippinghandlers

2. 在"myextension/shippinghandlers/"中创建"mycostshippinghandler.php"(这个文件必须包含PHP类"MyCostShippingHandler")并添加如下内容:

<?php
class MyCostShippingHandler
{
function getShippingInfo( $productCollectionID )
{
return array(
'description' => 'Manual',
'cost' => 10,
'management_link' => '/shop/basket/' // dummy
);
}
function purgeShippingInfo( $productCollectionID )
{
// nothing to purge
}
function updateShippingInfo( $productCollectionID )
{
// nothing to update
}
}
?>

3. 在"myextension/settings"目录中创建"shop.ini.append.php"并添加如下内容:

[ShippingSettings]
Handler=mycost
ExtensionDirectories[]=myextension

4. 要在eZ Publish 中启用扩展,登录到eZ Publish 管理界面,选择“设置”标签,然后选择左侧的“扩展”。系统会列出选存的扩展。选中"myextension"然后点击“应用修改”按钮。

系统会为站点中所有被购买的商品添加固定的配送费用。

如果需要更复杂的配送选项,可以使用http://ez.no/community/contribs/examples/sample_shipping_handler 中的高级示例或开发自己的处理器。

参考来源[ ]

EZ Publish使用手册导航

EZ Publish安装卸载

EZ Publish正常安装 | EZ Publish手动安装 | EZ Publish自动安装 | EZ Publish安装向导 | EZ Publish虚拟主机设置 | EZ Publish使用扩展 | EZ Publish的卸载

EZ Publish的使用

模板使用:

EZ Publish节点模板 | EZ Publish系统模板 | EZ Publish Pagelayout页头信息 | EZ Publish Pagelayout变量 | EZ Publish 模板注释 | EZ Publish 模板变量类型 | EZ Publish 模板变量用法 | EZ Publish 调查数组和对象 | EZ Publish 模板控制结构 | EZ Publish 函数与操作符 | EZ Publish URL处理 | EZ Publish 内容提取 | EZ Publish 模板重设系统
系统功能: EZ Publish 系统记帐 | EZ Publish 策略功能 | EZ Publish 多语言使用(一) | EZ Publish 多语言使用(二) | EZ Publish 集群的使用 | EZ Publish 安装包的使用 | EZ Publish Cronjob脚本的使用 | EZ Publish 多货币功能 | EZ Publish 通知功能
其他功能: EZ Publish 增值税(VAT)系统 | EZ Publish 改进的商品配送系统 | EZ Publish 多语言URL别名 | EZ Publish 登录后高级重定向 | EZ Publish 检索引擎 | EZ Publish WebDAV | EZ Publish 视图缓存

EZ Publish常见问题

EZ Publish 安装常见问题 | EZ Publish 使用常见问题

EZ Publish其他

EZ Publish内部结构 | EZ Publish内容与界面 | EZ Publish内容管理(一) | EZ Publish内容管理(二) | EZ Publish配置模型 | EZ Publish模块与视图 | EZ Publish URL 翻译 | EZ Publish 界面 | EZ Publish访问控制 | EZ Publish网络商店 | EZ Publish工作流