首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用ShopifySharp重置按价格比较购物API

无法使用ShopifySharp重置按价格比较购物API
EN

Stack Overflow用户
提问于 2020-09-30 18:35:14
回答 1查看 344关注 0票数 0

我曾经可以在产品打折后将compare_at_price设置为null,但现在我得到了一个错误。这利用了来自NozzleGear的ShopifySharp C#库。

示例:

价格是: 1000,相比之下是1200

我想将它的价格重置为1200,比较为0。

(422无法处理的实体) compare_at_price:价格比较需要高于价格

我既不能将其设置为0,也不能将其设置为0,那么如何将compare_at_price禁用为0或null或将其删除?

代码语言:javascript
复制
var variant = await productVariantService.UpdateAsync(product.VariantId.Value, new ProductVariant()
{
      Price = updatePrice,
      CompareAtPrice = updateCompareAtPrice
});
EN

回答 1

Stack Overflow用户

发布于 2020-10-06 20:01:02

似乎有一个bug,这是解决办法...

https://github.com/nozzlegear/ShopifySharp/issues/373

创建和使用以下服务

代码语言:javascript
复制
using System;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using ShopifySharp;
using ShopifySharp.Infrastructure;

public class ProductVariantServiceEx : ProductVariantService
{
    public ProductVariantServiceEx(string myShopifyUrl, string shopAccessToken) : base(myShopifyUrl, shopAccessToken) { }

    public virtual async Task<ProductVariant> UpdateAsync(long productVariantId, ProductVariant variant)
    {
        try
        {
            // BUGFIX: If variant.CompareAtPrice is set to 0, then force it to empty
            string json = new JsonContent(new { variant }).ReadAsStringAsync().Result;

            if (json.Contains("\"compare_at_price\":0.00}")
                || json.Contains("\"compare_at_price\":0.00,"))
            {
                json = json.Replace("\"compare_at_price\":0.00", "\"compare_at_price\":\"\"");

                var req = PrepareRequest($"variants/{productVariantId}.json");
                using var content = new StringContent(json, Encoding.UTF8, "application/json");
                await Task.Run(() => Thread.Sleep(500));
                return (await ExecuteRequestAsync<ProductVariant>(req, HttpMethod.Put, default, content, "variant")
                    .ConfigureAwait(false)).Result;
            }

            return await base.UpdateAsync(productVariantId, variant);
        }
        catch (Exception)
        {
            return null;
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64135760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档