商城的分类查询主要用于展示一个一级分类列表,通过一级分类列表提供的分类ID(作为参数),跳转到商品控制器中进行商品查询。
分类查询主要是通过分类列表进行跳转的。分类主页的控制器SortsController 的设计代码如下所示:
@Restcontroller
@RequestMapping( "/sorts")
public class SortsController {
CAutowired
private SortsRestService sortsRestService;
@RequestMapping(value="/index")
public ModelAndview findAll() {
Gson gson=TreeMapConvert.getGson();
List<SortsQo> sortses=gson.fromJson(sortsRestService.findist (),new
TypeToken<List<SortsQ0>>(){].getType());
return new ModelAndView ( "sorts/index", "sortses",sortses);}
}即通过链接“lindex”所在的方法中,取得分类列表数据,然后返回分类主页视图设计“index.html”。
分类主页视图设计是一个H5单页,主体部分的实现代码如下所示:
<section class="orderList">
<ul th:each-"sorts: ${sortses} ">
<li th:onclick=" 1javascript:gotoGoods ('+$ {sorts.id}+');'">
<div class-"orderInfList">
<div class="orderInfTxtclearPb">
<p><a th:href=" '/goods/index?sortsid='+${sorts.id}"
th:text="${sorts.name) "></a></p>
</div>
</div>
</li>
</ul></section>这里只是简单地使用一个“th:each”循环语句,将一级分类列表逐条进行显示。当在操作界面上单击一个分类时,将使用分类ID作为参数,跳转到商品控制器设计中进行商品查询。
分类查询的显示效果如图9-2所示。
首先通过控制器调用商品服务接口GoodsRestService的 findByld获取数据,然后返回一个页面视图设计“show.html”,其中,控制器的实现代码如下所示:
@RestController
@RequestMapping ( "/goods")
public class GoodsController {
@Autowired
private GoodsRestService goodsRestService;
@RequestMapping (value="/{id} "')
public ModelAndView findById (@Pathvariable Long id)
String json=goodsRestService. findById(id);
GoodsQo goodsQo=new Gson().fromJson(json, GoodsQo.class);return new ModelAndView ("goods/show", "goods",goodsQ0);
}
}页面视图设计“show.html”是一个H5单页,实现代码如下所示:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta content="yes" name="apple-mobile-web-app-capable"/>
<meta content="black" name="apple-mobile-web-app-status-bar-style"<meta name="format-detection" content="telephone=no"/>
<title>商品内容</title>
<link th:href="@{/styles/main.css}" rel="stylesheet" type="text/css"<style type="text/css">
article,aside,dialog, footer,header,section, footer,nav,figure,menuldisplay:block }
</style>
<script th:src="@{/scripts/jquery-1.10.2.min.js}"></script><script th:src="@{/scripts/viewscale.js}"></script>
</head>
<body>
<div class="swiper-container" style="height: 450px;">
<div class="swiper-wrapper">
<div class="swiper-slide">
<img th:src="${ goods.photo}"/></div>
</div></div>
<div class="spxg prize">
<div class="intro" th:text="${ goods.name}">商品名称</div><div class="info">
<span class="prize">
<em>价格:¥</em><em id="priceShowl" original="0.1"
th:text="${goods.price} ">67</em>
/span>
</div>
</div>
<div class="contents">
<div class="abstract"></div>
<div th:text="${goods.contents} "></div>
</div>
<div class="fix-bottom-buy">
<input id="goodsid" name="goodsid" type="hidden"
th:value="${goods.id} "/>
<div class="col-2">
<a id="addCartBtn" href="javascript:void(0)"
onclick="history.back();"class="btn white">返回商城</a>
<a id="buyNowBtn" th:href=" ' /order/accounts/'+${goods.id}"
class="btn red">立即购买</a>
</div>
</div></body></html>详情页显示了商品的详细信息,并且提供了“立即购买”的跳转链接。单击“立即购买”按钮后将进行用户登录状态检查。
商品详情页设计完成之后,显示效果如图9-3所示。
当用户在商品详情页中单击“立即购买”按钮之后,将调用OrderController控制器,代码如下所示:
@RestController
@RequestMapping ("/order")@slf4j
public class OrderController {
@Autowired
private GoodsRestService goodsRestService;
@ReguestMapping (value=" /accounts/{id} ")
public ModelAndView accounts (ModelMap model, (PathVariable Long id)(
String json=goodsRestService.findById(id);
GoodsQo goodsQo=new Gson ().fromJson(json,GoodsQo.class);return new ModelAndView( "order/accounts", "goods", goodsQ0);
}
}首先通过商品ID取得商品信息,然后,返回一个账号视图设计。在这个视图设计中,一方面显示商品的价格,另一方面进行用户登录状态检查。
账号视图设计“accounts.html”是一个H5单页,完整的实现代码如下所示:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8"/>
<meta content="yes" name="apple-mobile-web-app-capable"/>
<meta content="black" name="apple-mobile-web-app-status-bar-style"/><meta name="format-detection" content="telephone=no"/>
<title>结算</title>
<link th:href="G{/styles/microApply.css}" rel="stylesheet"
type="text/css"/>
<link th:href="@{/styles/globalWap.css}" rel="stylesheet"
type="text/css"/>
<style type="text/css">
article,aside,dialog, footer, header, section, footer, nav, figure
menu{display:block}
</style>
<script th:src="@{/scripts/viewscale.js}"></script>
<script th:src="@(/scripts/jquery-1.10.2.min.js}"></script><script th:srC="@ {/scripts/Event_alert.js}"></script>
</head>
<body>
<div class="content prompt1">
<div class=" verifyErrO">
<span></span>
</diV>
<div class="sure"><input class="longinBtn" type="submit" value="确定
" /></div>
</div>
<input id="goodsid" name="goodsid" type="hidden"
th:value="${goods.id] "/>
<input id="merchantid" name="goodsid" type="hidden"
th:value="${goods.merchantid}"/>
<div class="content prompt2">
<div class="verifyErro">
<span></span>
<p class="swit" th:text="'订单金额:¥'+(${ goods.price} ?
$ {#numbers.formatDecimal (goods.price,0,'COMMA',2,'POINT')}:'')">确认购买吗?</p>
<p class="countdown"></p></div>
<div class="sure">xinput class="accountsBtn" type="submit" value="
确定"/></div>
</div>
<div class="copy">关于我们</div></body>
<script>
/*<![CDATA[*/$(function(){
var storage=window. localStorage;var user=storage.getItem ("user");var userid;
var goodsid=$('#goodsid').val();
var merchantid=$('#merchantid').val();
if(user){
var a=JSON.parse(user);userid=a.userid;
//console. log (a.userid);$('.prompt1').hide ();
$('.prompt2 ').show();
}else {
$('.prompt2 ').hide();$('.prompt1') .show();
$('.longinBtn').click (function(){
$(' .accountsBtn').click(function(){
$.ajax({
url:"../buyone" ,data:{
id:goodsid,subsid:userid,
merchantid:merchantid},
type: "POST",
dataType: "json",
success: function(data){
if(data && (parseInt (data) >0)){
alertEC("购买成功!");
}else{
alertEC("下单失败!");
});
setTimeout(function(){
window . location.href="../index";}, 600);
});
});
/*]]>*/</script></html>在这个设计中,首先对用户的账号进行检查。如果是未登录状态,则转到登录页面提示用户登录。
如果用户已经登录,则提示用户确认购买,然后执行购买下单的操作。如果下单成功,则提示“购买成功”,并从操作界面跳转到订单列表页面。
注意:这里为了“跑通”整个下单的操作流程,省略了支付的环节。
用户进行购买下单的操作是通过控制器OrderController实现的,代码如下所示:
@RestController
@RequestMapping ( "/order")@slf4j
public class OrderController {
@Autowired
private OrderRestService orderRestService;CAutowired
private GoodsRestService goodsRestService;
@RequestMapping(value="/buyone", method=RequestMethod. POST)public String buyone (GoodsQo buyone){
String json=goodsRestService.findById (buyone.getId());GoodsQo goodsQ0=new Gson().fromJson(json,GoodsQo.class);if(goodsQ0 !=null){
Integer sum=1;
OrderDetailQ0 orderDetailQ0=new OrderDetailQ0();orderDetailQ0.setGoodsid(goodsQo.getId());
orderDetailQo.setGoodsname(goodsQo.getName());orderDetai1Qo.setPrice(goodsQo.getPrice());orderDetailQ0.setPhoto (goodsQo.getPhoto());orderDetailQo.setNums(sum);
orderDetailQ0.setMoney(sum * goodsQo.getPrice());
List<0rderDetailQ0> list=new ArrayList<>();
1ist .add(orderDetailQ0);
OrderQo orderQ0=new OrderQo();orderQo.setOrder Details(list);//借用分类ID来传输用户编号
orderQo.setUserid (buyone.getSubsid());
orderQo.setMerchantid(goodsQo.getMerchantid());orderQo.setAmount(sum *goodsQo.getPrice());
orderQo.setOrderNo (new Long ( (new Date()).getTime()).toString()//已付款
orderQo. setStatus (StatusEnum. PAID.getCode());orderQo.setCreated(new Date());
String response=orderRestService.create (orderQo);
1oa.info ( "====下单结果:"+response);
//更新库存
if(response !=null) {
Integer buynum=goodsQo.getBuynum()==null ? sum : sum
goodsQ0 .getBuynum();
goodsQo.setBuynum (buynum);
goodsRestService. update(goodsQo);//下单成功
return "1";
}else{
//下单失败
return "-1";
}
//系统异常return "-2";
}
}首先获取商品信息和用户信息,然后根据这些信息,调用订单服务接口创建一个新订单,最后调用商品服务接口更新库存信息。
如果下单成功,则通过上面的视图设计,提示下单成功。提示信息会停留600ms,随后自动跳转到订单的主页中。在订单主页中用户可以看到订单列表。
客目录:
......
十、基于Django+mysql的点餐系统设计-第十篇(H5手机移动端点餐:登录)
十一、基于Django+mysql的点餐系统设计-第十一篇(H5手机移动端点餐:购物车操作)
十二、基于Django+mysql点餐系统设计-第十二篇(移动端:会员下单处理)
本章源码下载地址:https://github.com/hopeSuceess/testorder/tree/testorder_20220622_01
上一篇讲了购物车操作,紧接着上一篇继续讲新增购物车后,这些餐品的下单操作。首先在Model层定义数据库表,在myadmin/models.py中编写如下代码:
# 订单模型
class Orders(models.Model):
shop_id=models.IntegerField() # 店铺id号
member_id=models.IntegerField() # 会员id
user_id=models.IntegerField() # 操作员id
money=models.FloatField() # 金额
status=models.IntegerField(default=1) #订单状态:1进行中/2无效/3已完成
payment_status=models.IntegerField(default=1) # 支付状态:1未支付/2已支付/3已退款
create_at=models.DateTimeField(default=datetime.now) # 创建时间
update_at=models.DateTimeField(default=datetime.now) # 修改时间
class Meta:
db_table="orders" # 更改表名
# 订单详情模型
class OrderDetail(models.Model):
order_id=models.IntegerField() #订单id
# product_id=models.IntegerField() # 菜品id
product=models.ForeignKey('Product', on_delete=models.CASCADE) #多对一
product_name=models.CharField(max_length=50) # 菜品名称
price=models.FloatField() # 单价
quantity=models.IntegerField() # 数量
status=models.IntegerField(default=1) #状态:1正常/9删除
class Meta:
db_table="order_detail" # 更改表名
# 支付信息模型
class Payment(models.Model):
order_id=models.IntegerField() #订单id号
member_id=models.IntegerField() #会员id
money=models.FloatField() #支付金额
type=models.IntegerField() # 付款方式:1会员付款/2收银收款
bank=models.IntegerField(default=1) #收款银行渠道:1微信/2余额/3现金/4支付宝
status=models.IntegerField(default=1) #支付状态:1未支付2/已支付/3已退款
create_at=models.DateTimeField(default=datetime.now) # 创建时间
update_at=models.DateTimeField(default=datetime.now) # 修改时间
class Meta:
db_table="payment" # 更改表名定义完了数据库表,开始编写路由控制器的逻辑,在mobile/urls.py中先定义加载移动端订单页的路由逻辑
# 订单处理
path('orders/add', index.addOrders, name="mobile_addorders"), # 加载移动端订单页定义完了路由逻辑,现在开始写view层的实现逻辑,在mobile/views/cart.py中编写addOrders函数
def addOrders(request):
"""移动端下单表单页"""
# 尝试从session中获取名字为cartlist的购物车信息,若没有返回{}
cartlist=request.session.get('cartlist', {})
total_money=0 # 初始化一个总金额
# 遍历购物车中的菜品并累加总金额
for vo in cartlist.values():
total_money +=vo['num']*vo['price']
request.session['total_money']=total_money
return render(request, "mobile/addOrders.html")view层实现的逻辑要渲染到前端,现在对template层进行逻辑实现,templates/mobile/addOrders.html中的代码如下:
{% extends 'mobile/base.html' %}
{% load static %}
{% block mainbody %}
<!--头部-->
<header>
<div class="header">
<h1>提交订单</h1>
<a href="javascript:window.history.back();" class="return"><i></i></a>
</div>
</header>
<! --内容区-->
<article class="main-container add-product">
<!--产品-->
<div class="list-content cartlist order-Pro">
<ul>
{% for vo in request.session.cartlist.values %}
<li class="line">
<a href="#"><div class="pro-img"><img src="{% static 'uploads/product/' %}{{ vo.cover_pic }}" alt=""></div></a>
<div class="pro-con"><h3>{{ vo.name }}</h3><b>¥{{ vo.price }}</b>×{{ vo.num }}</div>
</li>
{% endfor %}
</ul>
</div>
<!--支付方式-->
<div class="order-Delivery line" id="orderPays">
<p>支付方式</p>
<ol class="FilterContentList">
</ol>
<div class="list">
<ul class="line">
<li class="select" bank="4"><i class="icon-alipay"></i>支付宝支付<em class="icon-correct"></em></li>
<li bank="1"><i class="icon-weixinpay"></i>微信支付<em class="icon-correct"></em></li>
</ul>
</div>
</div>
<br><br>
</article>
<!---底部栏目-->
<footer>
<div class="button"><button onclick="doSubmit()">提交订单</button></div>
<h4>实付款:¥{{ request.session.total_money }}</h4>
</footer>
{% endblock %}
{% block myjavascript %}
<script>
//支付方式上的单选按钮点击效果
$("ul.line li").click(function () {
$("ul.line li").removeClass("select");
$(this).addClass("select");
});
//执行订单提交操作函数
function doSubmit(){
{#bid=$("ul.line li.select").attr("bank"); // 获取支付方式#}
{#window.location.href="{% url 'mobile_doaddorders' %}?bank="+bid;#}
window.location.href="{% url 'mobile_doaddorders' %}";
}
</script>
{% endblock %}
好了,现在启动工程调试一下,访问http://127.0.0.1:8000/mobile/,选择菜品后,点击"去结算",跳到了"提交订单"页
继续往下写,在提交订单页提交订单,这里涉及了多个数据库表的插入:订单信息表、支付表、订单详情表,这三表里的信息在后续的查询中都会用到。
在mobile/views/index.py中实现doAddOrders函数
def doAddOrders(request):
'''执行移动端下单操作'''
try:
#执行订单信息的添加
od=Orders()
od.shop_id=request.session['shopinfo']['id']
od.member_id=request.session['mobileuser']['id']
od.user_id=0
od.money=request.session['total_money']
od.status=1 #订单状态:1进行中/2无效/3已完成
od.payment_status=2 #支付状态:1未支付/2已支付/3已退款
od.create_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
od.update_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
od.save()
# 执行支付信息添加
op=Payment()
op.order_id=od.id #订单id号
op.member_id=request.session['mobileuser']['id']
op.type=2 #1会员付款/2收银收款
op.bank=request.GET.get("bank", 3) # 收款银行渠道:1微信/2余额/3现金/4支付宝
op.money=request.session['total_money']
op.status=2 # 支付状态:1未支付/2已支付/3已退款
op.create_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
op.update_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
op.save()
# 执行订单详情的添加
cartlist=request.session.get("cartlist", {}) # 获取购物车中的菜品信息
# 遍历购物车中的菜品并添加到订单详情中
for item in cartlist.values():
ov=OrderDetail()
ov.order_id=od.id # 订单id
ov.product_id=item['id'] # 菜品id
ov.product_name=item['name'] # 菜品名称
ov.price=item['price'] # 单价
ov.quantity=item['num'] #数量
ov.status=1 # 状态:1正常/9删除
ov.save()
del request.session['cartlist']
del request.session['total_money']
except Exception as err:
print(err)
return render(request,"mobile/orderinfo.html", {"order": od})下面实现template层的逻辑,在templates/mobile目录下创建orderinfo.html,orderinfo.html中的代码逻辑如下:
#! -*- coding: UTF-8 -*-
#@Time : 2022/2/3 18:17
#@Author : 中国
#@File : index.py
#@Software : PyCharm
from datetime import datetime
from django.http import HttpResponse
from django.shortcuts import redirect, render
from django.urls import reverse
from myadmin.models import Category, Product, Shop, Member, Payment, OrderDetail, Orders
def index(request):
# # 接收到前端的处理逻辑,返回”欢迎来到大堂点餐!“
# return HttpResponse('欢迎来到手机移动端点餐页面!')
'''移动端首页'''
#获取并判断当前店铺信息
shopinfo=request.session.get("shopinfo", None)
if shopinfo is None:
return redirect(reverse("mobile_shop")) # 重定向到店铺选择页
# 获取当前店铺下的菜品类别和菜品信息
clist=Category.objects.filter(shop_id=shopinfo['id'],status=1)
productlist=dict()
for vo in clist:
plist=Product.objects.filter(category_id=vo.id, status=1)
productlist[vo.id]=plist
context={'categorylist': clist, 'productlist': productlist.items(), 'cid': clist[0]}
return render(request, "mobile/index.html", context)
def shop(request):
'''呈现店铺选择页面'''
context={'shoplist': Shop.objects.filter(status=1)}
return render(request, 'mobile/shop.html', context)
def selectShop(request):
'''执行店铺选择'''
# 获取店铺id号,通过店铺id号获取店铺信息
sid=request.GET['sid']
ob=Shop.objects.get(id=sid)
# 将店铺信息放入到seession中
request.session['shopinfo']=ob.toDict()
return redirect(reverse('mobile_index'))
def register(request):
'''加载注册/登录页面'''
return render(request, "mobile/register.html")
def doRegister(request):
'''执行注册/登录'''
# 验证短信码
verifycode="1234" # request.session['verifycode']
code=request.POST['code']
if verifycode !=code:
context={'info': '验证码错误'}
return render(request, "mobile/register.html", context)
try:
#根据手机号码获取当前会员信息
member=Member.objects.get(mobile=request.POST['mobile'])
except Exception as err:
# 此处可以执行当前会员注册(添加)
ob=Member()
ob.nickname="顾客" #默认会员名称
ob.avatar="moren.png" # 默认头像
ob.mobile=request.POST['mobile'] # 手机号码
ob.status=1
ob.create_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ob.update_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
ob.save()
member=ob
# 检查当前会员状态
if member.status==1:
# 将当前会员信息转换成字典格式并存放到seession中
request.session['mobileuser']=member.toDict()
# 重定向到首页
return redirect(reverse("mobile_index"))
else:
context={"info": '此账号信息禁用'}
return render(request, "mobile/register.html", context)
def addOrders(request):
'''移动端下单表单页'''
# 尝试从session中获取名字为cartlist的购物车信息,若没有返回{}
cartlist=request.session.get('cartlist', {})
total_money=0 # 初始化一个总金额
# 遍历购物车中的菜品并累加总金额
for vo in cartlist.values():
total_money +=vo['num']*vo['price']
request.session['total_money']=total_money # 放进session
return render(request,"mobile/addOrders.html")
def doAddOrders(request):
'''执行移动端下单操作'''
try:
#执行订单信息的添加
od=Orders()
od.shop_id=request.session['shopinfo']['id']
od.member_id=request.session['mobileuser']['id']
od.user_id=0
od.money=request.session['total_money']
od.status=1 #订单状态:1进行中/2无效/3已完成
od.payment_status=2 #支付状态:1未支付/2已支付/3已退款
od.create_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
od.update_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
od.save()
# 执行支付信息添加
op=Payment()
op.order_id=od.id #订单id号
op.member_id=request.session['mobileuser']['id']
op.type=2 #1会员付款/2收银收款
op.bank=request.GET.get("bank", 3) # 收款银行渠道:1微信/2余额/3现金/4支付宝
op.money=request.session['total_money']
op.status=2 # 支付状态:1未支付/2已支付/3已退款
op.create_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
op.update_at=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
op.save()
# 执行订单详情的添加
cartlist=request.session.get("cartlist", {}) # 获取购物车中的菜品信息
# 遍历购物车中的菜品并添加到订单详情中
for item in cartlist.values():
ov=OrderDetail()
ov.order_id=od.id # 订单id
ov.product_id=item['id'] # 菜品id
ov.product_name=item['name'] # 菜品名称
ov.price=item['price'] # 单价
ov.quantity=item['num'] #数量
ov.status=1 # 状态:1正常/9删除
ov.save()
del request.session['cartlist']
del request.session['total_money']
except Exception as err:
print(err)
return render(request,"mobile/orderinfo.html", {"order": od})
运行工程,点击提交订单,如下图
会员下单处理写完了,总体来说也是增删改查,下一篇讲订单的展示
#头条创作挑战赛#
十一、感恩节、黑五步步逼近,这也意味着现在已经全面踏入2019旺季冲刺!不管你是新手卖家,还是eBay大卖,想要更多流量、更多市场,必须要了解这个操作!
今年早些时候,eBay与台湾最大的拍卖网站之一露天拍卖携手合作,将eBay.com上的刊登无缝整合到露天拍卖平台(https://pub.ruten.com.tw/ebaynew/index.html),方便台湾消费者使用中文查询搜索、下单购买eBay.com上的产品。卖家刊登的物品,只要物流选择递送的目的地包含台湾,就会有机会被整合到露天平台上。这就为eBay卖家进一步拓展台湾市场带来了极大的便利。
所以,不要再犹豫,不要再等待,现在就检查你的刊登设置
如果你还未添加台湾为送货地点选项:请尽早添加台湾为其中一个送货地选项;
如果你已经添加台湾为送货地选项的卖家:建议可重新评估及优化运送至台湾的物流方式,以提升刊登的曝光机会。
如何操作
设置国际运送方案,运送到全世界, 选择运送方式并设置运费
卖家可以选择屏蔽一些不便运送的国家和地区,如要运送到台湾,请勿屏蔽台湾
卖家常见问题分享
Q:eBay上哪些刊登会呈现在露天拍卖平台?
A:只要您的刊登满足以下2个条件:
1)商品所在地在美国、香港地区、或者中国大陆
2)送货地点包括台湾。
系统将自动同步有关刊登到露天拍卖,增加台湾买家的购买机会。
Q:哪些eBay刊登信息将同步到露天拍卖刊登页?
A:eBay商品页上的所有商品信息,包括图像、标题、描述和运送方式等信息都将同步至露天拍卖。
https://goods.ruten.com.tw/item/show?30193433560276
Q:露天拍卖的订单将如何在eBay上呈现?
A:露天拍卖的订单,包括详细的买家收货信息(注:买家地址将为英文)将同步到eBay上,在卖家后台“My eBay”中显示。如同其他来自台湾地区的订单一样,卖家只需一如既往在“My eBay”中处理相关订单即可。
Q:通过露天拍卖购买eBay商品的买家政策是什么?
A:有关详细的买家政策,请参阅https://pub.ruten.com.tw/global/article.html,并注意第七点特别提及买方承担的进口税责任
Q:如何知道商品是否成功刊登到露天拍卖?
A:如刊登成功,商品会在露天拍卖的搜索结果中出现,而且显示带有“海外代购”的标志。
eBay与露天的合作
露天市集,是全台最大交易市集,2018年平台成交金额(GMV)突破新台币3,305亿,不但是「台湾NO.1拍卖网站」,更是全台唯一超过千亿交易金额的电商平台,成交规模已经超过台湾大型百货及实体店铺。
露天同时拥有超过1,100万名会员,其中有超过200万具有卖家会员身份,透过累积多年的珍贵电商消费数据,2018年起,露天持续增加电商大数据分析功能和人工智能服务内容,采取开放架构,已发展成为全台主要的AI电商平台。
今年四月,eBay携手露天拍卖整合跨境电商(https://pub.ruten.com.tw/ebaynew/index.html),通过露天拍賣平台向台湾开放ebay.com上GC卖家的物品刊登。台湾用户可以于露天平台以“全程中文化”的购物页面与简单易用的购物流程直接使用中文搜寻、选购以及下单购买eBay平台上的产品,同时使用当地金流完成付款,商品直送台湾,极大提升了他们的海淘购物体验!
(呈现在露天拍卖网上的eBay listing)
来看看露天拍卖上都在卖什么?
生活家居产品成为大热,
男女时尚单品趋势良好。
玩具、相机、电脑等娱乐消费品类潜力巨大!
(露天拍卖2018年商品结构)
(在露天拍卖上成交量前5名的eBay listing品类)
这么大的市场,这么简单的操作,
你还在犹豫什么?
动动手指操作起来,Q4不冲待何时?
(来源:ebay)
以上内容属作者个人观点,不代表雨果网立场!如有侵权,请联系我们。
有任何eBay问题,请关注微信号【ebaycifnews】
上雨果网搜索“跨境资料库”,领取欧美/东南亚各国市场商机、各大平台热销品报告、跨境电商营销白皮书!
*请认真填写需求信息,我们会在24小时内与您取得联系。