2020年7月6日星期一

Shopee小白怎么上手,才能快速出单,这三点告诉你答案

Shopee小白怎么上手,才能快速出单,这三点告诉你答案

4951.png

随着国内电商市场的逐步饱和,跨境电商逐渐在人们的视线内活跃了起来,现在关于shopee平台的内容越来越受卖家和受众关注。新开的店铺想要从0到1是有点难度的,今天就来说一下,新手店铺如何实现从0到1 的转变

4952.png

第一点:选定产品

想要浏览量高,成交量高。首先要有流量大的产品。也就是爆款产品。怎么寻找爆款产品呢。站内搜索栏下的热搜标签,可以判断出平台这个时期最热搜最火爆的产品。也可以从每周周报上获取近期热卖的产品以及买卖的最差的产品。选择卖的最好的产品类目,进行选品上架。

4953.png

第二点:产品的价格

产品价格定位,要考虑多种因素,一是自己的成本,二是受众的消费水平,还有市场针对此种产品的价格。Shopee主打的是东南亚市场,东南亚相对来说比较落后,经济水平较低,消费水平当然也随之较低。受众大都是国内像拼多多用户那样的人,喜欢即经济又实惠的产品。平台商不可能只有你一个人在卖这件产品,可以在平台上去搜索同样的产品,看看其他卖家的价格是什么。要不然的话,自顾自的去上新定价,可能会出现定价过高的情况,甚至有可能是同行的几倍。那样的话,上新再怎么热卖的产品都没有用,同等的商品别人买卖三十,你卖六十。顾客人当然会去选择别家

4954.png

第三点:客户的粘性

想要留住客人,让他成为你的回头客,甚至是铁粉。首先客户咨询的时候要很用心的去解答,不要一副爱理不理的样子,这样真的会让客户对店铺的好感瞬间下降。还有就是在客户下单后送一个小礼品什么的,客户收到后会很惊喜的。如果他/她感觉收到后感觉很好,那么以后在他们还需要这类产品的话就会去寻找你的店铺进行再次下单。或者是朋友也想买,他们感觉你的产品好服务态度好,就会推荐这样无形中就又多了一名潜在客户。也可以在客户咨询时说一下,点点关注下单可以送优惠券或者包邮活动。给了客户最大程度的优惠,客户也会满意,满意就会回购,回购次数多了,客户以后此类产品也就会在你们店铺买了。

4955.png

电商也是生意,做生意就要时刻注意市场的走向以及行业的发展。在这个僧多粥少的市场里,你只有比同行更努力才能做得比同行更好。不要刚开始做感觉没有好的成效就想放弃,一口吃不成胖子,少吃一口也不会成瘦子。既然做了,反正怎么去做都是会有一个结果的,做得好坏就看是否用心了。以上三点就是今天的小白干货分享,希望你可以越做越好,越做越大,加油!


查看原文:https://www.ikjzd.com/home/125002

蜜芽宝贝官网:http://www.ikjzd.com/w/1320

敦煌网:http://www.ikjzd.com/w/189

kkr:http://www.ikjzd.com/w/1340

Shopee小白怎么上手,才能快速出单,这三点告诉你答案

近7亿人口红利的拉丁美洲市场,做还是不做?

近7亿人口红利的拉丁美洲市场,做还是不做?

日本、北美、欧洲等这些成熟的电商市场,无论是卖家入驻或是平台市场的私下较量,竞争都十分激烈,已趋于白热化状态,让不少卖家在高风险中抽身,独辟蹊径,寻求新兴市场的发展机遇。

图片1.png

拉美市场可以说是跨境电商的一个新兴市场,近年来发展十分迅速,在跨境圈里也是非常火爆!已经渐渐成为跨境电商新沃土。

6.51亿人口的拉美市场

拉美市场都包括哪些地方?

可能有部分卖家并不是很清楚,简单来说就是美国以南的美洲地区,共有至少33个国家和地区。这里的主要语言是西班牙语(除巴西讲葡萄牙语之外),这里各国经济文化政治包括人种相似度都很高!

图片2.png

拉丁美洲地区拥有6.51亿人口,占全球人口数量 10%,整个拉美的人口结构偏年轻化,也是目前世界互联网人口增长最快的地区,拥有互联网用户数量近3.75亿,智能手机用户数量2.5亿,且这一数字将持续上涨,为该地区的电商发展提供充足的动力。

图片3.png

目前的拉美电商市场正处于"萌芽"阶段,但却是全球增速最快的电子商务市场之一,销售额年增长率19%,预计到2022年,电子商务销售收入将达到940亿美元。未来五年的在线销售额将增长19%(比全球平均水平高8%)。

巴西是拉丁美洲最大的电商市场

在拉丁美洲众多国家中,巴西是拉美市场人口最大的一个国家,也是拉丁美洲最大的电商市场,占了拉丁美洲42%的市场份额,电商用户550万占据众拉美国家之首!其次是墨西哥市场,占13%的市场份额。

巴西人口2.1亿以上,其中互联网用户就达1.16亿,互联网普及率约为80%。越来越多的人体会到线上购物的便捷性,线上购物也被越来越多的人接受,调查显示:巴西有71%的网购人群在2019年购买过中国的商品,中国是巴西当地受欢迎程度最高的跨境购物市场。

图片4.png

据巴西exame研究中心报道,2019年度巴西的电商平台交易额达到751亿雷亚尔,约合966亿人民币,相较于2018年交易额增长约41%。

国内卖家掘金拉美市场时,大多都是从巴西市场开始切入!

掘金拉美,什么选品有优势?

虽然拉丁美洲的GDP以及互联网普及相对较高,但拉美经济仍以第一产业为主,制造业较薄弱,加上目前部分巴西、墨西哥等拉美市场的电商平台相继开始入华招商,这将成为中国卖家新一轮开拓海外市场的有利契机和绝佳突破口。

那么在拉美市场卖什么产品比较有优势呢?

消费电子产品

拉美制造业不发达,没有足够的能力生产质优价廉的电子产品,而中国恰好又是电子产品出口大国,所以,中国卖家在拉美有很大机会。(例如:手机产品在巴西市场的价格差不多是在中国的两倍!)

图片5.png

时尚类产品

比如服装,手表,太阳眼镜,包包和运营装备等,对于这些产品,拉美人一般比较认可欧美品牌,但中国品牌的优势是性价比高,如果能在价格上做到有优势,拉美市场还是很可观的。

美妆护肤类产品

以巴西为例,巴西人爱美是出了名的,这些美妆类产品是必不可少的,美妆市场发展速度几乎是GDP的2-3倍。有人调查,在巴西尽管每个顾客爱美程度不同,但是平均下来每个女性顾客每个月在美妆产品的花费差不多在五六百雷亚尔左右(约900人民币)。

图片6.png

此外,服装、手表、太阳镜、玩具及家居用品等日常使用且具有超高性价比的产品,也是值得关注的品类。

机遇与挑战并存

虽然拉美市场很热,但是各位也要冷静对待,拉美电商市场目前仍有许多问题需要克服!支付和物流是两大痛点!

在拉丁美洲,消费者可以访问基于信用卡的安全支付方式是非常有限的。事实上,该地区的许多人并没有使用正规的银行系统。偏好货到付款的方式的消费者占比高达35%。

图片7.png

不过,在拉美最大的两个市场——巴西和墨西哥,消费者首选的支付方式仍是使用信用卡,这两个市场可以说是推动拉美电商市场发展的巨大引擎。

另外,物流、交通和基础设施将是该地区发展电商的一大阻碍,其中仅物流就占销售成本的15%。许多在线零售商多年来一直把物流放在次要位置,仅专注于购买时的用户体验,使得一件商品可能需要几周时间才能送到顾客手中。而如果要在蓬勃发展的电商时代保持成功,在物流领域的投资将可以为卖家带来更多的电商销售。

拉丁美洲历来是世界上经济最多样化的大陆之一,言语沟通、用户习惯及运营思路差异大,市场机遇大,但挑战也不小。想要在这个蓝海市场分一杯羹,卖家需要做好充分的准备!

图片8.png

不过卖家也不用太过担心,发展较为成熟的拉美电商巨头(主要是ML及B2W)已经在卖家回款和物流供应链等方面,为跨境卖家铺好了路。支付方面,买家分期付款,平台也会一次全款回款给卖家;而物流方面,平台在当地也建立了不少海外仓,是平台快速拓展跨境卖家业务的有力工具。

拉美电商平台推荐

国内卖家掘金拉美市场,大多数卖家都是从这两个拉美电商巨头平台开始入手:Mercado Libre和B2W。

Mercado Libre

图片9.png

Mercado Libre是拉丁美洲地区最大、增长最快的电子商务平台之一。

业务目前覆盖了拉美地区18个国家,且在多个主要国家位居前列,包括墨西哥,巴西,阿根廷,智利以及哥伦比亚等。拥有超过3.2亿的注册用户。在整个拉美地区,网购消费者中有47%会选择 MercadoLibre。

B2W

图片10.png

B2W是巴西本土最大的电商企业,也是拉丁美洲电商行业巨头之一。占据50%以上的市场份额,对标国内的淘宝/京东。

B2W拥有完整的电子商务品牌组合,客户重叠程度较低。这一平台旗下拥有Americanas,Submarino,Shoptime等三大品牌,三大品牌拥有不同的消费者定位,几乎覆盖了所有巴西消费群体。

加入B2W,卖家优势多多:

1. 市场大、流量大:平台平均月访问量为1.4亿次,月页面浏览量达5.7亿次,2019年平台GMV高达18.9亿欧!

2. 线上线下结合,更受消费者信赖:Americanas拥有1300多家线下实体店,遍布巴西全国。

3. 支持消费者分期付款,B2W全款打给卖家,把买家网购阻力降到最低,提高复购率。

4. 本地化运营,符合巴西本土消费习惯。

拉美电商新兴市场潜力巨大,又正值人口红利期,且这里几乎没有中国品牌,国内自有品牌卖家机会很大!拉美市场是卖家非常值得拓展的市场之一!

【点击这里,掘金拉美市场】

图片11.png


现通过ESG入驻,,还可享受额外的支持,让您的运营无后顾之忧!

1、平台快速入驻绿色通道

优先审核、上线与激活,市场上最快的审核保证

2、免费卖家培训

为新卖家提供各平台线上线下培训,更好了解平台规则,为卖家提出最佳操作建议

3、免费平台数据

分享从平台处得到的关键数据(如最畅销的SKU、品类等)分享给卖家,以便卖家制定更好的销售规划

4、免费客户经理对接和支持

专人对接,客户经理与平台合作,帮助卖家更有效率的解决各种运营状况,是卖家与平台联系的桥梁。

5、解决店铺封店问题

如果卖家账号有关停风险,ESG会提前通知卖家,并制定措施计划改善此状况;如果是被冻结,在该账户不涉及假冒伪劣产品的前提下,ESG将协助卖家恢复该账户。

ESG与卖家拥有共同的利益目标,就是确保卖家销售良好并尽可能达到更高,确保卖家账户运行顺畅,而没有被封闭关停的风险。

 


查看原文:https://www.ikjzd.com/home/125004

海淘贝:http://www.ikjzd.com/w/1726

square:http://www.ikjzd.com/w/2106

拍怕:http://www.ikjzd.com/w/2205

近7亿人口红利的拉丁美洲市场,做还是不做?

面对Google流量红利期,独立站卖家如何借势营销.?

面对Google流量红利期,独立站卖家如何借势营销.?

说起跨境电商,目前的主流市场在北美和欧洲这边,以亚马逊、Wish、速卖通、eBay四大平台为主,现在欧美竞争非常激烈,小卖家想要突围非常难。

如果你选择了亚马逊,创业资金保守20万,产品成本、物流头程、VAT注册申报、商标、找测评、广告费、站外推广...额,我收回20万的预算,这点钱,做了亚马逊也是随时打水漂。

如果你选择了Wish,好吧,拦不住你,就让Wish罚哭你。

如果你选择了速卖通,也没有什么不好,就是速卖通的卖家都在开发新平台...

如果你选择了eBay,也没有哪里不好,就是平台规则不太适合你发展壮大,发家致富。

所以,随着平台的合规化,政策的不断调整,及大量的新生卖家入驻,导致竞争也大了不少。诸多因素,造成站内流量成本随之增加,产品利润持续下降,进而跨境电商卖家投身独立站的趋势也愈加明显。

我们都知道,做独立站,选品也是很重要的一个环节。所谓选品占七分,运营占三分。产品选的好,酒香不怕巷子深。

而前段时间呢,由于疫情的缘故,很多卖家通过独立站销售口罩赚了一笔。然而,在口罩之后,我们还是能看到很多品类的销量爆发,有如3C产品、家居和玩具、家纺、运动用品、婴儿用品、防灾用品、美妆、家用小电器、时尚品类等。

当前跨境电商独立站订单回暖走势背后的"真相",原因有如下四点:

(1)现阶段有相当一部分自发货卖家转型售卖防疫物资,订单量暴涨,毛利上升。

(2)全球疫情席卷大背景下,线下业务向线上转移已是大势所趋。

(3)美国"发钱政策",消费者"有钱""有闲",订单回暖自是无可厚非。

(4)疫情期间随着用户在线时长增加,Facebook和谷歌广告投放成本有所下降,流量上涨明显。

所以除了选品,推广也是独立站运营过程中,极为重要的一部分:

2020年4月底,Google平台宣布了一项新政策:Google Shopping广告版块,将免费开放给所有用户使用!

2020年6月17日,Google Ads表示,将对包括中国、德国、印度、意大利、新西兰、西班牙、中国台湾、乌克兰、英国、美国这些国家和地区发放广告赠金。这笔费用可用于自动抵消今后的广告支出,广告主无需执行任何操作。

据介绍,此次Google Ads将向全球中小型企业客户发放 3 亿 4 千万美元的广告赠金,这些赠金在 2020 年底之前可用于抵扣在所有 Google Ads平台上的广告支出。

Google平台在付费广告领域可谓是老大哥了,广告商在Google Ads上每花费1美元,就能赚取8美元。每天35亿的互动量,投资回报率约700%。而且搜索意味着需求,当用户主动去找这个关键词的时候,说明他对这个产品是有需求的,所以谷歌广告的流量质量都比较好,我个人也比较推荐大家投广告的时候选择Google,况且现在也是Google的流量红利期。

之前也有朋友和我反馈过,初步尝试了Google Ads但效果不显著,我分析可能是以下原因:

(1)虚假陈述:

Google不希望用户感到被广告误导,因此我们努力确保广告信息坦诚、明确,并为用户提供所需的信息来帮助他们做出明智的决策。

(2)关键字不够精准:

关键字是投放过程中非常精细、重点关注的部分。同时关键字需要测试并不断调整,如果关键字过于笼统,Google会将广告展示在不够精准的受众群体面前。

(3)广告评级:

决定广告是否展示以及展示顺序的是广告评级,而决定广告评级的主要因素包括出价、广告、网站的质量等原因。所以我们可以通过提高关键字品质分数,用低费用获高排名:

关键字广告排名 = 关键字品质分数 * 单次点击最高出价

品质分数是一项影响广告排名的重要指标,用来衡量广告、关键字和到达网页品质的综合表现。在固定的预算下,品质分数的高低决定广告实际被点击数的多少。品质分数越高,就可以利用越少的钱获得越高的广告排名。

品质分数 = 广告点击率 * 广告相关度 * 到达网页体验

当广告曝光在搜索引擎页较前的位置时,被消费者看到并点击的几率就更大,这也就是我们说的广告点击率。在关键字有竞争的前提下,点击率越高说明消费者越感兴趣。所以我们除了做好站外推广,在站内优化方面,也需要重视起来。

(4)登陆页体验不佳:

我们不应该仅仅着眼于广告,点击后的用户体验也是转化中的一环。用户点击广告后会看到什么?目标网页是否为转化目标进行了优化?页面是否可以解决用户的痛点?

(5)地区时差定位:

定位效果是谷歌推广不可忽视的一个环节,不同的产品都有其适合于投放的国家,也有适合于其年龄的用户购买需求。

正是如此,所以定位技巧也是有着一定的考究,通过数据的解析可以去了解不同的产品在谷歌每天11亿搜索量的占比以及分布。找准相应的蓝海市场,再着重的进行投放,是做好谷歌推广的关键所在,而且时区也会影响着投放的效果,欧美的时区同中国的时区有很大的区别。

(6)域名:

购买一个从未使用过的.com域名基本没有问题,但是如果被惩罚过的域名,比如之前拿此域名发布过不良内容、黄赌毒内容都是有可能被谷歌惩罚降权的。

(7)及时沟通:

谷歌推广上线后,会有大量的精准客户到访你的网站,所以作为主人自然要接待客人,而不是空荡荡的页面中留下联系方式或者直接邮件联系。所以我们在做谷歌推广的时候,在页面上安装相应的在线沟通工具,可以提高用户黏度,让客户从被动转化为主动。

(8)合理设置出价预算:

假设今天的广告已获得了良好的 ROI (投资回报率),这时提高预算将会增加转换数。但若预算不足,广告曝光比重只有50%。这样一来就错失了50%可以获得转换的机会。这时,优先提升广告品质来降低单次点击出价,等成效提升后再来调整预算,会让卖家省下不少费用。

这里要注意下,例如你填写10美元每天,每个月的预算就是300美元,但是实际的可能会花掉15美元,每日的幅度一般不会超过设置好的150%,同时每个月的预算不会超过300美元。

4948.png

广告附加信息:这个是必须要填写的,可以提升广告点击率,可放入电话号、附加链接等。

4949.png

效果:

4950.png

推广问题解决了,我们就要将这些流量,引入到自己的独立站当中。建站的优势,之前的文章介绍过很多遍,今天就不一一说明了。最后我们讲一讲,独立站运营的侧重点(非站内优化方面)。

很多卖家提起独立站,就想去做品牌,想到溢价空间。对于大多数企业来说,"品牌"这个词是很虚的东西,常常是口头上比较重视,但是实际上可以先放一放。

大家都知道可口可乐有个著名的说法,"一夜间工厂都烧了,第二天还可以建起一个可口可乐",这句话被认为是对品牌力的绝佳描述,我也一度很认同(之前写了很多品牌相关的文章),但现在来看,这个描述可能会给大家带来非常大的误导。近些年来,我对"品牌"这个东西的看法发生了一些转变。

那么现在重要的是什么呢?

(1)供应链/产业链的整合能力:不仅能决定最终产品价格(比如说服装成本更低、价格更低),还能给予用户更好的产品体验(比如说线上购物物流越快),这些在产品端上都能直接让用户感知到。

(2)选品:结合你的供应链来说,高客单价+低进货价(供应链优势)=高利润。

你一个产品就卖10美金,按照利润来算,最多也就扛得住5美金的广告费了。那如果是100美金的产品呢?50+美金的广告费!显而易见,50美金广告费和5美金广告费,哪个出单的几率大?

(3)网站装修:太多的新手无视了这点。以为花钱建个网站,然后上传点产品,跑跑广告,就能等着出单,其实并不是。

以www.anker.com这个网站为例,他们网站的装修,以及图片的设计,简直像是一部美国科幻大片,这样还会担心留不住用户吗?

所以对于跨境电商来讲,你要具备的不只是互联网思维,还应懂得面向海外消费者的经营模式!


查看原文:https://www.ikjzd.com/home/124959

黄劲:http://www.ikjzd.com/w/2426

bol:http://www.ikjzd.com/w/291

zen cart:http://www.ikjzd.com/w/1282

面对Google流量红利期,独立站卖家如何借势营销.?

Shopee各站点要求,政策更新通知

Shopee各站点要求,政策更新通知

查看原文:https://www.ikjzd.com/home/124987

一淘比价网:http://www.ikjzd.com/w/1698

手机trademanager:http://www.ikjzd.com/w/730

ask me:http://www.ikjzd.com/w/2459

Shopee各站点要求,政策更新通知

提高关键词排名,掌握SEO是关键!

提高关键词排名,掌握SEO是关键!

作为亚马逊卖家,你在此平台上的成功取决于两件事:

关键词排名

PPC的有效性

然而随着越来越多的品牌和销售商通过改进的PPC来衡量成功,CPC率大幅上升。

虽然亚马逊点击付费会提高你的搜索排名,但你不能完全依靠亚马逊Sponsored广告来增加你的利润,因此,首先掌握SEO是很重要的。

亚马逊产品排名

让我们从SFB策略开始——搜索(Search)、查找(Find)、购买策略(Buy Strategy)。

搜索、查找、购买策略

脸书广告是一个很好的方式来推动流量到亚马逊产品listing。你所需要做的就是创建和运行脸书广告来吸引潜在的买家。

私有品牌卖家通过脸书广告获得了巨大的利益。根据人口统计数据和买家兴趣,这些广告的目标客户是消费者。

让我们看看其他可以提高你在亚马逊上的利润的排名因素

从高权限域重定向

使用重定向链接从具有高权限的域到你的亚马逊listing。

例如,使用Pinterest图片或Youtube视频将你的潜在买家引导到你的listing,因为,亚马逊喜欢来自权威网站的流量。

充分利用地理排名

什么是地理排名?

亚马逊从区域角度分析数据和指标。它考虑与你的库存和客户购买模式的相关性。

因此,尝试使用外部营销技术来增加库存所在州的销售额,这可以帮助你在亚马逊上排名地理排名。

发送更多库存

用比平时更多的物品来充实你的亚马逊库存。你会开始看到销售额的增长。你的产品很有可能被放置在离客户发货地点更近的地方。亚马逊的算法倾向于这样做,因为这样可以节省大量的资金和时间来运送产品,这也减少了多次往返。

亚马逊SERP算法如何变化?

有许多因素影响亚马逊 SERP算法。本文将讨论库存和运输。此外,地域排名受区域受众和本地产品市场契合度的影响。2020年,亚马逊SERP发生了进一步变化,为卖家提供了更多发展业务的空间。

现在,让我们看看如何使用地理位置排名来优化销量

库存层面

不要低估你的产品。如前所述,用更多的产品来充实你的库存。这将使你比在该地区存货不足的竞争对手更有优势。

使用亚马逊配送报告监控你的库存水平

进入卖家中心,然后悬停在Reports部分;

点击Inventory后进入Fulfillment;

进入Daily Inventory History ,以跟踪库存水平。

产品Listing层面

你需要为你的目标受众优化你的产品listing。在优化的过程中,你应该意识到地区的变化,并改变语言和产品描述更相关于你的目标客户。

与一般的内容相比,根据客户的购买行为和心理来改变内容将会促进产品的销售。

亚马逊站内推广

现在,在亚马逊上销售和不销售产品的广告商可以使用亚马逊的DSP。利用亚马逊DSP广告投放到目标区域,用广告定位特定的地点。

亚马逊站外推广

脸书广告和谷歌广告是针对特定地区的受众的好方法。不要以国家为目标目标,而是选择一个国家内排名最低或最高的州。使用相关关键词或ASIN定位特定地区,使竞争对手处于弱势状态。这可以帮助你利用现有的微小差距。

随着越来越多的卖家扩大他们的PPC广告,多样化和使用其他因素来增加你在亚马逊的利润是很重要的。此外,通过回答一些重要的问题,如在哪里扩展业务,可以极大地提高你的销售吸引力。

最后,你需要根据客户的兴趣和亚马逊的算法对产品listing进行优化,以获得更多的客户。


查看原文:https://www.ikjzd.com/home/124996

tiki:http://www.ikjzd.com/w/2053

外贸圈:http://www.ikjzd.com/w/1083

亿恩网:http://www.ikjzd.com/w/1461

提高关键词排名,掌握SEO是关键!

传统外贸的5大转型思路,看看你是属于哪一种?

传统外贸的5大转型思路,看看你是属于哪一种?

传统外贸工厂在疫情影响之下,订单腰斩甚至全军覆没是不争的事实,关键在于如何挽救,重新焕发生机才是下半年的重中之重。

转型,是近些年来,传统外贸行业不少企业都在做的事情。只不过,有些企业仍在徘徊、有些仍在半途,而此次疫情则将加速传统外贸企业实现转型升级的过程。

在这次疫情中,很明显的能够看到外贸企业出现了以下几点转型思路:

1、产业转型:经营"服饰"的转型做"口罩"了;

2、转型B2小B:注册了阿里巴巴国际站和环球资源,也接小B订单;

3、跨境电商:不少传统外贸工厂转做亚马逊、eBay、速卖通、Wish、独立站等;

4、拥抱互联网:通过网上广交会,阿里国际站网交会等线上展会获取海外订单;

5、转内贸:触达国内电商,比如拼多多,开展"地摊经济"、为线下超市供货。

……

这其中,转型B2小B成为众多工厂发展的主要方向。为亚马逊等跨境电商卖家供货这样的通路由来已久。过去许多工厂对小单不屑一顾,但是根据观察,小单利润更高,有时候一个大订单做下来,还不如多做几个小订单赚得多。

同时,近段时间以来,各地外贸企业在阿里国际站开起了账户,并布局阿里国际站快速交易(RTS)赛道。这是由于海外消费需求加快线上化,海外贸易链条的中间商倒闭,释放出大量小额(碎片化)订单需求转移到线上。

汇集衍生了纺织服装、鞋业、石油化工、机械装备、建材家居等近20个千亿产业集群的泉州产业带正在积极寻求转型,7月8日与携手举办首次线上直播选品大会正是其重要的一环。【点击此处预约】

据悉,本次线上直播选品大会,众多泉州企业纷纷参与,品类涉及户外休闲、运动健身、鞋包等,全力为跨境电商卖家供货。会议现场更有阿里巴巴、亚马逊、Shopee等大咖在线与卖家分享市场商机,热门品类以及时尚潮品,帮助跨境电商卖家打好下半年的"战"。

是中国跨境电商领域的流量入口,全国超过80%以上的跨境电商从业者至少每周访问一次,这意味着,传统外贸企业在上将获得精准的目标用户。同时,也是阿里巴巴深圳、东莞和闽汕大区的官方招商渠道商,能帮助更多的企业解决跨境B2C和B2B的出海问题。

泉州产业带是线上直播选品大会的第一站,接下来也将携手各大产业带,为传统外贸工厂提供产品曝光的机会,为跨境卖家持续输出精品!

传统外贸的5大转型思路,看看你是属于哪一种?netporter一淘网比价平台reverb亚马逊小白课堂:Listing排名规则米谷自然评论也被删!亚马逊旺季封号又开始了?A-沈阳故宫、平壤、开城、南浦、精华5日四飞游A-沈阳故宫、平壤、开城、南浦、精华5日四飞游A-海天佛国普陀山三天双飞朝圣之旅

亚马逊运营QA集锦(824-833)

亚马逊运营QA集锦(824-833)

Q824:A公司注册了1.2.3三个品牌,可以分别拿去直接备案在A.B.C三个公司注册的亚马逊店铺上吗?还是要通过授权的模式?

如果这三个品牌之前都没有在亚马逊上备案过,那就可以直接用在ABC三个店铺中。如果之前已经有备案过,那就需要授权了。

Q825:做按摩棒被归类进成人用品,而且本身账号没有开成人类目的销售权限,多次被归类的话对账号安全性有影响吗?

在亚马逊上销售成人用品并不需要开销售权限的。

至于多次被归类对账号有没有影响,这个也有一些运气成分在。有卖家因成人用品没有放到正确类目下而被封号的,但更多的卖家只是产品被归类而已。

Q826:亚马逊最近我上架了一款成人用品到美国站,出单后就找不到listing,请问怎么回事?

刚上架的时候,应该是亚马逊还没有将你的listing标记为成人用品,所以出单也比较快。但之后系统识别了你的产品为成人用品,标记之后就无法正常搜索到了。你可以通过后台库存页面点击查看自己的listing。

Q827:亚马逊成人用品站内广告限制,怎么找流量?

根据亚马逊的规则,成人用品是无法投放广告的,而且只能通过类目节点一层一层地去搜索才能找到产品,所以流量很小。

一般都是通过投放站外广告,或者通过与外面的网红合作来增加listing的流量。

Q828:之前做自发货的,现在想转海外仓,订单点了发货,提交了单号,后期还能改单号吗?

可以修改的,直接在订单页中修改就行,亚马逊也会自动发邮件告知买家物流信息的变化。

Q829:本来销量已经够惨了,今天看了一下listing,无法配送到你的地址?亚马逊又要搞什么新花样

当前台显示产品无法配送到你地址的时候,一般是因为前台地址默认为China了。将前台左上角的地址设置为美国地址就可以了,因为亚马逊很多产品不支持送到中国。

Q830:亚马逊如何联系买家删除或更改差评?早期评论人

卖家不允许因为评价有关的事情去联系参与早期评论人的买家,并且只要早期评论人的Review符合平台规则提交了,亚马逊不会删除或者修改。

这个时候建议卖家着重看看为什么得到差评,看是不是产品本身的问题。

Q831:"您的广告被暂停,因为它不符合广告政策的要求",产品FBA有库存,在售,有购物车,为什么会不给做广告呢?补充一下,就是很普通的产品,不含液体不含电,不含药物性质,销量就比有广告的时候少一半,每天只有十来件

有可能是被系统误判为了成人用品,另外检查有没有关于宗教、性暗示等违反平台规则的关键词存在。

建议直接开case找客服问清楚情况,如果有违规的词删掉就行,如果被误判为成人用品就可以申诉。

Q832:请问一个店铺可以拥有多个商标嘛?

可以的,一个店铺可以备案多个商标。

Q833:亚马逊新店铺,刚过KYC审核。现在公司有股权变动,变成法人一人独资,其他信息没有变化,会影响店铺吗?

如果店铺不遇到二审,那就没啥影响。如果遇到二审,提供的内容和KYC审核的资料不一致的话可能就通过不了。

建议如果公司要变动股权,最好是在店铺注册成功之后再操作。(来源:绝版祥Cary)


查看原文:https://www.ikjzd.com/home/124985

farfetch:http://www.ikjzd.com/w/2133

Zozo:http://www.ikjzd.com/w/2180

淘粉吧返利:http://www.ikjzd.com/w/1725

亚马逊运营QA集锦(824-833)

西班牙人这下彻底乱套了:输球夜武磊队友2次出现内讧!_比赛

原标题:西班牙人这下彻底乱套了:输球夜武磊队友2次出现内讧!

对于中国球迷来说,这注定又是令人无奈和失望的一个晚上,武磊所在的西班牙人队在西甲第34轮比赛中,面对西甲倒数第2的莱加内斯队依然毫无办法,0比1主场落败。武磊虽然首发出场,但是球队却没给中国前锋太多支持,反而出现了乱套和失控的局面。在这个悲惨的输球夜,武磊是时候考虑离开这样一支已经不再团结的球队了!

本场比赛武磊首发出场后,踢得十分积极努力,但是无奈队友始终不能给他送出质量较高的传球,而球队反而被对手攻入1球。在比赛第54分钟的时候,对方打出了一次反击,乔纳坦席尔瓦突然从左路前插,接到队友妙传后轻松单刀破门,这次西班牙人的防守形同虚设,而武磊恰恰需要莱加内斯这样的传球,却始终没有等到!

在这次丢球后,西班牙人队防线也终于忍无可忍,队长哈维洛佩斯在看到这个丢球后,竟然直接转过头来怒斥队友恩巴尔巴,当场摊开双手抱怨恩巴尔巴的画面被镜头捕捉到,看得出来,球队的心态已经崩了,出现了十分罕见的内讧局面,球员之间也开始互相责怪,漏洞百出。此后的比赛中,西班牙人就更是难以挽回局面!

主帅鲁菲特用卡莱里换下武磊之后,西班牙人队并没有取得扳平比分的进球,反而一次次浪费机会,整个球队的心态彻底失衡。在比赛第88分钟的时候,替补出场的卡莱里竟然口出狂言,直接向裁判连续申请到了2张黄牌,上场仅仅24分钟就被红牌罚下,这样的状况也令人措手不及,甚至连主帅鲁菲特都不敢相信!

卡莱里下场后,鲁菲特对于卡莱里这样失控的举动非常不解,摊开双手向他寻求解释,而卡莱里却当场与主帅鲁菲特争执了起来,随后更是一脚传向场边的水瓶,险些摔倒。不得不说,一场比赛西班牙人队出现2次内部争吵,在整个足坛都十分少见,西班牙人已经彻底乱套了,武磊在这样一支球队踢球实在让中国球迷心疼!(老邱 中超球评)

返回搜狐,查看更多

责任编辑:

西班牙人这下彻底乱套了:输球夜武磊队友2次出现内讧!_比赛kilifocalprice斑马物联1月31日,印度将对美国加征报复性关税?亚马逊日本站能用的运营工具单款月赚几万?选品框架少不了!去歌诗达邮轮旅游要多少钱歌诗达邮轮旅游跟团需多少钱歌诗达邮轮旅游跟团需多少钱

正在视频直播:皇家马德里vs毕尔巴鄂_比赛

原标题:正在视频直播:皇家马德里vs毕尔巴鄂

比赛性质:西甲第34轮

比赛时间:7月5日20点

直播地址:↓↓↓↓↓↓↓↓↓↓↓↓

北京时间7月5日20点,西甲第34轮,皇家马德里vs毕尔巴鄂。

比赛看点:

皇家马德里本赛季在联赛的表现处于上游水平,目前33轮联赛赛后取得22胜8平3负积74分排名第1位,主场16轮取得12胜4平未尝一负的战绩,目前球队位于积分榜榜首,但是与次席的巴塞罗那只有1分的差距,所以依然需要一定的积分来保住榜首席位,无疑战意十足。球队本赛季的进攻能力还可以,而防守能力则是比较差,主场战斗力不错。皇家马德里上场比赛是在主场迎战赫塔菲,最终以1-0的比分取胜,此役进攻端发挥不错,防守端表现稳定,复赛后6轮全胜,士气高涨状态出色。目前来看,球队位于积分榜榜首,但是与次席的巴塞罗那只有4分的差距,所以依然需要一定的积分来保住榜首席位,无疑战意十足。

毕尔巴鄂竞技目前以12胜12平9负的成绩排在联赛第9位,毕尔巴鄂竞技上轮客场挑战瓦伦西亚,2比0击败对手,迎来了两连胜,状态还是不错的,前几场面对排名第二的巴萨0比1输掉了比赛,这场直接面对排名第一的皇马该如何应对?

返回搜狐,查看更多

责任编辑:

正在视频直播:皇家马德里vs毕尔巴鄂_比赛败欧洲运费环球市场asiabill谷歌推广效果的确好,前提是你的行业是否适合做 干翻苹果碾压谷歌,亚马逊颠覆零售后"入侵"医疗,比马云还狠英国HMRC立法缴税方式变动,跨境电商卖家又将迎来当头一棒?歌诗达邮轮旅游大约多少钱歌诗达邮轮旅游大约多少钱去歌诗达邮轮旅游要多少钱

2020年7月5日星期日

新冠疫情下,中西部外贸逆势高增长,凭什么?

新冠疫情下,中西部外贸逆势高增长,凭什么?

在新冠肺炎疫情的冲击下,全国进出口面临下滑形势,但是,中西部地区却表现抢眼,一些省份甚至实现了高增长。

近日,各地陆续发布前5个月的外贸数据。进出口总额增速前五位的省份集中在中西部,分别是江西、四川、湖南、安徽和河南。前三名省份更以超过20%的增速领跑。

中西部省份领跑

6月7日,海关总署公布数据显示,今年前五个月,我国货物贸易进出口总值11.54万亿元人民币,比去年同期下降4.9%,降幅和前四个月持平。不过,与全国形势有所不同的是,中西部一些省份逆势增长。

南昌海关6月12日发布,今年前5个月,江西外贸进出口1594.9亿元,比去年同期增长22.8%。进出口增速居全国第一,出口增速连续3个月保持全国第一,进口增速居全国第五。

南昌海关分析江西外贸增长的原因,主要包括各项稳外贸政策措施落地生效、电子信息产业继续强力拉动、企业为应对"断供"风险持续加大备货力度、防疫物资出口规模持续扩大等因素。

江西省社科院经济研究所所长麻智辉向第一财经表示,第一,江西疫情控制得比较好,企业复工复产比较快,疫情影响控制到最小;第二,疫情相关的卫生防疫物资大规模生产,口罩、呼吸机等新建了不少生产线;第三,则是江西去年基数比较低。

防疫物资是出口增长的一个重要因素。从全国来看,纺织品出口增长明显,1~5月,包括口罩在内的纺织品出口4066.6亿元,增长25.5%。麻智辉表示,湖北等医疗卫生产品的产业重镇的生产受到疫情影响,江西的生产能力因此得到了较大提升。

麻智辉还表示,除了前面三个直接因素以外,江西这几年大规模承接了东部沿海地区的产业转移,促进了工业经济的发展,这是外贸增长的间接因素。

除了江西,四川和湖南前5个月的增速也超过了20%,四川和湖南分别增长了22.3%和21.1%。同样位于中部地区的安徽和河南,1~5月进出口总额也分别增长了7.5%和6.1%,增速居全国第四和第五名。

不仅如此,中西部地区外贸恢复势头越来越强劲。比如,四川1~5月增速位列全国第2,比1~4月上升1位。5月当月,四川货物贸易进出口729.4亿元,增长42.7%。其中,出口437亿元,增长54.1%;进口292.4亿元,增长28.4%。

在其他省份依然可见这种复苏势头。虽然今年前5个月,重庆外贸进出口总值仍然下降0.2%,但是,降幅比1~4月收窄4个百分点,基本恢复去年同期水平。其中,今年5月,重庆外贸进出口总值523.3亿元,同比增长15.1%。

重庆海关表示,重庆外贸进出口逐步向好,主要得益于几个方面,其中就包括笔记本电脑、集成电路、汽车等出口大幅增长。前5个月,重庆笔记本电脑出口1963.4万台,增长7.6%。同期,集成电路出口货值96.6亿元,增长52.6%;汽车出口4万辆,增长24.2%。

中国国际经济交流中心首席研究员张燕生向第一财经表示,中西部地区外贸依存度普遍比较低,外贸方式中主要是具有比较优势的一般贸易,在抗击风险上比沿海有结构上的优势,受欧美疫情影响相对比较小。另外比如湖南的工程机械等往往也是国外对中国比较依赖的产品。

外贸需要高质量发展

不过,虽然增速上领先,但从总量上看,中西部地区外贸占比还比较低,以2019年为例,进出口总额最高的广东达7.14万亿元,而中西部进出口总额最大的四川仅6765.9亿元,其进出口规模位列全国第10位,可见中西部地区与东部差距十分明显。

扩大对外开放、打造内陆开放型经济仍然是中西部地区的任务。上个月发布的《中共中央 国务院关于新时代推进西部大开发形成新格局的指导意见》也明确提出,要以共建"一带一路"为引领,加大西部开放力度。

张燕生表示,逆全球化、贸易保护主义、全球供应链价值链收缩等问题将会持续,即使疫情结束之后,沿海地区外贸下降还会是一个大趋势,因此,一要扩大内需,二要加强东亚生产网络生根,三要促进外贸高质量发展。

去年发布的《中共中央 国务院关于推进贸易高质量发展的指导意见》也提出,优化国内区域布局。推动东部地区新旧动能转换,实现贸易高质量发展。支持中西部和东北地区加快发展,承接国内外产业转移,提高开放型经济比重。

另外,东盟地区已成为外贸增长的主要区域。从全国来看,前5个月,我国对东盟进出口增长,对欧盟、美国和日本进出口下降。数据显示,前五个月,东盟为我国第一大贸易伙伴,我国与东盟贸易总值1.7万亿元,增长4.2%,占我国外贸总值的14.7%。

这在中西部省份的外贸数据中也表现明显。今年前5个月,东盟稳居江西第一大贸易伙伴地位,江西对东盟进出口282.6亿元,增长22.7%;同期,江西对韩国、日本、中国香港进出口分别增长52.7%、19.3%和30.1%;对"一带一路"沿线国家合计进出口489.8亿元,增长24.7%。

张燕生表示,无论是疫情形势,还是前5个月的数据显示,中日韩为主的东亚生产网络是很重要的。目前全球生产网络在调整,美欧在需求、技术等方面会出现断链、断供,因此,需要加强东亚地区生产网络的区域化和本地化。


来源:阿里巴巴国际站


查看原文:https://www.ikjzd.com/home/124918

笨鸟:http://www.ikjzd.com/w/2713

活动树:http://www.ikjzd.com/w/1518

大森林:http://www.ikjzd.com/w/2268

新冠疫情下,中西部外贸逆势高增长,凭什么?

基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (上篇)

一、前言

回顾:认证授权方案之授权初识

从上一节中,我们在对授权系统已经有了初步的认识和使用,可以发现,asp.net core为我们提供的授权策略是一个非常强大丰富且灵活的认证授权方案,能够满足大部分的授权场景。

在ConfigureServices中配置服务:将授权服务添加到容器

 public void ConfigureServices(IServiceCollection services) { 	 services.AddAuthorization(options =>   {    options.AddPolicy("customizePermisson",     policy => policy     .Requirements     .Add(new PermissionRequirement("user")));   });   //此外,还需要在 IAuthorizationHandler 类型的范围内向 DI 系统注册新的处理程序:   services.AddScoped<IAuthorizationHandler, PermissionRequirementHandler>(); }

在Configure中注册管道:运行使用调用方法来配置Http请求管道

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {   //开启授权  app.UseAuthorization(); }

通过以上几行代码的实现,就可以进行授权了,这个时候,你可以会问,这几行代码都进行了什么操作实现授权的?

好了,继续回到上节最后说的在这一节中对授权策略的核心进行一步步的揭秘的。

二、开始

引入整体结构

授权

2.1 添加授权AddAuthorization

添加授权策略服务使用AddAuthorization方法,以便调用。

从源码可以发现,从core3.0后,由之前在core2.0中的AuthorizationServiceCollectionExtensions.cs文件中,原来的AddAuthorization的方法变为了AddAuthorizationCore方法,微软在这一块进行了封装在PolicyServiceCollectionExtensions.cs文件中,沿用了之前AddAuthorization拓展名称,不影响之前版本的使用。

我们来看看aspnetcore源码:

 public static class PolicyServiceCollectionExtensions {  public static IServiceCollection AddAuthorizationPolicyEvaluator(this IServiceCollection services)  {   if (services == null)   {    throw new ArgumentNullException(nameof(services));   }   services.TryAddSingleton<AuthorizationPolicyMarkerService>();   services.TryAddTransient<IPolicyEvaluator, PolicyEvaluator>();   services.TryAddTransient<IAuthorizationMiddlewareResultHandler, AuthorizationMiddlewareResultHandler>();   return services;  }  public static IServiceCollection AddAuthorization(this IServiceCollection services)  {   if (services == null)   {    throw new ArgumentNullException(nameof(services));   }   services.AddAuthorizationCore();   services.AddAuthorizationPolicyEvaluator();   return services;  }    public static IServiceCollection AddAuthorization(this IServiceCollection services, Action<AuthorizationOptions> configure)  {   if (services == null)   {    throw new ArgumentNullException(nameof(services));   }   services.AddAuthorizationCore(configure);   services.AddAuthorizationPolicyEvaluator();   return services;  } }
 public static class AuthorizationServiceCollectionExtensions {  public static IServiceCollection AddAuthorizationCore(this IServiceCollection services)  {   if (services == null)   {    throw new ArgumentNullException(nameof(services));   }   services.TryAdd(ServiceDescriptor.Transient<IAuthorizationService, DefaultAuthorizationService>());   services.TryAdd(ServiceDescriptor.Transient<IAuthorizationPolicyProvider, DefaultAuthorizationPolicyProvider>());   services.TryAdd(ServiceDescriptor.Transient<IAuthorizationHandlerProvider, DefaultAuthorizationHandlerProvider>());   services.TryAdd(ServiceDescriptor.Transient<IAuthorizationEvaluator, DefaultAuthorizationEvaluator>());   		  services.TryAdd(ServiceDescriptor.Transient<IAuthorizationHandlerContextFactory, DefaultAuthorizationHandlerContextFactory>());   services.TryAddEnumerable(ServiceDescriptor.Transient<IAuthorizationHandler, PassThroughAuthorizationHandler>());   return services;  }  public static IServiceCollection AddAuthorizationCore(this IServiceCollection services, Action<AuthorizationOptions> configure)  {   if (services == null)   {    throw new ArgumentNullException(nameof(services));   }   services.Configure(configure);   return services.AddAuthorizationCore();  } }

由上可知,在调用AddAuthorization方法进行授权配置的时候,需要使用到AuthorizationOptions委托方式传参。

所以我们再来看看下面这一行代码,通过AddPolicy实现添加策略方式。

 options.AddPolicy("customizePermisson",policy => policy.Requirements.Add(new PermissionRequirement("user")));

查看源码发现是引用了AuthorizationOptions对象。

2.2 配置选项AuthorizationOptions

授权选项实现添加和授权配置,提供授权服务的配置。

源码如下:

 public class AuthorizationOptions {  private Dictionary<string, AuthorizationPolicy> PolicyMap { get; } = new Dictionary<string, AuthorizationPolicy>(StringComparer.OrdinalIgnoreCase);    public bool InvokeHandlersAfterFailure { get; set; } = true;    public AuthorizationPolicy DefaultPolicy { get; set; } = new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build();    public AuthorizationPolicy? FallbackPolicy { get; set; }  public void AddPolicy(string name, AuthorizationPolicy policy)  {   if (name == null)   {    throw new ArgumentNullException(nameof(name));   }   if (policy == null)   {    throw new ArgumentNullException(nameof(policy));   }   PolicyMap[name] = policy;  }  public void AddPolicy(string name, Action<AuthorizationPolicyBuilder> configurePolicy)  {   if (name == null)   {    throw new ArgumentNullException(nameof(name));   }   if (configurePolicy == null)   {    throw new ArgumentNullException(nameof(configurePolicy));   }   var policyBuilder = new AuthorizationPolicyBuilder();   configurePolicy(policyBuilder);   PolicyMap[name] = policyBuilder.Build();  }    public AuthorizationPolicy GetPolicy(string name)  {   if (name == null)   {    throw new ArgumentNullException(nameof(name));   }   if (PolicyMap.TryGetValue(name, out var value))   {    return value;   }   return null;  } }

定义一个字典

private Dictionary<string, AuthorizationPolicy> PolicyMap { get; } = new Dictionary<string, AuthorizationPolicy>(StringComparer.OrdinalIgnoreCase);

目的在于将定义的授权策略方式都保存在这个声明的PolicyMap当中,而其中AddPolicy方法是将配置的策略添加到字典中。

public void AddPolicy(string name, AuthorizationPolicy policy);
public void AddPolicy(string name, Action<AuthorizationPolicyBuilder> configurePolicy);

而这方法中涉及到两种不同的传参对象AuthorizationPolicyAuthorizationPolicyBuilder

2.3 授权策略 AuthorizationPolicy

表示授权要求和方案的集合。具体源码如下:

public class AuthorizationPolicy{ public AuthorizationPolicy(IEnumerable<IAuthorizationRequirement> requirements, IEnumerable<string> authenticationSchemes) {  if (requirements == null)  {   throw new ArgumentNullException(nameof(requirements));  }  if (authenticationSchemes == null)  {   throw new ArgumentNullException(nameof(authenticationSchemes));  }  if (requirements.Count() == 0)  {   throw new InvalidOperationException(Resources.Exception_AuthorizationPolicyEmpty);  }  Requirements = new List<IAuthorizationRequirement>(requirements).AsReadOnly();  AuthenticationSchemes = new List<string>(authenticationSchemes).AsReadOnly(); }  public IReadOnlyList<IAuthorizationRequirement> Requirements { get; }  public IReadOnlyList<string> AuthenticationSchemes { get; }  public static AuthorizationPolicy Combine(params AuthorizationPolicy[] policies) {  if (policies == null)  {   throw new ArgumentNullException(nameof(policies));  }  return Combine((IEnumerable<AuthorizationPolicy>)policies); }  public static AuthorizationPolicy Combine(IEnumerable<AuthorizationPolicy> policies) {  if (policies == null)  {   throw new ArgumentNullException(nameof(policies));  }  var builder = new AuthorizationPolicyBuilder();  foreach (var policy in policies)  {   builder.Combine(policy);  }  return builder.Build(); }  public static async Task<AuthorizationPolicy> CombineAsync(IAuthorizationPolicyProvider policyProvider, IEnumerable<IAuthorizeData> authorizeData) {  if (policyProvider == null)  {   throw new ArgumentNullException(nameof(policyProvider));  }  if (authorizeData == null)  {   throw new ArgumentNullException(nameof(authorizeData));  }  // Avoid allocating enumerator if the data is known to be empty  var skipEnumeratingData = false;  if (authorizeData is IList<IAuthorizeData> dataList)  {   skipEnumeratingData = dataList.Count == 0;  }  AuthorizationPolicyBuilder policyBuilder = null;  if (!skipEnumeratingData)  {   foreach (var authorizeDatum in authorizeData)   {    if (policyBuilder == null)    {     policyBuilder = new AuthorizationPolicyBuilder();    }    var useDefaultPolicy = true;    if (!string.IsNullOrWhiteSpace(authorizeDatum.Policy))    {     var policy = await policyProvider.GetPolicyAsync(authorizeDatum.Policy);     if (policy == null)     {      throw new InvalidOperationException(Resources.FormatException_AuthorizationPolicyNotFound(authorizeDatum.Policy));     }     policyBuilder.Combine(policy);     useDefaultPolicy = false;    }    var rolesSplit = authorizeDatum.Roles?.Split(',');    if (rolesSplit != null && rolesSplit.Any())    {     var trimmedRolesSplit = rolesSplit.Where(r => !string.IsNullOrWhiteSpace(r)).Select(r => r.Trim());     policyBuilder.RequireRole(trimmedRolesSplit);     useDefaultPolicy = false;    }    var authTypesSplit = authorizeDatum.AuthenticationSchemes?.Split(',');    if (authTypesSplit != null && authTypesSplit.Any())    {     foreach (var authType in authTypesSplit)     {      if (!string.IsNullOrWhiteSpace(authType))      {       policyBuilder.AuthenticationSchemes.Add(authType.Trim());      }     }    }    if (useDefaultPolicy)    {     policyBuilder.Combine(await policyProvider.GetDefaultPolicyAsync());    }   }  }  // If we have no policy by now, use the fallback policy if we have one  if (policyBuilder == null)  {   var fallbackPolicy = await policyProvider.GetFallbackPolicyAsync();   if (fallbackPolicy != null)   {    return fallbackPolicy;   }  }  return policyBuilder?.Build(); }}

我们从源码中可以发现,Authorization 对象 Combine方法目的在于将授权策略进行合并,同时调用了AuthorizationPolicyBuilder对象中Combine方法,对授权方案或者授权策略进行合并。再来看看AuthorizationPolicy对象中的CombineAsync方法,这里的参数用到了IAuthorizeData,同时这个方法的过程是将可能基于角色,基于方案或者基于策略都合并转换为是授权策略的方式,也是通过调用AuthorizationPolicyBuilder对象来实现合并。 所以可以看得出AuthorizationPolicyBuilder提供了一些创建AuthorizationPolicy的方法。

这个时候,我们可以发现,其实之前说的基于角色、基于方案的授权方式本质上来说都是基于策略授权。

2.4 构建策略AuthorizationPolicyBuilder

除了上面说到使用AuthorizationPolicy对象之外,我们还可以用AuthorizationPolicyBuilder对象以Buider来创建AuthorizationPolicy对象,将多个AuthorizationPolicy对象提供的数组进行合并,所以AuthorizationPolicyBuilder提供的Combine方法的使用,为AuthorizationPolicy授权构建提供了许多便捷的方式。

public class AuthorizationPolicyBuilder{  public AuthorizationPolicyBuilder(params string[] authenticationSchemes) {  AddAuthenticationSchemes(authenticationSchemes); } public AuthorizationPolicyBuilder(AuthorizationPolicy policy) {  Combine(policy); } public IList<IAuthorizationRequirement> Requirements { get; set; } = new List<IAuthorizationRequirement>();  public IList<string> AuthenticationSchemes { get; set; } = new List<string>(); public AuthorizationPolicyBuilder AddAuthenticationSchemes(params string[] schemes) {  foreach (var authType in schemes)  {   AuthenticationSchemes.Add(authType);  }  return this; }  public AuthorizationPolicyBuilder AddRequirements(params IAuthorizationRequirement[] requirements) {  foreach (var req in requirements)  {   Requirements.Add(req);  }  return this; } public AuthorizationPolicyBuilder Combine(AuthorizationPolicy policy) {  if (policy == null)  {   throw new ArgumentNullException(nameof(policy));  }  AddAuthenticationSchemes(policy.AuthenticationSchemes.ToArray());  AddRequirements(policy.Requirements.ToArray());  return this; }  public AuthorizationPolicyBuilder RequireClaim(string claimType, params string[] allowedValues) {  if (claimType == null)  {   throw new ArgumentNullException(nameof(claimType));  }  return RequireClaim(claimType, (IEnumerable<string>)allowedValues); }  public AuthorizationPolicyBuilder RequireClaim(string claimType, IEnumerable<string> allowedValues) {  if (claimType == null)  {   throw new ArgumentNullException(nameof(claimType));  }  Requirements.Add(new ClaimsAuthorizationRequirement(claimType, allowedValues));  return this; }  public AuthorizationPolicyBuilder RequireClaim(string claimType) {  if (claimType == null)  {   throw new ArgumentNullException(nameof(claimType));  }  Requirements.Add(new ClaimsAuthorizationRequirement(claimType, allowedValues: null));  return this; }   public AuthorizationPolicyBuilder RequireRole(params string[] roles) {  if (roles == null)  {   throw new ArgumentNullException(nameof(roles));  }  return RequireRole((IEnumerable<string>)roles); }  public AuthorizationPolicyBuilder RequireRole(IEnumerable<string> roles) {  if (roles == null)  {   throw new ArgumentNullException(nameof(roles));  }  Requirements.Add(new RolesAuthorizationRequirement(roles));  return this; }  public AuthorizationPolicyBuilder RequireUserName(string userName) {  if (userName == null)  {   throw new ArgumentNullException(nameof(userName));  }  Requirements.Add(new NameAuthorizationRequirement(userName));  return this; } public AuthorizationPolicyBuilder RequireAuthenticatedUser() {  Requirements.Add(new DenyAnonymousAuthorizationRequirement());  return this; } public AuthorizationPolicyBuilder RequireAssertion(Func<AuthorizationHandlerContext, bool> handler) {  if (handler == null)  {   throw new ArgumentNullException(nameof(handler));  }  Requirements.Add(new AssertionRequirement(handler));  return this; } public AuthorizationPolicyBuilder RequireAssertion(Func<AuthorizationHandlerContext, Task<bool>> handler) {  if (handler == null)  {   throw new ArgumentNullException(nameof(handler));  }  Requirements.Add(new AssertionRequirement(handler));  return this; }  public AuthorizationPolicy Build() {  return new AuthorizationPolicy(Requirements, AuthenticationSchemes.Distinct()); }}

由上面多出出现的IAuthorizationRequirement对象可以发现,授权要求Requirement属性是策略的核心方案,每一种Requirement都代表一种授权方式。同时IAuthorizationPolicyBuilder为这些预定义的方案创建了它们对应的使用方式并将其添加到Requirements集合中。

2.5 授权要求IAuthorizationRequirement

 public interface IAuthorizationRequirement { }

接口并没有任何实现成员,因为授权要求是具有不同的表现形式的,所有才没有具体的实现成员。授权要求目的在于检验某个当前用户是否具有相应的要求, 所以大部分IAuthorizationRequirement接口的实现类都继承了IAuthorizationHandler 接口来提供HandleAsync方法来实现对应的授权检验。

下面介绍asp.net core框架里面默认实现的几种IAuthorizationRequirement实现类型。

2.5.1 DenyAnonymousAuthorizationRequirement

阻止匿名用户操作,言外之意就是拒绝未被验证的匿名用户访问资源。

源码如下:

public class DenyAnonymousAuthorizationRequirement : AuthorizationHandler<DenyAnonymousAuthorizationRequirement>, IAuthorizationRequirement{ protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, DenyAnonymousAuthorizationRequirement requirement) {  var user = context.User;  var userIsAnonymous =   user?.Identity == null ||   !user.Identities.Any(i => i.IsAuthenticated);  if (!userIsAnonymous)  {   context.Succeed(requirement);  }  return Task.CompletedTask; }}

通过用户的CliamPrincipal对象身份是否为空或是否是一个经过认证的用户身份,以此来确定当前请求的用户是否来源于匿名用户。

2.5.2 NameAuthorizationRequirement

指定用户名的授权方式,判断当前用户与某个指定的用户是否匹配以此来授权访问资源。

源码如下:

public class NameAuthorizationRequirement : AuthorizationHandler<NameAuthorizationRequirement>, IAuthorizationRequirement{ public NameAuthorizationRequirement(string requiredName) {  if (requiredName == null)  {   throw new ArgumentNullException(nameof(requiredName));  }  RequiredName = requiredName; } public string RequiredName { get; } protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, NameAuthorizationRequirement requirement) {  if (context.User != null)  {   if (context.User.Identities.Any(i => string.Equals(i.Name, requirement.RequiredName)))   {    context.Succeed(requirement);   }  }  return Task.CompletedTask; }}

其中RequiredName属性为授权用户,通过HandleRequirementAsync方法进行校验当前用户的ClaimPrincipal对象的身份与RequiredName是否具有匹配。

这里的判断用的是 string.Equals() 说明这里比较的用户名是区别大小写的。

2.5.3 ClaimsAuthorizationRequirement

基于指定声明类型的授权策略,检验当前用户是否声明类型和候选值。

源码如下:

public class ClaimsAuthorizationRequirement : AuthorizationHandler<ClaimsAuthorizationRequirement>, IAuthorizationRequirement {  public ClaimsAuthorizationRequirement(string claimType, IEnumerable<string> allowedValues)  {   if (claimType == null)   {    throw new ArgumentNullException(nameof(claimType));   }   ClaimType = claimType;   AllowedValues = allowedValues;  }  public string ClaimType { get; }  public IEnumerable<string> AllowedValues { get; }  protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, ClaimsAuthorizationRequirement requirement)  {   if (context.User != null)   {    var found = false;    if (requirement.AllowedValues == null || !requirement.AllowedValues.Any())    {     found = context.User.Claims.Any(c => string.Equals(c.Type, requirement.ClaimType, StringComparison.OrdinalIgnoreCase));    }    else    {     found = context.User.Claims.Any(c => string.Equals(c.Type, requirement.ClaimType, StringComparison.OrdinalIgnoreCase)              && requirement.AllowedValues.Contains(c.Value, StringComparer.Ordinal));    }    if (found)    {     context.Succeed(requirement);    }   }   return Task.CompletedTask;  } }

由上我们可以看的出,ClaimTypeAllowedValues这两个属性在构造函数中被初始化,分别用来表示当前声明的声明类型和默认允许值。通过HandleRequirementAsync来授权检验是否完成通过。

2.5.4 RolesAuthorizationRequirement

基于角色的授权策略,检验当前用户是否拥有约定匹配的角色,如果拥有,则可以访问对应的资源。

源码如下:

public class RolesAuthorizationRequirement : AuthorizationHandler<RolesAuthorizationRequirement>, IAuthorizationRequirement{ public RolesAuthorizationRequirement(IEnumerable<string> allowedRoles) {  if (allowedRoles == null)  {   throw new ArgumentNullException(nameof(allowedRoles));  }  if (allowedRoles.Count() == 0)  {   throw new InvalidOperationException(Resources.Exception_RoleRequirementEmpty);  }  AllowedRoles = allowedRoles; } public IEnumerable<string> AllowedRoles { get; } protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, RolesAuthorizationRequirement requirement) {  if (context.User != null)  {   bool found = false;   if (requirement.AllowedRoles == null || !requirement.AllowedRoles.Any())   {    // Review: What do we want to do here? No roles requested is auto success?   }   else   {    found = requirement.AllowedRoles.Any(r => context.User.IsInRole(r));   }   if (found)   {    context.Succeed(requirement);   }  }  return Task.CompletedTask; }}

其中AllowedRoles表示目标角色列表的集合。通过HandleRequirementAsync实现授权检验,调用IsInRole方法来判断当前用户的ClaimsPrincipal对象是否有指定的角色。

2.5.5 AssertionRequirement

基于AuthorizationHandlerContext上下文断言的形式来声明授权。

源码如下:

public class AssertionRequirement : IAuthorizationHandler, IAuthorizationRequirement{ public Func<AuthorizationHandlerContext, Task<bool>> Handler { get; } public AssertionRequirement(Func<AuthorizationHandlerContext, bool> handler) {  if (handler == null)  {   throw new ArgumentNullException(nameof(handler));  }  Handler = context => Task.FromResult(handler(context)); } public AssertionRequirement(Func<AuthorizationHandlerContext, Task<bool>> handler) {  if (handler == null)  {   throw new ArgumentNullException(nameof(handler));  }  Handler = handler; } public async Task HandleAsync(AuthorizationHandlerContext context) {  if (await Handler(context))  {   context.Succeed(this);  } }}

通过类型为Func<AuthorizationHandlerContext, Task<bool>>的委托来表示该断言,利用它来授权验证。在HandleAsync检验方法中,直接调用这个委托对象来完成判断。

2.5.6 OperationAuthorizationRequirement

基于预定义操作的授权策略。

源码如下:

public class OperationAuthorizationRequirement : IAuthorizationRequirement{ public string Name { get; set; }}

由上可知,只是包含一个操作名字的Name属性,目的在于将授权的目标对象映射到一个预定义的操作上。

三、用例

出现的IAuthorizationRequirement对象可以发现,授权要求Requirement属性是策略的核心方案,每一中Requirement都代表一种授权方式。

在上文我们通过构建策略AuthorizationPolicyBuilder对象的源码可以发现,为我们提供了多个方法由预定义的IAuthorizationRequirement类型来创建并将其添加到Requirements集合中。

3.1 应用

实例应用如下:在ConfigureServices中配置服务中

  public void ConfigureServices(IServiceCollection services)  {   services.AddControllers();   var combindPolicy = new AuthorizationPolicyBuilder().RequireClaim("role").Build();   services.AddAuthorization(options =>   {    //DenyAnonymousAuthorizationRequirement    options.AddPolicy("DenyAnonyUser", policy => policy.RequireAuthenticatedUser());    //NameAuthorizationRequirement    options.AddPolicy("NameAuth", policy => policy.RequireUserName("艾三元"));    //ClaimsAuthorizationRequirement    options.AddPolicy("ClaimsAuth", policy => policy.RequireClaim("role","admin"));    //RolesAuthorizationRequirement    options.AddPolicy("RolesAuth", policy => policy.RequireRole("admin","user"));    //AssertionRequirement    options.AddPolicy("AssertAuth", policy => policy.RequireAssertion(c=>c.User.HasClaim(o=>o.Type=="role")));    //同样可可用直接调用Combind方法,策略AuthorizationPolicy    options.AddPolicy("CombindAuth", policy => policy.Combine(combindPolicy));   });}

以上,分别实现了框架中默认实现的几种IAuthorizationRequirement实现类型在实际中的应用,通过不同授权要求实现的策略方式,同时也可以将上面多种方式合并成一个对象,进行调用使用。

3.2 拓展

当然了,除了自带了这几种默认实现方式之外,我们也可以通过自定义Requirement来满足我们的需求。

这个在上一节初识授权的时候,已经提到了自定义授权这一块,所以在这里再看一次。

定义一个权限策略PermissionRequirement,这个策略并包含一些属性。

public class PermissionRequirement: IAuthorizationRequirement{ public string _permissionName { get; } public PermissionRequirement(string PermissionName) {  _permissionName = PermissionName; }}

再定义一个策略处理类

public class PermissionRequirementHandler : AuthorizationHandler<PermissionRequirement>{ protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement) {  var role = context.User.FindFirst(c => c.Type == ClaimTypes.Role);  if (role != null)  {   var roleValue = role.Value;   if (roleValue==requirement._permissionName)   {    context.Succeed(requirement);   }  }  return Task.CompletedTask;

配置使用

 public void ConfigureServices(IServiceCollection services) {  services.AddControllers();  //基于自定义策略授权  services.AddAuthorization(options =>  {   options.AddPolicy("customizePermisson",    policy => policy    .Requirements    .Add(new PermissionRequirement("admin")));  });  //此外,还需要在 IAuthorizationHandler 类型的范围内向 DI 系统注册新的处理程序:  services.AddScoped<IAuthorizationHandler, PermissionRequirementHandler>();  // 如前所述,要求可包含多个处理程序。如果为授权层的同一要求向 DI 系统注册多个处理程序,有一个成功就足够了。 }

特别说明

上述使用的处理程序是一对一的关系,当声明要求满足条件的时候,则任务授权成功, 授权成功后, context.Succeed 将通过满足要求作为其唯一参数调用。

但是授权策略中也包含一对多的要求关系,它们属于 & 的关系,只用全部验证通过,才能最终授权成功。但是在有些场景下,我们可能希望一个授权策略可以适用多种情况,比如,我们进入公司时需要出示员工卡才可以被授权进入,但是如果我们忘了带员工卡,可以去申请一个临时卡,同样可以授权成功。

这里贴一个官方文档的写法:public class BuildingEntryRequirement : IAuthorizationRequirement{}public class BadgeEntryHandler : AuthorizationHandler<BuildingEntryRequirement>{ protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,             BuildingEntryRequirement requirement) {  if (context.User.HasClaim(c => c.Type == "BadgeId" &&          c.Issuer == "  {   context.Succeed(requirement);  }  //TODO: Use the following if targeting a version of  //.NET Framework older than 4.6:  //  return Task.FromResult(0);  return Task.CompletedTask; }}public class TemporaryStickerHandler : AuthorizationHandler<BuildingEntryRequirement>{ protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,             BuildingEntryRequirement requirement) {  if (context.User.HasClaim(c => c.Type == "TemporaryBadgeId" &&          c.Issuer == "https://microsoftsecurity"))  {   // We'd also check the expiration date on the sticker.   context.Succeed(requirement);  }  //TODO: Use the following if targeting a version of  //.NET Framework older than 4.6:  //  return Task.FromResult(0);  return Task.CompletedTask; }}

我们定义了两个Handler,但是想让它们得到执行,还需要将其注册到DI系统中:

services.AddSingleton<IAuthorizationHandler, BadgeEntryHandler>();services.AddSingleton<IAuthorizationHandler, TemporaryStickerHandler>();

确保两个处理程序都已注册。 如果某个处理程序在某一策略评估后使用context.succeed()来成功 BuildingEntryRequirement ,则策略评估将成功。但是当我们调用context.Fail()方法后会将授权结构设置失败,那样的话,最后的结果都是会授权失败的。所以正常情况下。我们都是只设置标记context.succeed()

四、说明

这里对上文源码中出现的一些声明方法进行说明。

4.1 IAuthorizeData

使用 IAuthorizeDate 接口方法。定义授权规则应用于资源所需的数据集。

public interface IAuthorizeData{ string Policy { get; set; } string Roles { get; set; } string AuthenticationSchemes { get; set; }}

Policy:获取或设置确定对资源的访问的策略名称。

Roles: 获取或设置以逗号分隔的允许访问资源的角色列表。

AuthenticationSchemes: 获取或以设置以逗号分隔的方案列表,从中可以构造用户信息。

所以IAuthorizeData中定义的policyrolesAuthenticationSchemes三个分别代表着授权系统中的三种授权方式。

具体的使用在后续讲解授权的执行流程中会进行详细介绍。

五、后续

上面主要讲解了授权在配置方面的源码,本来打算继续接着往下写的,但是考虑到整体篇幅可能会太长了,不便于阅读。

所以授权揭秘的上篇内容就说到这里了,在后续的文章中,会继续深入了解授权内部机制的奥秘以及是如何实现执行授权流程的。

六、总结

  1. 从添加授权配置开始,我们引入了需要的授权配置选项,而不同的授权要求构建不同的策略方式,从而实现一种自己满意的授权需求配置要求。
  2. 如果有不对的或不理解的地方,希望大家可以多多指正,提出问题,一起讨论,不断学习,共同进步。
  3. 参考的文档 和官方源码
基于.NetCore3.1系列 —— 认证授权方案之授权揭秘 (上篇)预售c2cdojo国货出海!中国跨境电商渗透率达37%居全球最高!越来越多人在二三线城市开始做跨境电商,机会在哪里?亚马逊官方商品详情页面优化服务LBA珠海一日游攻略大全珠海一日游攻略大全珠海一日游攻略大全

C#一个IM系统简单总结

项目背景:

     工作之余兼职一家公司(方向是工业4.0)给做IM系统,主要功能包括:文字、 图片、文件传输、远程协助、视频语音等等。

这些功能都是基于群会话, 比如工厂操作工人遇到问题,请求远程专家,这个初级专家不能解决问题,会邀请一个高级专家进来解决。

开发过程中主要遇到的问题是视频和语音这一块,像其他的文字,图片,文件传输等等之前做socket的时候就接触过,基本不是问题,要注意的是Socket粘包和丢包,远程协助使用开源免费的C#版本VNC 。

视频和语音觉得有些难 。一、是之前没有接触过,二、要同时支持 安卓和苹果手机。


为了用C#解决这个问题真是费劲心思,如果是其他语言也许不会这么折腾,简单记录一下。

1、网上查找资料找到一个GGTalk

   这个怎么评价呢,仅仅是做一些临时项目赚点外快,可以使用一下,做成自己的产品或者想学习一下底层不推荐。

   GGTalk虽然是开源但是他里面用到的视频语音是第三方的傲瑞科技,不开源而且是收费版本。

   如果再研究一下傲瑞科技的解码编码,用到的是国外开源的。

2、腾讯实时音视频 TRTC 

   这个和第一个比明显有优势,毕竟是大公司的出品,而且已经在很多地方运行,但是实际情况是客户现场不一定能连接外网,测试的时候个别华为手机兼容不是很好。并且这个也是收费软件。

3、FFmpeg

    FFmpeg非常强大的功能包括视频采集、视频格式转换、视频抓图、视频加水印,转换数字音频、视频,并能将其转化为流的开源项目。C语言开发,免费开源采用LGPL或GPL许可证多媒体视频处理工具。

强烈推荐FFmpeg

1、免费开源  

2、跨平台

3、功能强大 

4、性能优异 

5 很多视频处理软件在使用 

优点实在太多,缺点就是需要学习成本。

特别是C#开发人员一开始使用FFmpeg有不少难度,一般用指针比较少,而FFmpeg里面会常用。

下一篇文章简单总结一下C#与FFmpeg的使用。


现在IM在市场上已经很成熟,为什么还要在搞一个呢?

这个问题刚刚开始我也这样想,主要目的是和主框架集成。

比如专家发送一个特殊的格式连接[参数一,参数二、参数三],设备端打开这个连接,就直接跳转到框架中的功能。

再比如 操作工人在视频上各种画标记,在专家端会突出显示。

所以市场上的拿来就使用不太现实,比如上面2个需求至少UI层需要修改,既然要修改那就 趁这个机会就学习一下FFmpeg的API,

因为功能太强大了,比如后期遇到视频美化,视频分割合并、变音,这个FFmpeg都能很好处理。

C#一个IM系统简单总结执御mail.ru飞书互动中秋国庆小长假到来,亚马逊休假模式终极设置指南 速卖通新手如何快速出单?速卖通新手运营有哪些要点?Oberlo平台将被停运,独立站兴起之路要结束了吗?珠海一棵树拓展训练珠海一日游攻略大全珠海一日游攻略大全

下午1点,国安传来好消息:当家球星归来,5大外援有望下周到齐!_比埃拉

原标题:下午1点,国安传来好消息:当家球星归来,5大外援有望下周到齐!

北京时间7月5日13点,国安传来好消息,当家球星比埃拉回来了!接下来,比埃拉将在两周后与球队汇合。核心外援准时回归,对于国安来说是好消息。上赛季,国安拿到中超亚军,新赛季,国安希望更进一步!

上赛季,国安距离中超冠军仅一步之遥,他们豪取开局10连胜,刷新了中国足球顶级联赛开局最长连胜纪录,这一纪录此前的保持者是获得开局六连胜的大连万达和上海上港。最终,国安拿到单赛季70分,创造队史纪录!此外,国安30轮比赛赢下23场胜利,同样是单赛季胜场纪录!可惜,国安距离冠军就差一点。

新赛季,国安的目标就是中超冠军!本来,中超在2月份开赛,但一直延期,现在确定在7月25日开赛。不过,国安外援的归队情况一直让人担心,现在,好消息传来,当家球星比埃拉回来了!据悉,比埃拉乘坐的航班刚刚抵达上海,西班牙球星14天后就将归队报到。奥古斯托、费尔南多和金玟哉也有望在下周归来。此外,巴坎布和热内西奥已经回来了!

也就是说,在中超开赛前,国安外援、主帅能够全部到齐,尤其是比埃拉,对于国安至关重要,上赛季,比埃拉如果没有受伤,中超冠军最后属于谁,真的不好说。本赛季,只要比埃拉保持健康状态,国安将是争冠热门。

此外,国安在热身赛中状态不俗,取得3连胜。6月7日,北京国安和天津泰达进行了一场热身赛,最终,国安5-0击败泰达!6月29日,国安还与北体大打了一场教学赛,最终4-3赢球!昨天,国安1-0击败杭州绿城,阿兰进球了!

等到国安外援全部归来,球队将开启新赛季,向冠军发起冲击!返回搜狐,查看更多

责任编辑:

下午1点,国安传来好消息:当家球星归来,5大外援有望下周到齐!_比埃拉家得宝新单法瑞儿亚马逊汽配老兵道通科技即将登陆科创板USHOPAL做过该市场的亚马逊卖家,最后都沦为了背锅侠!去歌诗达邮轮靠谱的旅行团歌诗达邮轮旅游需要多少钱歌诗达邮轮旅游需要多少钱

注意!沙特上调1449项产品进口关税

注意!沙特上调1449项产品进口关税

上月,沙特海关决定自2020年6月10日起提高部分商品的进口关税,提高进口关税的商品清单涉及2600多个税则号,涉及较多的产品有家电、汽车行业等机电产品,以及钢材等。但该通知发出后又被暂缓执行。

根据最新消息,沙特关务署宣布自6月20日起上调部分产品的进口关税,受影响的产品由此前通知中的2600多项减少至1449项,关税调整幅度在0.5%-15%之间。

6月20日前离开出口国港口的产品不适用上调后的税率。外媒报道如下:

沙特提高进口关税以弥补油价损失

政策调整后,沙特阿拉伯进口成本上涨

沙特调涨VAT及进口关税,影响投资

本次调涨涉及的产品包括:

动植物产品:224项产品;

化学品及橡塑胶产品:50项产品;

皮革:27项产品;

纸类及橡胶类产品:38项产品;

纺织及鞋帽类产品:91项产品;

矿物、瓷砖、金属及钢铁类产品:878项产品;

机械、电器及汽车零配件产品:115项产品;

仪器、家具、玩具、艺术品及杂项制品:26项产品。

部分清单截图

此外值得注意的是,从7月1日起,沙特增值税(VAT)直接翻了三倍,由5%上涨至15%,并直接对电商征收增值税。因为沙特的政府财政收入已经全面告急。(阿联酋VAT不变,仍然是5%)

2020年第一季度,沙特阿拉伯的政府收入仅为1920亿里亚尔,同比下降22%;石油收入同比下降了24%,至1290亿里亚尔,非石油收入也暴跌了17%,2020年二季度负面因素对沙特经济的影响可能更大。

但增值税上涨之后,沙特消费者将受到巨大冲击,生活成本水涨船高,购买力将同步下降。

跨境电商卖家注意

据中国驻沙特大使馆经商处官网消息,沙特多次进口关税的调整,因油价下跌和新冠疫情影响而受到巨大冲击。沙特当地经贸人员认为政府提高进口关税税率背后的原因是多方面的,其中就包括保护国内产业和增加国家财政收入等。

面对新冠疫情危机和其引发的全球性经济衰退,大多数国家都推出了扩张性财政刺激计划,以提振国内经济活动。

沙特阿拉伯公布了一项计划,将其增值税增加三倍,从7月1日开始,将增值税(VAT)的税率从5%提高到15%,以增加额外财政收入。

高货值订单(超过1000里亚尔,约合266.4美金)在沙特阿拉伯清关时,将产生进口增值税和关税,进口增值税(VAT)税金金额按照买家实际支付金额x15%计算,关税由海关根据不同商品的应税税率计算。

沙特国家统计总局6月30日公布的统计数据显示,沙特第一季度国民生产总值较去年同期下降1%。数据显示,一季度非石油行业的增长率为1.6%,但石油部门的增长率为-4.6%。

IMF预计沙特经济今年萎缩6.8%

路透社6月24日报道,国际货币基金组织(IMF)表示,沙特今年的经济将萎缩6.8%,大幅高于其在4月份估计的2.3%的萎缩幅度,原因是低油价和新冠病毒流行对该国造成了沉重打击。

国际货币基金组织表示,由于许多新兴国家和发展中国家的新冠病毒危机加剧,它现在预计2020年全球将出现更大幅度的衰退,2021年复苏步伐也更为缓慢。

国际货币基金组织在提及几个产油国时说:"疫情造成的破坏,以及油价急剧下跌后石油出口国的可支配收入大大减少,意味着急剧的衰退。"在全球最大的石油出口国和海湾地区最大的经济体沙特,防疫措施削弱了非石油经济领域的新兴行业,如旅游业和娱乐业,而较低的油价也削减了国家收入。

该机构预计,沙特今年的国内生产总值(GDP)将萎缩6.8%,但2021年将回升至3.1%。

为应对危机,沙特在国际债务市场筹集了70亿美元,将增值税增至三倍,并暂停公务员的生活津贴。

野村资产管理(Nomura Asset Management)中东地区首席执行官塔雷克·法德拉拉(TarekFadlallah)在本周的一份报告中表示:"沙特采取收缩性财政政策,正承受着巨大的风险,明年可能是残酷的。"

沙特启动40亿美元旅游业发展基金

沙特公报6月22日报道,沙特周日宣布成立旅游业发展基金,将与私营和投资银行合作,支持私营部门发展并刺激行业投资。该基金将推出一系列股票和债券投资工具,初期资本为40亿美元(合150亿里亚尔),并已与私人银行签署450亿美元(合1650亿里亚尔)的谅解备忘录。旅游部长艾哈迈德·哈特卜表示,旅游业正面临前所未有的全球挑战,此时启动该基金,证明了投资者和私营部门对沙特旅游业前景充满信心。

旅游发展基金的启动是国家旅游战略第一阶段的一部分,该战略聚焦于到2022年开发和提升七大目的地的38个景点。基金支持项目将包括领先的国际运营商和投资者实施的旗舰综合体和酒店开发项目,目的是增强沙特旅游产品吸引力,支持国内国际旅游业增长,吸引外国直接投资并创造就业机会。

自2019年沙特开始向国际旅游开放以来,旅游业已成为增长潜力最大的行业之一,预计将为GDP贡献超过10%(如今为3%),到2030年将创造超过100万个新就业机会。下一步,沙特旅游业发展基金将与旅游部、沙特旅游机构共同合作,开发和完善沙特的旅游生态系统。

建议近期出货沙特的外贸人,迅速与买家取得联系,确认产品的关税是否被上调,以免清关时带来不必要的麻烦。此外跨境电商也请注意VAT的变化!(来源:海运网)

以上内容属作者个人观点,不代表立场!如有侵权,请联系我们。

注意!沙特上调1449项产品进口关税跨境通电子商务旺店通中国邮政邮乐网干货丨常被忽略的运营知识点你知道吗?运营干货:亚马逊运营的数学公式详解!亚马逊旺季备货的注意事项!<清远一日游>黄腾峡漂流+水上乐园纯玩一日游报价<清远一日游>黄腾峡漂流+水上乐园纯玩一日游报价A-东北最后特价团——沈阳万达小镇长白山北坡长春五天双飞游 (全程五星酒店)

重磅!美墨加协定正式生效!“排他性”将对全球贸易及中国产生巨大影响!

重磅!美墨加协定正式生效!"排他性"将对全球贸易及中国产生巨大影响!

美国政府将美墨加协定标榜为"21世纪最高标准的贸易协定"。

1.png

1、美墨加协定简介

《美墨加三国协议》,简称USMCA,是美国、加拿大和墨西哥达成三方贸易协议。

美墨加协定的前身是于1994年1月生效的北美自由贸易协定。自美国总统特朗普上任以来,多次批评北美自贸协定造成美国制造业岗位流失,要求重新谈判。经过一年多马拉松式的谈判后,美墨加三国于2018年9月就更新北美自贸协定达成一致,新协定更名为美墨加协定。今年1月,美国国会最终批准修订后的美墨加协定,并递交特朗普签署成法。

2.png

2018年9月30日,美国和加拿大达成的协议将把北美自贸协定作为三方贸易协议保留,三国首脑将在两个月内签署新协议。

2018年10月1日,加拿大政府网站公布的加拿大外长弗里兰和美国贸易代表莱特希泽的联合声明称,美国、加拿大和墨西哥达成三方贸易协议,该协议将被称为"USMCA"(美墨加三国协议)。

2018年11月30日,美国、墨西哥、加拿大三国领导人在阿根廷首都布宜诺斯艾利斯签署《美国—墨西哥—加拿大协定》,替代《北美自由贸易协定》。

2019年12月19日,美国国会众议院投票通过修订后的"美国-墨西哥-加拿大协定"(简称美墨加协定),为这份自由贸易协定的最终生效扫除了主要障碍。

2020年1月29日,美国总统唐纳德·特朗普签署修订后的"美国—墨西哥—加拿大协定"(简称美墨加协定)。

2、新协定的变化

简单来说,美墨加协定是"北美自贸协定2.0",保留了原协定中的大部分内容,但在几个方面有所变化。

其一,产业布局转变。

美墨加协定在汽车、乳制品等条款上有较大更新。协定将原先的原产地规则进一步提升,即汽车零部件的75%必须在三国生产,才能享受零关税,高于此前62.5%的标准;到2023年,零关税汽车40%-45%的零部件必须由时薪最低16美元的工人所生产。同时,墨西哥和加拿大获得美国对两国汽车关税豁免的"单边保证"。此外,加拿大在乳制品条款上做出让步,同意取消"7级"的乳品定价协议,向美国开放约3.5%的乳品市场份额。

其二,对非市场经济国家具有排他性。

新协定中有一项"毒丸条款",即协定第32章第10条规定,若三方中任何一方与非市场经济国家达成自贸协定,另外两方可将其踢出协定。分析认为,美国意在借此条款来约束墨、加两国与第三方非市场经济国家进行自贸合作,有意针对中国。

其三,争端解决机制。

争端解决机制(ISDS)允许第三方投资者直接对东道国提起仲裁,该机制将投资者与东道国置于平等地位,可以保护投资者利益。但新协定对三国之间的争端解决机制进行了实质性限缩,也是一种排他性的体现。

其四,"公平贸易"原则。

美方认为,美墨加协定充分体现了特朗普政府"自由、公平且对等"的国际贸易价值导向。

此外,美墨加协定也被认为是目前涵盖面最广的贸易协定。除了上世纪九十年代就存在的劳工、环境、竞争政策等议题,该协议还包括了本世纪开始进入讨论范围的数字贸易、国有企业、中小企业等议题。

3、新协定对中国的影响

总体来看,《美墨加协定》大致保留了美加墨三国参与北美自由贸易区的原有格局,消除了先前特朗普威胁退出《北美自由贸易协定》所引起的动荡与不确定性,为北美地区的经济发展起到了稳定作用。

但是,新协定的实施,可能会对中国的对外经贸环境造成负面影响。

首先,在出口贸易方面,《美墨加协定》在第五、第六章规定了更为严格的北美原产地规则,因此将会对中国对美国、加拿大和墨西哥的出口贸易产生抑制作用。

特朗普政府的目的在于确保以汽车、电子等为代表的制造业的原料来源和生产环节大部分在北美自由贸易区内完成。

新协定通过增设北美产值含量的比例要求,从而将减少或阻止中国、越南、印度等国厂商通过转口贸易和代加工贸易,进入北美市场。

其中,新协定特别提高了汽车制造的原产地比例,规定贸易区内销售的零关税汽车零部件比例必须达到75%,而此前规定的比例为62.5%。该协定还要求汽车制造商至少70%的钢铁和铝来自北美。

这些新规则势必将对中国的汽车零部件、钢铁和铝等产品对北美地区的转口和代加工贸易造成负面影响。

同时,未来日本、德国、韩国出口至美国的汽车零部件选择,考虑到中美贸易摩擦的威胁,也有可能在将来出现类似的供应链顾虑。

这些贸易转移效应将会进一步影响中国部分产品和服务的出口贸易,加剧中国与第三方在北美市场的竞争。

《美墨加协定》对中国的负面影响还体现于它对美国与日本、欧盟和脱欧后的英国等国家产生的示范效应,以及对世界贸易组织(WTO)改革的走向和全球贸易规则演变带来的深远影响。

特别需要强调的是,虽然特朗普在就任之初就退出了《跨太平洋伙伴关系协定》,但是,新协定与后者在战略上有着相承联系,甚至有所突破,而且体现出更多针对中国的特性。

在协定核心章节及条款中,包含了不少明显针对中国或者潜在歧视性排挤中国的相关规定。在政府采购章节(第13章),文件要求签约政府应保证政府采购信息的公开和透明,对供应商的限制性条件应尽可能对供应商的限制性条件应尽可能地减少,即使有也应有明确的界定,而且采用国际标准;文件还规定应由一个公正和公平的第三方对采购流程进行评估。

4、美国意图重塑国际贸易规则

3.jpg

中国现代国际问题研究院经济所所长陈凤英认为,特朗普政府制定美墨加协定,根本意图还是为了保护美国自身利益,符合"美国第一"的政策主张。在全球化背景下,美国认为其他国家通过国际贸易"搭便车"。特朗普政府希望,新协定生效后,可以抑制别国经济崛起,从而"让美国再次伟大"。

另一方面,美国政府将美墨加协定标榜为"21世纪最高标准的贸易协定",欲借此引领国际贸易谈判。

也有一些观点认为,美墨加协定可能被美国打造成未来贸易谈判的模板,甚至将成为美国施压世界贸易组织(WTO)改革的重要筹码。

特朗普政府多次指出美国"受到WTO不公正的对待",声称很多成员国以发展中国家的身份享受了不公平的豁免或者采取扭曲市场的不公平竞争政策。

陈凤英认为,如果特朗普能在11月美国大选中成功连任,在他的第二任期内,其贸易政策预计将"从双边走向多边"。双边贸易政策成功后,美国势必会在WTO拉拢更多伙伴,从而改变以往美国在WTO内部"我(美国)搭台,你(别国)唱戏"的局面,变成"我搭台,我唱戏"。

徐明棋则说,美墨加协定是特朗普政府对贸易公平原则的一次实践,有可能引领发达国家重构全球贸易体系。他表示,过去北美自贸协定和WTO秉承的原则都是大国、强国承担更多义务,让小国、欠发达国家享受优惠待遇。但美墨加协定纠正了这一点,要求各成员国之间义务对等。在协定正式生效后,未来欧盟以及其他发达国家可能效仿美国,不再像过去那样为了国际贸易原则而"牺牲"自身利益。

美国国际贸易委员会去年4月发布的研究报告显示,与保留北美自贸协定的基准情形相比,估计美墨加协定生效6年后,将令美国国内生产总值增加682亿美元(增幅0.35%),整体就业增加17.6万个(增幅0.12%)。协定将令美国对加拿大和墨西哥出口分别增加191亿美元(增幅5.9%)和142亿美元(增幅6.7%);进口将分别增加191亿美元(增幅4.8%)和124亿美元(增幅3.8%)。

来源:寶泰恒跨境資訊

查看原文:https://www.ikjzd.com/home/124836

笨鸟海淘:http://www.ikjzd.com/w/1550

beien:http://www.ikjzd.com/w/1336

韩国naver:http://www.ikjzd.com/w/1727

重磅!美墨加协定正式生效!"排他性"将对全球贸易及中国产生巨大影响!

白带一直发黄怎么办

女性的妇科健康度好不好,可以通过观察月经和白带的情况来自我检测,虽然不能知道到底是发生了什么样的疾病,但是至少可以知道自己的健康度出了问题,有问题及时到医院做检查和治疗可以将一些小毛病及时治愈,这样就不有大的影响了,有些女性朋友很想知道白带一直发黄怎么办?

白带一直发黄处理方案一:及时就医

会引起白带发黄的妇科疾病有很多,通常霉菌性阴道炎、宫颈炎和中度宫颈糜烂以及盆腔炎和附件炎都会有引发白带颜色发黄的可能性,所以患者自己是不能随意用药的,要先确诊病情才能对症治疗,检查和治疗妇科疾病一定要到正规的医院,否则做妇科检查需要扩阴道,如果做检查的场所卫生措施做得不好,很容易导致患者发生继发性感染。

白带一直发黄处理方案二:卫生护理

白带发黄的女性患者在治疗期间,一定要做好自己的卫生护理工作,每天晚上都应该用温水清洗自己的外阴,但是不要用开水或者水温过高的水,因为会烫伤皮肤的表层粘膜,一旦粘膜受损外阴皮肤会失去最后一道屏障,还要记住自己不能用手掏洗阴道内,戴指套也不行,任何东西都可能会带进阴道细菌,所以只清洗外阴就可以了。

白带一直发黄怎么办promoted张洁tm商标观察 | 我国纺织业受疫情影响有多大?亚马逊新规_官方延长因订单绩效问题而暂停账户措施的时间_亚马逊推出定制商品功能亚马逊卖家账号又被封了?"解封"办法在这里四川九寨沟旅游一次多少钱四川九寨沟旅游一次多少钱四川九寨沟自由游价格多少