美文网首页
亚马逊开发踩坑实录

亚马逊开发踩坑实录

作者: 独孤游侠 | 来源:发表于2019-02-28 16:33 被阅读0次

    1.监控历史跟卖卖家 当前跟卖状态 如何确认是否已退出?
    方案一:每次落库数据时留下updateTime,假定两次连续的监控任务时间周期是稳定的为t.则当前时间戳-周期时长t代表的秒数>记录的updateTime 则认为退出跟卖 因为最后更新时间已经超过两次监控了.退出时间为updateTime+t代表的秒数

    方案二:监控任务标记批次task_no.同批次监控到的跟卖卖家都更新为当前监控任务的批次.当一个卖家的task_no不属于最后两次的任务批次 则认为退出跟卖 因为卖家数据已经连续两个任务批次未更新了.退出时间为倒数第二个任务批次的记录的最后更新时间.

    方案二更好,不会受到监控任务执行并不稳定这个因素影响

    # 退出状态和时间新逻辑: 每个数据都记录所在爬虫任务发起的时间,同一批次任务的数据,有相同的任务时间
    # mongo为最新数据. 取任务时间倒叙 limit2条.即最后的两次任务.如果记录的任务时间属于这两次任务.即认为还在跟卖,否则为退出跟卖.
    # 最近退出时间为最后退出任务批次的update时间
    # 取倒数两次任务 而不是最后一次任务的原因是   每次任务的数据是单独更新  可能有些卖家仍在跟卖 但数据未更新而已
    

    2.亚马逊产品图片展示:亚马逊的图片分辨率根据URL特定字符变化.

    /**
     * 按指定尺寸格式化亚马逊图片链接
     * @param $imgUrl
     * @param int $size
     * @return string|string[]|null
     */
    function formatAmzImgUrl($imgUrl, $size=150){
        if(!$imgUrl){
            return $imgUrl;
        }
        $feature = '._SL';
        if(strpos($imgUrl, $feature) !== false){
            #有特征标识,替换特征标识+尺寸
            $pattern = '/._SL\w{1,}/';
            $replacement = $feature.$size;
        }else{
            #无特征标识,在末尾图片扩展名前拼上特征标识+尺寸
            $index = strrpos($imgUrl, '.');
            $imgExt = substr($imgUrl, $index);
            $pattern = '/'.$imgExt.'/';
            $replacement = $feature.$size.$imgExt;
        }
        $newImgUrl =  preg_replace($pattern, $replacement, $imgUrl);
        return $newImgUrl;
    }
    

    3.汇率转换

    /*
     * 货币汇率换算
     * @param from string 货币转入币种
     * @param to   string 货币转出币种
     * @param amount int  转换金额
     * @return number number_format 实时汇率
     * */
    function convertCurrency($from, $to, $amount){
        $data = file_get_contents("http://www.baidu.com/s?wd={$from}%20{$to}&rsv_spt=1");
        preg_match("/<div>1\D*=(\d*\.\d*)\D*<\/div>/",$data, $converted);
        $converted = preg_replace("/[^0-9.]/", "", $converted[1]);
        $rate = number_format($converted, 4);
        $price = $rate * $amount;
        return $price;
    }
    

    4.库存查询
    FBM商品库存
    GET_MERCHANT_LISTINGS_ALL_DATA
    GET_FLAT_FILE_OPEN_LISTINGS_DATA
    GET_MERCHANT_LISTINGS_DATA
    GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT
    GET_MERCHANT_LISTINGS_DATA_LITE
    GET_MERCHANT_LISTINGS_DATA_LITER
    GET_CONVERGED_FLAT_FILE_SOLD_LISTINGS_DATA
    其中quantity有值即为FBM库存 >=0
    为空字符串为FBA商品 库存在其他地方查询

    FBA商品库存
    ListInventorySupply 拿上面quantity为空的SKU去查

    可售数 以上库存为可售
    待调仓 GET_FBA_FULFILLMENT_INVENTORY_ADJUSTMENTS_DATA
    调仓中 GET_FBA_FULFILLMENT_INVENTORY_ADJUSTMENTS_DATA
    待发货 查看订单报告 orderStatus=Unshipped
    入库中 GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA

    [sku] => Test-PHO_074RRQLI-AF1
                [fnsku] => X00224RGDH
                [asin] => B07MFLDJTV
                [product-name] => LED Under Cabinet Lighting, LED Puck Lights - Litake, Battery Powered LED Closet Light with Remote Control Dimmable 3000-6000K Warm to Nature White (6 Pack)
                [condition] => New
                [your-price] => 25.99
                [mfn-listing-exists] => No
                [mfn-fulfillable-quantity] => 
                [afn-listing-exists] => Yes
                [afn-warehouse-quantity] => 0
                [afn-fulfillable-quantity] => 0
                [afn-unsellable-quantity] => 0
                [afn-reserved-quantity] => 0
                [afn-total-quantity] => 30
                [per-unit-volume] => 0.11
                [afn-inbound-working-quantity] => 30
                [afn-inbound-shipped-quantity] => 0
                [afn-inbound-receiving-quantity] => 0
    

    不可售

    5.商品关系处理
    sku才为库存管理最小单位 而不是sku
    整理父子关系用商品接口 GetMatchingProductForId 其中有个血统字段.可以判断是父子还是单品的商品类型.假如一个asin查到是变体,但其父asin在库存报告里不存在.则该认为他是单体.其父体可能已经被删除了.对应的亚马逊后台库存列表.这些商品也没有父子关系展开效果

    6.可售踩坑
    默认库存数>0为可售.当前出现了报告和接口查询 变体子体库存为0 但变体父体库存>0的情况.只想说一句,亚马逊 真他娘的恶心.

    7.父子关系处理.排序功能
    看商品特征的 使用极值 如价格 库存
    看商品统计特征的 使用累加 如销量
    ...亚马逊 狗屎狗屎

    相关文章

      网友评论

          本文标题:亚马逊开发踩坑实录

          本文链接:https://www.haomeiwen.com/subject/ynckuqtx.html