追加功能 #454
Updated by Xihua Fan 10 months ago
*Background*
# New requirement for v4.0 OTS
See: OneDrive\赤蓝商贸(上海)有限公司\Shanghai Group - IT\开发相关\OTS V4\开发需求
*Task Details*
* 1. SBX:调查产品模块相关的功能和Database Table,比如
# Product(可能需要扩展,比如添加OTS<->SBX对应产品的映射关系,报关用:产品名+价格等)
# Category (可能需要简化)
# Manufacturer (可能需要修改:添加中文,地址等报关用信息)
# Option (可能需要扩展, 需要添加OTS->SBX的option的映射关系)
# tax (可能需要简化)
# geo_zone ?
* 2. OTS:开发相关模块根据以上的调查(包括设计修改Database Table)
|_. Module |_. Function |_. Database |_. Other |
|Product | 1.SBX的部分功能
2.OTS->SBX的映射关系
3.报关信息:品名 + HS code等,
manufacture + 产地 + 报关价格 | product
product_description
product_to_category
product_group
product_group_description
product_option
product_option_description
product_option_value
product_option_value_description
product_extra_option
product_extra_option_value
branding_group
branding_group_description
product_manufacturer(new) | |
|Category | | category
category_description
catageory_path |添加功能|
|Manufacture | name, country, zone, city
address 1, address 2 | manufacture |添加功能|
|Option | 1.SBX的部分功能
2.OTS->SBX的映射关系 | option
option_description
option_value
option_value_description |添加功能(参考SBX)|
|tax | | tax_class
tax_rate
tax_rate_to_customer_group
tax_rule |修改数据|
|currency | - | currency |修改数据|
|length classes | - | length_class
length_class_description |修改数据|
|weight classes | - | weight_class
weight_class_description |修改数据|
|unit classes | - | unit_class
unit_class_description |添加功能(参考SBX)|
|geo_zone | - | geo_zone
zone_to_geo_zone |修改数据|
|country | - | country |维持原样|
* 3. OTS:开发Import product module,可以多次导入SBX相关产品数据(CSV格式)
* 4. OTS:开发Restful API (Server端),接受来自SBX的订单产品数据(参考:https://docs.opencart.com/en-gb/system/users/api/)
* 5. SBX:开发Restful API (Client端),传输OTS可接受的订单产品数据(想定:Admin order edit form中添加传输功能)
*Note:* 可能需要优先回答Order模块,处理手动Order(Order Product)的Add / Edit / Remove功能
*Questions:*
# 关于以上【SBX:开发Restful API (Client端)】功能,认证机制(OAuth)是必须的,但是怎么匹配SBX:admin user和OTS:user呢?
*Van:* 比如我们通过email(OTS4.0 可能需要完善email这个字段,比如必须输入),关联这2个系统的user关系。
# 关于OTS与SBX的映射关系:
-
## Product
-
## Option
-
## Option value
*Van:* 我们规定从ET导入的id完全匹配(比如:Option value id),OTS4.0自己添加的Product,Option,Option value的id起始值会足够大(和导入的完全区分)
# Color option我们决定使用泛用Text Option替代(只有一个option value),意味着Color Option自带的价格不能自动导入,没问题嘛?
*Van:* OK,我们需要在Product option中手动修改。
比如:SBX color option = Värden för: Färger (option id = 247,我们可以使用以下SQL查询验证。)
<pre>
-- 带有price的color option
SELECT DISTINCT
o.`option_id`,
od.`name`,
po.product_id
FROM
`eazy_9455option` AS o
LEFT JOIN `eazy_9455option_value` AS ov
ON ov.`option_id` = o.`option_id`
LEFT JOIN `eazy_9455option_description` AS od
ON od.`option_id` = o.`option_id`
LEFT JOIN `eazy_9455product_option` AS po
ON po.`option_id` = o.`option_id`
WHERE TYPE = 'color'
AND ov.`option_value_price` IS NOT NULL
AND od.`language_id` = 1
AND po.product_id IS NOT NULL
ORDER BY o.option_id,
po.product_id
</pre>
*v4 coding standard:*
# Git提交
#xxx(redmine number): xxx(redmine title) - xxx(任意:补充内容)
# 代码规范
2.1: 结构:Public -> Protected -> Private
2.2: 其他代码规范同SBX
# 数据层规范(Model)
3.1: 数据库操作只应出现在model或者system中。
3.2: v3/v4的model分为两个文件,比如: order.php, order_v3.php
# 前台代码
twig, js, css (js, css尽量写在单独的css文件中)
# 后台代码
MVCL (L:en,cn)
# 注释
## 类名:
<pre>
/**
* xxx
*
* @copyright RedBlue-OTS 2024
* @version v4
*
*/
</pre>
## 函数名:参数类型 + 返回值类型
<pre>
/**
* xxx
*
* @param xxx $xxx
* @param xxx $xxx
* @return xxx
*/
</pre>
*Output*
* Report and Solution
*Others*