国际E邮宝批发分销生产系统,支持多客户端统一验证处理

国际E邮宝是一个针对美国市场的小包,通过专门的API提交寄递数据进行审核、提取邮件号和打印标签,并支持用户自定义内部的订单号,这个系统模型,支持大批发客户,通过收集各个用户的邮件,进行统一的生产寄递处理。
整体流程如下:
1、具体用户通过客户端批量录入要处理的邮件数据,并编写自已内部订单号,系统会自动加上此客户的前缀标识,防止编号冲突,完成后确认寄递,同时更新状态,并打印内部订单号的条型码贴到包裹上。
2、用户确认寄递,后台处理代码会自动批量将用户提交的数据到api进行审核,如有错误,会自动显示在前台
3、后台处理管理人员,定期将已审核好的各用户的数据自动汇总提交后台代码进行申请正式的邮件号码,同时更新状态
4、后台处理管理人员,定期将已申请收到正式的邮件号码的订单汇总给后台代码进行批量标签的申请,代码处理后会自动将批量标签下载文件放到生产系统中。
5、生产人员将批量标签文件下载到指定的目录,形成准备接收的资源
6、等用户的邮件到来,扫描内部订单号的条型码,系统会自动找出对应的正式邮件号,并指定标签文件位置打开并打印。
通过上述6个步骤形成完整的国际E邮宝批发分销生产系统。
前台操作及后面界面如下:

此系统前端是用勤哲系统做的,后台处理用C#处理的。

婚纱外贸行业第二次美国维权风暴,39个网站被查,域名会被收将被索赔。

美国婚纱礼服协会(AMERICAN BRIDAL&PROM INDUSTRY ASSOCIATION, INC)以及其联合的25位婚纱礼服行业公司(美国公司)作为原告控告中国39家涉及婚纱礼服销售的电子商务公司起诉书(CASE NO.12-CV-5776),原告要求被告作出高额赔偿,包括但不限于:
1)被告在收到该起诉书后30日内,需向法院和原告提供一份书面的宣誓书,详细说明被告会一一遵循法院宣布的禁令。
2)被告的侵权域名应立即被域名注册商verisign.Inc, NeuStar,Inc, Afilias limited, Nominet UK等停止使用。
3)被告的侵权域名应被以上域名注册商转移给原告指定的一家注册商,并由原告重新以原告的名义注册,所有权转移至原告名下。
4)被告赔偿原告的金额不高于对原告侵权导致的损害的3倍,由法律决定,或者,每一名原告因商标侵权将获得法定的200万美金损害赔偿,以及每一个侵权域名获得25万美金赔偿。

这次涉及的域名如下:
9dresses.com
aliexpress.com
amazing-prom.com
bigdaydress.net
brideslee.com
dhgate.com
dinodirect.com
dreamprom.com
dream-prom.com
edressesonsale.com
elledream.net
elisebridal.com
fishinthesky.com
honeybuy.com
honeydress.com
kellyprom.com
magiebridal.com
micwell.com
milanoo.com
moncherybridal.com
montellabridal.com
bidebuy.com
moorepromdress.com
morilybridal.com
seasonmall.com
tbdress.com
tiffanybirdals.com
tuterabridal.com
soobest.com
dress-markey.com
maggiebrides.com
phoebebridal.com
dresstimes.com
lafemmesale.com
farbridal.com
lafemmedresscheap.com
上述网站中,涉及好几家国内知名的外贸网站,如阿里巴巴,dhgate,大龙,tidybuy,米兰等。
提出版权所有权的公司以网站如下:
Mon Cheri Bridals LLC       www.moncheribridals.com
Promgirl,Inc                www.clarisse.us
Maggid sottero Designs,LLC  www.maggiesottero.com www.sotteroandmidgley.com www.flirtprom.com
La Femme Boutique,INC       www.lafemmefashion.com
Bari-Jay Fashions,Inc       www.barijay.com
Alyce Designs,Inc           www.alycedesigns.com
Allure Bridals,Inc          www.allurebridals.com
Watter Desings,Inc          www.watters.com
Next Century Productsion    www.sydneyscloest.com
Mori Lee LLC                www.morilee.com    www.papraazziprom.com  www.vizcayadress.com
Emme Bridal,Inc             www.davincibridal.com
Simone Carvalli Corp.       www.simonecarvalli.com
Bonny MT Enterprises        www.bonny.com
Casablanca Bridals,Inc      www.casablancabridal.com
Impression Bridal,Inc       www.impressionbridal.com
Formsoa Bridal,Inc          www.houseofwu.com
Essense of Australia        www.essensedesigns.com
Edward Berger,Ltd           www.edwardberger.com
Jovani Fashion,Ltd.         www.jovani.com
Lizzette Brodsky            www.lizfields.com
Frank Disantis              www.rinadimontella.com
Precious Formals,Inc        www.preciousformals.com
Countess Corporation        www.teransicouture.com
Jordan fashions Corp.       www.jordanfashions.com

这是第二次了
第一次是

2012年4月12日国内多家婚纱网站遭投诉域名被强制转移

http://www.courthousenews.com/2012/07/31/48850.htm
国外的新闻7月31日,就公布了
国内迟了快20天才知道
要翻墙看

哪些地区性域名google视同全球通用性域名使用

近期.co的域名很热,我也去注册了一个,开通使用,但有担心google将其视为地区性域名,经查了一下资料,google对域名做如下表述:

Google 将以下域名作为可在“网站站长工具”中按地理位置定位的 gTLD 处理。

通用顶级域名 (gTLD)

.aero
.biz
.cat
.com
.coop
.edu
.gov
.info
.int
.jobs
.net
.mil
.mobi
.museum
.name
.net
.org
.pro
.tel
.travel

区域性顶级域名 (rTLD)

这些域名虽然与地理区域相关联,但一般仍作为通用顶级域名(类似于 .com 或 .org)处理。

.eu
.asia

通用国家/地区代码顶级域名 (gccTLD)

Google 将某些 ccTLD(例如 .tv、.me 等)作为 gTLD 处理,因为我们发现,用户和网站站长通常认为这些 gTLD 比国家/地区定位的域名更为通用。以下是这些 ccTLD 的列表(请注意,该列表会随时间而变化)。

.as
.bz
.cc
.cd
.co
.dj
.fm
.la
.me
.ms
.nu
.sc
.sr
.tv
.tk
.ws

发现google将.co域名视同全球性域名处理,太好了

2012年4月12日国内多家婚纱网站遭投诉域名被强制转移

    日前,在多家外贸网站及域名交流社区传出消息,称国内多家知名的婚纱网站遭美国最大的婚纱连锁店投诉,这些被投诉网站域名被强制转移。
    被转移的域名包括Milanoo.com、dressale.com等在内上百个域名,这些网站有部分为中国人在中国境内创办的时尚电子商务网站,而他们都被同一家公司David's Bridal(创办于1950年,系全美最大的婚纱连锁店)投诉,其中milanoo.com创建于08年7月,年收入据闻已超过千万美金,并且获得了红杉资本的风险投资。这些公司被投诉的原因大多数是因为侵犯了David's Bridal的版权,涉嫌抄袭或盗用了其婚纱设计作品(图片)等。
    我看到一些之前已经跳转到相应的新域名上landybridal,landy bridal.其中米兰还能正常使用,可能因规模比较大,最后会经过谈判解决。
    根据whois历史信息对比,发现milanoo的域名信息已经从中国持有人变更为David's Bridal所有。
     据此前媒体报道,美国政府颁布了一些法院命令,称有权关闭任何.com域名网站,美国还发起了“我们的网站行动”,专门打击制售假冒商品和盗版软件网站,包括赌博在内的违法网站,由于.com的根域名由美国威瑞信公司控制,遵从美国法律,因此milanoo等网站在内的域名可能因David's Bridal投诉而被强制转移。
     目前尚未有任何相关仲裁文件与域名新闻。
     这件事,现次表明了,对知识产权的保护越来越严了,大家在这方面如果有侵权的,能尽快拿到第一桶金后转型,不然“出来混的出是要还的”。
  

勤哲excel表单在重启后打开还是被编辑状态的解决

勤哲excel表单,有时因不正常,打开时,会显示此表单正在由谁编辑中,在重启后打开还是片于被编辑状态,
解决办法,是查找此表单的ExcelServerRCID值,然后在ES_RepCase表或RepCase,执行如下的操作,
即可取消表单一直被用户编辑的状态了
UPDATE [dbo].[ES_RepCase]
   SET
      [openState] = 0
      ,[openBy] = 0
      ,[openByName] = ''
      ,[OpenBySesId] = ''
      ,[lockState] = ''
      ,[lockInServer] = 0
 WHERE rcid='rc2011101801709'

用C#通过ebay api的GetOrders获取订单的示范代码

关天getorders的功能的官方说明

http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetOrders.html

web的引用地址:http://developer.ebay.com/webservices/latest/eBaySvc.wsdl

另外一个vb.net的getorders示范代码https://ebay.custhelp.com/app/answers/detail/a_id/505/~/getorders-sample-in-vb.net-using-ebay-sdk-v459.0-for-.net

using eBay.Service.Call;
using eBay.Service.Core.Sdk;
using eBay.Service.Util;
using eBay.Service.Core.Soap;

namespace Trading_Samples
{
public class OrderManagement
{
//GetOrders
private void GetOrders()
{
//create the context
ApiContext context = new ApiContext();

//set the User token
context.ApiCredential.eBayToken = “Your token”;

//set the server url
context.SoapApiServerUrl = “https://api.sandbox.ebay.com/wsapi”;

//enable logging
context.ApiLogManager = new ApiLogManager();
context.ApiLogManager.ApiLoggerList.Add(new FileLogger(“log.txt”, true, true, true));
context.ApiLogManager.EnableLogging = true;

//set the version
context.Version = “705”;
context.Site = SiteCodeType.UK;
bool blnHasMore = true;

DateTime CreateTimeFromPrev, CreateTimeFrom, CreateTimeTo;

GetOrdersCall getOrders = new GetOrdersCall(context);
getOrders.DetailLevelList = new DetailLevelCodeTypeCollection();
getOrders.DetailLevelList.Add(DetailLevelCodeType.ReturnAll);

//CreateTimeTo set to the current time
CreateTimeTo = DateTime.Now.ToUniversalTime();

//Assumption call is made every 15 sec. So CreateTimeFrom of last call was 15 mins
//prior to now
TimeSpan ts1 = new TimeSpan(9000000000);
CreateTimeFromPrev = CreateTimeTo.Subtract(ts1);

//Set the CreateTimeFrom the last time you made the call minus 2 minutes
TimeSpan ts2 = new TimeSpan(1200000000);
CreateTimeFrom = CreateTimeFromPrev.Subtract(ts2);

getOrders.CreateTimeFrom = CreateTimeFrom;
getOrders.CreateTimeTo = CreateTimeTo;

getOrders.Execute();

if (getOrders.ApiResponse.Ack != AckCodeType.Failure)
{
//Check if any orders are returned
if (getOrders.ApiResponse.OrderArray.Count != 0)
{
foreach (OrderType order in getOrders.ApiResponse.OrderArray)
{
//Update your system with the order information.
Console.WriteLine(“Order Number: ” + order.OrderID);
Console.WriteLine(“OrderStatus: ” + order.OrderStatus);
Console.WriteLine(“Order Created On: ” + order.CreatedTime);

//Get Order Details
TransactionTypeCollection orderTrans = order.TransactionArray;

//Order could be comprised of one or more items
foreach (TransactionType transaction in orderTrans)
{
Console.WriteLine(“Order for: ” + transaction.Item.ItemID + “, ” + transaction.Item.SKU + “, ” + transaction.Item.Title);

//If you are listing variation items, you will need to retrieve the variation
//details as chosen by the buyer
if (transaction.Variation.SKU != null)
{
Console.WriteLine(“Variation: ” + transaction.Variation.SKU);
}
Console.WriteLine(“OrderLineItemID: ” + transaction.OrderLineItemID);
Console.WriteLine(“Qty Purchased: ” + transaction.QuantityPurchased);
Console.WriteLine(“Buyer Info: ” + order.BuyerUserID + “, ” + transaction.Buyer.Email);

}

if (order.CheckoutStatus.Status == CompleteStatusCodeType.Complete)
{
//Get Payment Details
Console.WriteLine(“Order Adjustment Amount: ” + order.AdjustmentAmount.Value);
Console.WriteLine(“Order Amount Paid: ” + order.AmountPaid.Value);
Console.WriteLine(“Payment Method: ” + order.CheckoutStatus.PaymentMethod);

ExternalTransactionTypeCollection extTrans = order.ExternalTransaction;

foreach(ExternalTransactionType extTran in extTrans)
{
Console.WriteLine(“External TransactionID: ” + extTran.ExternalTransactionID);
Console.WriteLine(“External Transaction Time: ” + extTran.ExternalTransactionTime);
Console.WriteLine(“Payment/Refund Amount: ” + extTran.PaymentOrRefundAmount.Value);
}

//Get shipping information
ShippingServiceOptionsType shipping;
shipping = order.ShippingServiceSelected;

Console.WriteLine(“Shipping Service Selected: ” + order.ShippingServiceSelected.ShippingService);

//Get Shipping Address – Address subject to change if the buyer has not completed checkout
AddressType address = order.ShippingAddress;

StringBuilder sAdd = new StringBuilder();
sAdd = sAdd.Append(address.Name);
if (address.Street != null && address.Street != “”)
sAdd.Append(“, ” + address.Street);
if (address.Street1 != null && address.Street1 != “”)
sAdd.Append(“, ” + address.Street1);
if (address.Street2 != null && address.Street2 != “”)
sAdd.Append(“, ” + address.Street2);
if (address.CityName != null && address.CityName != “”)
sAdd.Append(“, ” + address.CityName);
if (address.StateOrProvince != null && address.StateOrProvince != “”)
sAdd.Append(“, ” + address.StateOrProvince);
if (address.PostalCode != null && address.PostalCode != “”)
sAdd.Append(“, ” + address.PostalCode);
if (address.CountryName != null && address.CountryName != “”)
sAdd.Append(“, ” + address.CountryName);
if (address.Phone != null && address.Phone != “”)
sAdd.Append(“: Phone” + address.Phone);

Console.WriteLine(“Shipping Address: ” + sAdd);

double salesTax;
//Get the sales tax
if (order.ShippingDetails.SalesTax.SalesTaxAmount == null)
salesTax = 0.00;
else
salesTax = order.ShippingDetails.SalesTax.SalesTaxAmount.Value;

Console.WriteLine(“Sales Tax: ” + salesTax);

if (order.BuyerCheckoutMessage != null)
{
Console.WriteLine(“Buyer Checkout Message: ” + order.BuyerCheckoutMessage);
}

}
Console.WriteLine(“********************************************************”);
}
}
}

}
}
}

ebay的Trading API 705以上的版本,该如何获取订单交易信息

原先您需要通过GetItemTransactionsGetSellerTransactions来获取transaction信息,并将IncludeContainingOrder设置为true来查看是否有合并订单的情况。然后通过OrderID再次调用GetOrders来查看合并后的订单信息。

从Trading API 705版本后,GetOrders被增强了。您将可以跳过呼叫GetItemTransactionsGetSellerTransactions的步骤,直接使用GetOrders来查看近期成交的交易,并同时获取被合并的订单。

例如:获取某段时间内的订单信息:

<GetOrdersRequest xmlns=”urn:ebay:apis:eBLBaseComponents”>

<CreateTimeFrom>2010-12-01T20:34:44.000Z</CreateTimeFrom>

<CreateTimeTo>2011-02-28T20:34:44.000Z</CreateTimeTo>

<OrderRole>Seller</OrderRole>

<RequesterCredentials>

<eBayAuthToken>TOKEN</eBayAuthToken>

</RequesterCredentials>

</GetOrdersRequest>
另外,在返回的response中,增加了OrderLineItemID字段,这个字段由itemID-TransactionID组成,是一个全局唯一的变量。

您可以通过在使用GetOrders时,将该字段传入OrderID来获取某个transaction的详细信息。

例如,获取itemID为110586452612,交易号为631538694001的交易信息:

<GetOrdersRequest xmlns=”urn:ebay:apis:eBLBaseComponents”>

<OrderIDArray>

<OrderID>110586452612-631538694001</OrderID>

</OrderIDArray>

<OrderRole>Seller</OrderRole>

<RequesterCredentials>

<eBayAuthToken>TOKEN</eBayAuthToken>

</RequesterCredentials>

</GetOrdersRequest>

使用eBay API基本步骤介绍

1.注册开发帐号:https://developer.ebay.com/join/Default.aspx

2.选择API类型: eBay有大约6种API 开发语言,例如.net和Java的SDK
http://developer.ebay.com/products/trading/
http://developer.ebay.com/products/overview/api-by-feature/

3.然后是程序开发和Sandbox测试,例如,
3.1 最基本的‘上传商品’的接口定义如下:http://developer.ebay.com/DevZone/XML/docs/WebHelp/wwhelp/wwhimpl/common/html/wwhelp.htm?context=eBay_XML_API&file=ListingItems-.html
3.2 获取买家付款状态和地址信息的接口是GetSellerTransactions:http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetSellerTransactions.html
3.3 标注商品已发货并上传包裹单号的接口是CompleteSale:http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/CompleteSale.html

3.4 可以提供eBay帐单明细 (seller invoce) 的接口是GetAccount
http://developer.ebay.com/DevZone/XML/docs/WebHelp/ManagingUserInfo-Getting_Account_Information.html

4. 另外,根据eBay和PayPal的要求,如果买家通过PayPal付款,那么买家付款状态和地址信息均应以PayPal网站上的为准
获取PayPal买家地址的接口是 PayPal GetTransactionDetailsAPI
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_soap_r_GetTransactionDetails
其中关键参数是:PaymentStatus 和Address Fields

5. 开发过程中,如有API的功能和业务逻辑问题,可通过如下途径寻求解决:
如果是有纯技术问题,需要到开发者论坛:http://developer.ebay.com/community/forums/
如果有重要的紧急事项需要技术支持,可以联系eBay Support Team(收费的):http://developer.ebay.com/support/developersupport/hours/

6. 正式使用时,eBay通过Auth&Auth这个API,从网站上取得卖家帐号的Token,以便开始上传物品:
http://developer.ebay.com/DevZone/XML/docs/WebHelp/GettingTokens-Getting_Tokens_for_Applications_with_Multiple_Users.html
此过程可参考如下中文范例:�0�2http://www.ebay.cn/public/help/auth/howtoAuth.htm

7. 正式上线前2~4周,需要提请eBay对自己所开发的程序进行简单的认证与授权,大约需要3~10个工作日:
http://developer.ebay.com/support/certification/

以上是大致的情况,先做参考。
其他软件开发商,也有利用API而开发相似软件的,例如‘美胜商’:http://www.ebay.cn/pages/jsp/fm/third/tools_mechentrun.jsp
可以把1件商品批量登录到多个eBay网站。

基于eBayAPI,全球有上万名开发者,有数千款eBayAPI软件。请参考:
http://certifiedprovider.ebay.com/CertifiedProviders.html
以及http://cgi6.ebay.com/ws/eBayISAPI.dll?SolutionsDirectory

电子商务网站间数据转换服务

Cart2Cart是一个在线购物车迁移服务,帮助你摆脱当前的购物车的数据,以便更好地一个自动升级。
快速转换过程: 这需要几分钟你开始只有几个小时把它完成了由Cart2Cart无数据丢失
转换自由预览:演示时向您提供的免费并且确保准确 的10个产品/客户的转移
支付以下几种平台数据的互转
3DCart 3.x API
3DCart 3.x CSV
BIG Commerce
Channel Advisor
CRE Loaded 6.2 Standard, Pro, B2B
CRE Loaded 6.3, 6.4 PCI (Standard/CE, Pro, B2B)
CS-Cart 1.3.x – 2.1.x
CubeCart 3.x, 4.x
H.H.G. multistore 4.x
Interspire 3.x, 4.x, 5.x, 6.x
Magento 1.1.x-1.5.x, 1.6.x-Enterprise
Magento go
Miva Merchant 4.x, 5.x
Opencart 0.7.9 – 1.4.x
osCMax 2.0.x
osCommerce 2.2 ms2, rc2a
Pinnacle Cart 3.5.x, 3.6.x, 3.7.x
PrestaShop 1.x
Shopify
Shopp 1.1.x
Shop-Script Pro/Premium 2.8.x WebAsyst
Shop-Script Free
Squirrelcart 2.4.x, 3.1.x
Summer Cart 3.x
Tomatocart 1.x
Ubercart 1.x-2.x
VirtueMart 1.0.x, 1.1.x
Volusion
WP e-Commerce 3.6.x – 3.7.x
X-Cart 4.0.x
X-Cart 4.1.x, 4.2.x
X-Cart 4.3.x, 4.4.x
xt:Commerce 3.x
xt:Commerce Veyton 4.x
Yahoo! Store
Zen Cart 1.2.x, 1.3.x
根据不同的产品、客户、订单数据收费

官网如下:
http://www.shopping-cart-migration.com/

多语言网站使用子域名,子目录,国家域名的优劣

网站在做多语言版本时,对不同语言的页面在网站上可以有四种处理方式。

1、不同语言网站完全独立,放在不同的国家域名商。比如中文版的网站就放在www.xxxx.cn上,美式英文网站放在www.xxxx.com, 日文本放在www.xxxx.co.jp ,英式英文网站放在www.xxxx.co.hk 上。这样做的好处是用户及搜索引擎都能轻易分辨语种和地理位置。不同语种的页面写作、内容安排上也都可以自由发挥。不同国家域名的网站可以放在相应的国家 的主机上,有助于关键词排名的地理位置。
优点:网站地理定位清晰,与服务器位置无关,易于分离网站, 需要满足相关法律要求(有时候),
缺点是这些网站完全独立,在推广上需要花费更多精力,需要同时优化和推广多个网站。另外还有价格昂贵(可用性), 需要更多基础架构, 需要满足相关国家代码顶级域名要求(有时候).

2、不同语种网站放在主域名的子域名上。如中文版本作为主网站,放在 xxxx.com,英文版本放在en.xxxx.com。法文版本放在fr.xxxx.com。这样做的好处是子域名多少可以继承一点主域名的权重。如果 主域名已经存在较长时间,有比较高的权重,对多个子域名的优化排名都有好处。用户和搜索引擎也可以轻易分辨出这些子域名是不同语言版本。不同子域名也可以 放在相应的国家的主机上。
优点:易于设置,可使用网站站长工具(Webmaster Tools)进行地理定位,允许有不同的服务器位置,易于分离网站.
缺点:和使用不同国家域名一样,不同子域名在搜索引擎严眼里基本上是不同的网站,也需要同时优化推广多个网站。用户可能不能单从URL识别地理定位(比如,“de指的是语言还是国家?).

3、 不同语种网站放在主域名的二级目录下。如中文本主域名为www.xxxx.com,英文版放在www.xxxx.com/en/ 下面,法文版放在www.xxxx.com/fr/ 下面。这样做的优点是二级目录完全继承主域名权重,在搜索引擎眼里,不同语言版本实际上是一个网站。如果你已经有一个权重相当高的主域名,在二级目录推广 其他语种页面就相对容易很多。
优点:易于设置,可使用网站站长工具(Webmaster Tools)进行地理定位,较低的维护成本(同一主机)
缺点是用户和搜索引擎都可能对网站语种产生一定混淆,而且不同二级目录很难妨碍不同国家的主机上,技术上实现起来比较困难,这对关键词地理定位很不利。用户可能不能单从URL识别地理定位,单一的服务器位置, 较难分离网站.

4、还有一种是在链接后面增加一个语种参数.如:site.com?loc=de、?country=france,这里不推荐,原因如下:基于 URL的内容分割很困难, 用户可能不能单从URL识别地理定位,不能用网站站长工具(Webmaster Tools)进行地理定位.

基本上针对多语言多网站的前期推广细节就是从以上前三个方面来做,90%以上的网站都是这样实施的,每个方法都有每个方法的优点和缺点,不可能两者都完美。不过我们应该相信,不管使用哪种方法我们主要用心做,做好,那么得到的效果是成比例的!

magento本身可轻松支持第二和第三种方式,但是第二种方式切换语言时实际上是切换website或store,这种切换目录是独立的,不能做到页级多语种切换;但第三种方式是store view的切换,产品目录支持多语种,可以做到页面级的语种切换.就算不考虑这个,只考虑seo的因素,也是比较难选!