使用ShopifySharp实现Shopify超简单对接(C#)

发布时间:2024年01月17日

曾经有个Shopify客户想在我们客户仓库中发货,因而想要和我们的WMS系统进行对接。可当我到Shopify的开发中心一看,上面还是搞得挺详细的,也挺标准,不过Shopify的开发人员还是挺卷的,老是爱发布新版本。因此,开发文档也有好几个版本,真够烦的。后面想想,Shopify这东东还是挺流行的,看看Nutget上有没有相关的开发插件。上去看了一下,还真让我找到了个与Shopify对接的东东——ShopifySharp。

下面说说实现Shopify对接的两个基本的功能,其他功能也是大同小异,可以参照这两个功能实现。

  • 拉取订单功能:
var filter = new ShopifySharp.Filters.OrderListFilter()
{
    UpdatedAtMin = DateTime.Now.AddDays(-1),
    UpdatedAtMax = DateTime.Now,
    FulfillmentStatus = "",
    FinancialStatus = "paid"
};

/// <summary>
/// Pull Shopify Orders by filter
/// </summary>
/// <param name="url">Shopify Url</param>
/// <param name="token">Shopify Token</param>
/// <param name="filters">Search filter</param>
/// <returns></returns>
public static async Task<ShopifySharp.Lists.ListResult<Order>> GetOrders(string url, string token, ShopifySharp.Filters.OrderListFilter filters = null)
{
    var service = new ShopifySharp.OrderService(url, token);

    var orders = await service.ListAsync(filters);

    return orders;
}

上述例子中实现了拉取Shopify上一天内已付款的订单。接取到对应的订单后,那就使劲造吧,老铁。

  • 仓库发货后更新快递信息到Shopify:

这个功能稍微崎岖,

第一步,先获取到对应订单的FulfillmentOrder。

/// <summary>
/// Get FufillmentOrder
/// </summary>
/// <param name="url">Shopify Url</param>
/// <param name="token">Shopify Token</param>
/// <param name="orderId">Order Id</param>
/// <returns></returns>
public static FulfillmentOrder GetOrderFulfillment(string url, string token, long orderId)
{
    var servoce = new FulfillmentOrderService(url, token);

    return servoce.ListAsync(orderId)?.Result?.FirstOrDefault(o => o.Status == _FULFILL_STATUS_OPEN);
}

第二步,从返回的FulfillmentOrder中获取到对应的Fulfillment ID,建立起更新内容。

var shopifyRequest = new ShopifySharp.FulfillmentShipping()
{
    NotifyCustomer = true
    ,
    TrackingInfo = new TrackingInfo()
    {
        Company = "Delivery Company",
        Number = "Tracking Number"
    },

    FulfillmentRequestOrderLineItems = new List<LineItemsByFulfillmentOrder>() { new LineItemsByFulfillmentOrder() {
                                FulfillmentOrderId = fulfillment.Id
    } }
};

第三步,把前面组合起来的内容推送到Shopify。

public static Fulfillment SendOrderFulfillment(string url, string token, ShopifySharp.FulfillmentShipping fulfillment)
{
    var servoce = new FulfillmentService(url, token);

    return servoce.CreateAsync(fulfillment).Result;
}

好了,一个简单而完整的Shopify获取订单,更新订单的流程走完了,希望能帮到有需要的老铁。

实属班门弄斧不自量,权作抛砖引玉撩一笑。

文章来源:https://blog.csdn.net/u010407072/article/details/135615475
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。