架步骤进入coupang商家后台管理系统
你会看到主菜单。主菜单中的第一项即是“商品管理”。点击商品管理的第一个选项,"注册商品"。这是针对单个商品的注册方法。注册商品参考如下:
1、显示在销售页面的标题,商品名称由品牌名+商品名组成。注册商品名:不显示给顾客,只能自己看到,用于卖家管理。搜索酷胖哥,给你带来更多干货
注意:
1.一定要用韩文拼写法输入。
2.千万不要去使用与销售商品无关联的季节性的诱导购买的词语。例,顶级,特价,独家限量,全场最低,万圣节礼物等。
3.也不要去使用标点符号等特殊文字,你可以点击“搜索物品市场”,找到你要上架的商品名称。如有已经在平台销售的商品,可按[注册此商品]键导入基本信息去跟卖销售。
2、商品类别有俩种,类别搜索:你可以输入类别名,类别选择:你也可以选择类别
注意:搜索酷胖哥,给你带来更多干货
1/商品类别很重要,一定要注意,避免匹配错误的商品。
2/如果你选错商品类别,平台会将其移至相应的类别。商品一旦上架便无法更改类别,平台会根据你注册的商品类别收取佣金,所以你只能下架从新商家商品。
3、商品选项
商品选项是消费者订购时选择的选项。选项用于平台搜索引擎中的过滤搜索,使消费者更好地找到卖家的商品进行购物。
商品选项的消息包括颜色,大小,容量,重量等。选项数可选3个。如果你注册的商品有多个商品选项,点击“多选项商品注册”。如果没有,点击“单个商品注册”。
4、上传商品图片有两种方式:
基本注册:当商品的多种选项图片相同时
根据选项注册:当每个商品选项有不同图片时有两种商品图片:
商品主图是指在商品列表和详情页面上代表你商品的图片。必须上传一张商品主图。优质的主图本身可吸引更多的消费者。
补充图像:补充图像将以主图的左边(电脑版)或主图一起滚动的方式(手机端)曝光。最多可上传9张图片。
注意:
图片最小100px以上(建议大小:500以下)
容量在5MB以下,要用韩文输入,文件类型为JPG,PNG,并可使用逗号标点符号,可一次输入多个值。颜色可以输入为,红色,黄色,蓝色,白色
5、商品详细说明会显示在销售页面下端的“商品详细”区域有两种选项:
·当要注册的商品没有多种选项时就选择基本注册
·要注册的商品有多种选项时,就根据正确的选项去注册
商品详细说明方法:上传图像:点击“上传图片”直接输入点击“填写”按钮,即可直接创建文本、上传图像等。你可以轻松使用文本类型、插入表格等功能。
使用HTML进行详细页面创建时,可以点击“PC预览”对其进行检查。
6、商品主要信息中必填的项目为:
·如果没有品牌或品牌是自制的,请选中“无品牌(或自制)”有的话就输入品牌名称。
·如果是成人可以购买的产品,请选择“不可以”。
·需要加税的产品选择“征税”,选择“ 免税”表示该产品是免税产品。
7、搜索词
为了让您的商品更容易被搜索到而创建的,与商品相关的最多可输入20个搜索词(要用韩文)。用逗号(,)分隔搜索词。其他品牌名称或与你的商品无关的搜索词,可能会被Coupang删除或变更。
8、搜索选项词是为了让商品更容易搜索,提供各选项信息的功能。搜索选项词将自动设置为搜索词,并用作顾客搜索商品的搜索过滤器。你可以选择必要的属性进行输入。例如,销售运动鞋时,可输入颜色,尺寸,制造年度等属性。
9、商品信息提供公告,指根据韩国电子商务等方面关于消费者保护法的法律第13条第4项,卖家必须向消费者公布的信息。当你选择商品类别后,商品信息提供公告栏会显示你需要填写的项目。例如,制造商,制造国,认证事项等。
10、配送栏下方,输入信息。
发货地:点击卖家地址地址本,填写发货地址(济州/偏远地区配送选“不可以”)
快递公司:可在列单种选择快递公司。
配送方法:选择“代购”。
捆绑配送:只能捆绑配送发货信息相同的商品。
配送费种类: 免运费/付费送货/有条件的免费送货等。
基本配送费:如付费送货,可输入基本配送费。输入配送时发生的单程快递费用。发货所需日期:请输入顾客下单后发货所需时间。可选“基本输入”,或“按购买选项输入”。
11、点击“预览”来查看所有填写的细节。通过预览,可以查看显示给顾客的销售页面。
保存草稿:如果商品注册信息中没有填写所有必要信息,可以通过保存草稿,以后再进行商品注册。
保存:如果已经填写了注册商品所需的必要信息,可以通过“保存”来保存商品注册信息。如没有需要修改的,可点击“申请销售”。
12、每个商品类别的所需文件列表都不同。有些商品类别要求卖家购买发票,以确认流通渠道。
总结以下几点:搜索酷胖哥,给你带来更多干货
· 为商品取一个“合适”的名称
· 为商品选择正确的品类
· 列出详细的产品描述
· 上传清晰的商品图片
· 输入有效的搜索词,让顾客轻松找到您的商品
持抖音商家装修商品橱窗的【店铺装修】功能全新上线,装修后的橱窗能够提高用户购买体验和转化率,不过想要获得【店铺装修】功能使用权限是需要满足一些条件的,一起来了解下【店铺装修】的功能概括以及使用条件吧。
一、店铺装修功能主要内容
1、精选页:
包括:头图、海报、优惠券、精选商品。
2、商品页:
(1)原来的橱窗商品,仍分为“自卖”和“推荐”(“自卖”即原“我的”),添加方式及规则不变;
(2)橱窗中搜索功能暂时只支持搜索【商品】tab添加的商品,建议其他装修页添加的商品手动添加到橱窗商品中,
否则用户可能搜索不到。
3、分类页:
至少5个分类,每个分类至少4个商品。
注意:后续将会上线“自定义页”及“企业号商家页”,敬请期待。
二、店铺装修条件及入口
1、装修条件:
(1)完成店铺入驻及保证金缴纳;
(2)完成店铺官方帐号绑定;
2、帐号权限:
以下两类商家抖店帐号可以访问店铺装修功能页面并获得装修权限:
(1)店铺母帐号:默认开通;
(2)子帐号:需母帐号在子帐号管理中为该子帐号岗位配置店铺装修权限。
3、后台入口:
(1)访问链接:https://fxg.jinritemai.com/index.html#/ffa/mshop/decorate/selection/list
(2)【抖店商家后台】-【首页】-【店铺】-【店铺装修New】。
三、怎样快速给店铺铺货呢?
可以用抖音上货助手铺货软件——小抖上货助手
,可以快速给抖音小店铺货,操作简单系统稳定,支持无货源卖家。
明:本次文章是看了B站上的视频和分享的代码笔记后,自己敲了一遍代码。然后再敲一遍代码的同时写文章梳理逻辑,看不懂的同学可以去看原文章和视频。文章如有雷同,可联系我删除!视频链接:
https://www.bilibili.com/video/BV1pq4y1W7a1?spm_id_from=333.999.0.0
博客目录:
一、基于Django+mysql的点餐系统设计--第一篇(开篇:确认需求功能、数据库设计、程序设计)
二、基于Django+mysql的点餐系统设计--第二篇(搭建工程、前后端调试)三、基于Django+mysql的点餐系统设计--第三篇(编写后台员工管理页面)
四、基于Django+mysql的点餐系统设计--第四篇(编写后台菜品分类管理功能)
五、基于Django+mysql的点餐系统设计--第五篇(编写后台店铺管理页面)
本章源码下载地址:https://github.com/hopeSuceess/testorder/tree/testorder_20220221_01
原本是写完后台员工管理就要将后台店铺管理呢,一时疏忽写完后台员工管理跳过后台店铺管理先写了后台菜品分类管理。好了,开始讲后台店铺管理。
后台店铺管理和员工管理、菜品分类逻辑一样,代码包含增删改查。遵循MTV思想:url控制器访问路由,路由找到匹配的views,views的函数进行逻辑判断后出现两种情况,第一种是不需要增删改查数据库,直接调用templates将页面展现给用户;第二种情况是需要增删改查数据库,调用models(将数据增删改查)后将响应结果通过templates展示给用户。因为代码逻辑和上几篇文章的代码逻辑差不多,本篇文章就不详细阐述增删改查了,而是对本次代码编写种出现的文件上传/修改和ajax技术进行阐述。
在店铺新增和修改过程中涉及到了图片,先看看具体想要的效果页面,然后咱们再一步步实现它。
从效果图可以看出,新增页面、编辑页面都涉及到了店铺封面和店铺logo。可以先在templates/myadmin/shop/add.html和templates/myadmin/shop/edit.html入手,想让上传图片或修改图片,需要提供上传/修改的入口不是。看下面前端代码的实现逻辑:
templates/myadmin/shop/add.html店铺封面、店铺logo选项前端代码实现
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">店铺封面:</label>
<div class="col-sm-4">
<input type="file" name="cover_pic" />
</div>
</div>
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">店铺logo:</label>
<div class="col-sm-4">
<input type="file" name="banner_pic" />
</div>
</div>
</div>
前端代码实现了页面可以上传图片的功能,下面开始后端代码发挥将图片保存到指定位置的作用了。看下面后端代码的具体实现
def insert(request):
'''执行添加'''
try:
# 店铺封面图片的上传处理
myfile = request.FILES.get("cover_pic",None) #获取用户上传的图片
if not myfile: #如果图片为空,校验提示
return HttpResponse("没有店铺封面上传文件信息")
# 给写入后台的图片命名,split('.')是以.做分割,pop()是删除最后一项并返回最后一项的名字,这里是将图片的格式返回,如png、jpg
cover_pic = str(time.time())+"."+myfile.name.split('.').pop()
#打开刚才命名的文件名写入图片
destination = open("./static/uploads/shop/"+cover_pic,"wb+")
for chunk in myfile.chunks(): # 运用循环控制语句分块写入文件
destination.write(chunk)
destination.close() # 关闭打开的文件
#图标Logo图片的上传处理
myfile = request.FILES.get("banner_pic",None)
if not myfile:
return HttpResponse("没有图标Logo上传文件信息")
banner_pic = str(time.time())+"."+myfile.name.split('.').pop()
destination = open("./static/uploads/shop/"+banner_pic, "wb+")
for chunk in myfile.chunks():
destination.write(chunk)
destination.close()
#以上,将店铺封面和图标Logo写入到指定的目录下了,下面需要将店铺封面和图标Logo的文件名写入到数据库
# 实例化model,封装信息,并执行添加
ob = Shop()
ob.name = request.POST['name']
ob.phone = request.POST['phone']
ob.address = request.POST['address']
ob.cover_pic = cover_pic #将店铺封面名称写入到数据库
ob.banner_pic = banner_pic #将图标Logo名称写入到数据库
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()
context = {"info": "添加成功!"}
return render(request,"myadmin/info.html", context)
except Exception as err:
context = {"info": "添加失败"}
return render(request, "myadmin/info.html", context)
写到这里,图片的新增完成了,咱们看一下用户查询的时候怎么展示?后端将数据渲染到前端,前端通过循环控制语句将信息都遍历出来。进一步的通过在指定目录下进行参数配置将对应的图片展示出来。
<div class="box-body table-responsive no-padding">
<table class="table table-hover">
<tr>
<th>ID</th>
<th>店铺名称</th>
<th>封面图片</th>
<th>Logo图片</th>
<th>联系电话</th>
<th width="8%">当前状态</th>
<th>添加时间</th>
<th>修改时间</th>
<th>操作</th>
</tr>
{% for vo in shoplist %}
<tr>
<td>{{ vo.id }}</td>
<td>{{ vo.name }}</td>
<td><img src="/static/uploads/shop/{{ vo.cover_pic }}" width="60"/></td>
<td><img src="/static/uploads/shop/{{ vo.banner_pic }}" width="40"/></td>
<td>{{ vo.phone }}</td>
<td >
{% if vo.status == 1 %}
<span style="color:green">营业中..</span>
{% elif vo.status == 2 %}
<span style="color:red">休息中..</span>
{% elif vo.status == 9 %}
<span style="color:red">已删除</span>
{% else %}
<span style="color:red">未知状态</span>
{% endif %}
</td>
<td width="10%">{{ vo.create_at|date:'Y-m-d' }}</td>
<td width="10%">{{ vo.update_at|date:'Y-m-d' }}</td>
<td width="20%">
<a href="{% url 'myadmin_shop_edit' vo.id %}" class="btn btn-success btn-xs">
<span class="glyphicon glyphicon-edit" aria-hidden="true"></span> 编辑</a>
<button type="button" onclick="doDel('{% url 'myadmin_shop_del' vo.id %}')" class="btn btn-danger btn-xs">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> 删除</button>
</td>
</tr>
{% endfor %}
</table>
</div>
写完了关于图片的新增和查看,接着写一下图片的更新。在templates/myadmin/shop/edit.html页面中将需要更新的图片展示到页面
<div class="form-group">
<label for="inputPassword3" class="col-sm-2 control-label">店铺封面:</label>
<div class="col-sm-4">
<input type="file" name="cover_pic" />
<td><img src="/static/uploads/shop/{{ shop.cover_pic }}" width="60"/></td>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">店铺logo:</label>
<div class="col-sm-4">
<input type="file" name="banner_pic" />
<td><img src="/static/uploads/shop/{{ shop.banner_pic }}" width="60"/></td>
</div>
</div>
后端myadmin/views/shop.py的update函数接收判断前端传过来的name="cover_pic"、name="banner_pic",如果传过来为空则不需要更新图片,如果传过来的不为空需要将新图片更新保存。代码如下图
def update(request,sid):
'''执行编辑信息'''
try:
ob = Shop.objects.get(id=sid)
ob.name = request.POST['name']
ob.phone = request.POST['phone']
ob.address = request.POST['address']
ob.status = request.POST['status']
ob.update_at = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 店铺封面图片的上传处理
myfile = request.FILES.get("cover_pic", None)
if myfile is not None:
cover_pic = str(time.time()) + "." + myfile.name.split('.').pop()
destination = open("./static/uploads/shop/" + cover_pic, "wb+")
for chunk in myfile.chunks():
destination.write(chunk)
destination.close()
ob.cover_pic = cover_pic
else:
pass
# 上传logo图片的处理
myfile1 = request.FILES.get("banner_pic", None)
if myfile1 is not None:
banner_pic = str(time.time()) + "." + myfile1.name.split('.').pop()
destination1 = open("./static/uploads/shop/" + banner_pic, "wb+")
for chunk in myfile1.chunks():
destination1.write(chunk)
destination1.close()
ob.banner_pic = banner_pic
else:
pass
ob.save()
context = {"info":"修改成功!"}
except Exception as err:
print(err)
context = {"info": "修改失败!"}
return render(request, "myadmin/info.html", context)
至此,图片的上传、编辑、查询写完了,接下来要梳理下ajax的逻辑了
看下图,点击删除首先出现一个弹出按提示,然后用户再决定是否是继续进行删除还是取消删除。这个弹窗实现的功能就是不改变全局页面的情况下进行局部功能的变动。这个弹窗用到了ajax技术。
从前端代码看ajax技术的使用,templates/myadmin/base.html中实现doDel()函数
<script type="text/javascript">
//自定义一个用于实现Ajax信息删除的函数
function doDel(url){
Modal.confirm({
msg: "确定要删除吗?",
title: ' 信息提示',
btnok: '确定',
btncl:'取消'
}).on(function (e){
if(e){ //判断是否点击了确定按钮
window.location.href=url;
}
});
}
</script>
templates/myadmin/shop/index.html中删除选项点击事件中套上doDel()函数
<button type="button" onclick="doDel('{% url 'myadmin_shop_del' vo.id %}')" class="btn btn-danger btn-xs">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> 删除</button>
这样就实现了点击删除出现先弹框提示的功能了。
以上,店铺管理两个要点都讲完了,下一篇章开始写菜品管理的代码了。
*请认真填写需求信息,我们会在24小时内与您取得联系。