总是怀疑发布一个问题,但我觉得Shopify获取图像的过程阻碍了我们的过程。
使用当前逻辑初始测试我们的系统需要大约2.3分钟来处理50个订单,现在如果我删除获取图像的逻辑(不是物理图像 - 图像obj),则需要 2-3秒
现在逻辑是,它处于循环中,因此对于每个产品,请获取variant_id
,然后调用ProductVariant API
50个订单,每个订单中有2个产品(或多或少)......我相信你会看到这里的模式以及所需的通话次数。
严格扫描文档后,shopify似乎没有提供足够的订单信息来限制这一点。
订单包含行项目(产品),每个产品都有多个变体(颜色,大小,image_id)等,但分配给variant_id
的{{1}}将是变体的物理值。
一些小代码,以便更好地理解......
line_item
最终结果是我必须抓取图像,如果不存在变体,我使用foreach (var l in productLineItems)
{
var mainImageSRC = "";
var productVariant = ProductVariant(l.Variant_Id);
if (productVariant != null)
{
if (productVariant.image_id != null)
{
var imageId = productVariant.image_id;
mainImageSRC = ImageById(l.Product_Id, productVariant.image_id).Src;
}
else
{
mainImageSRC = Images(l.Product_Id).FirstOrDefault(x => x.Position == "1").Src;
}
}
}
抓取图像集合,然后找到具有product_id
属性的主图像
我认为性能问题是获取图像的大量调用。
希望我在这里做错了,最后为更好的方法提供了一些启示。
感谢您的时间。