جستجو
محصولات
    منو بسته
    2 دی 1403

    افزودن دستی محصولات با شناسه محصول

    3 سال پیش
    #3808
    سلام به همه،
    ما در حال توسعه یک پلاگین برای وارد کردن محصولات به nopcommerce از وب سرویس، با استفاده از IProductService. InsertProduct )محصول)
    آیا می توانید شناسه محصول ما را وارد کنید؟
    foreach (Article articol in articols)
    {
      //get product
      var product = _productService.GetProductBySku(articol.CODE);

      //check if product exist
      var isNew = (product == null);

      //create or update class product
      product ??= new Product();

      //default attributes
      product.ProductTypeId = (int)ProductType.SimpleProduct;
      product.VisibleIndividually = true;
      product.ManageInventoryMethodId = (int)ManageInventoryMethod.ManageStock;
      product.MarkAsNew = true;

      //add attributes
      product.Id = articol.ID; // IS IT POSSIBLE INSERT THIS ID?
      product.Sku = articol.CODE;
      product.Name = articol.CODE;
      product.ShortDescription = articol.DESCRIPTION : "";
      product.FullDescription = (traduzione != null) ? articol.DESCRIPTION : "";
      product.MetaKeywords = "";
      product.MetaDescription = "";
      product.MetaTitle = "";
      product.Price = 20;
      product.TaxCategoryId = _taxCategoryService.GetTaxCategoryById(1).Id;
      product.StockQuantity = 100;
      product.Length = 1;
      product.Height = 1;
      product.Width = 1;
      product.Weight = 1;
      product.Published = true;
      product.Deleted = false;

      //check if product is new
      if (isNew)
      {
        _productService.InsertProduct(product);
      }
      else
      {
        _productService.UpdateProduct(product);
      }
    }
    نقل قول
    0
    3 سال پیش
    #3833
    چرا باید شناسه وارد کنید؟ آیا SKU به اندازه کافی خوب نیست؟
    نقل قول
    0
    3 سال پیش
    #3838
    سلام
    برای سازگاری می خواهم از شناسه مشابه برنامه مدیریت استفاده کنم. در لحظه دوم نیز سفارشات را برای بازگشت به وب سرویس صادر می کنم و برنامه فقط شناسه را می پذیرد.
    نقل قول
    0
    3 سال پیش
    #3847
    ممکن است امکان پذیر باشد، اما انجام آن آسان نیست. قسمت Id دارای ویژگی IDENTITY است.
    اگر از فیلد دیگری (به عنوان مثال SKU ، GTIN یا ویژگی عمومی) استفاده کنید، آسان تر خواهد بود و سپس سرویس وب فقط مقدار صحیح را ارسال می کند.
    نقل قول
    0
    3 سال پیش
    #3859
    از حمایتتان متشکرم. ما در نظر داریم "articol.ID"  را در ویژگی عمومی وارد کنیم.
    //check if product is new
    if (isNew)
    {
      _productService.InsertProduct(product);

      //insert local id in generic
      _genericAttributeService.SaveAttribute<int>(product, "IdCodeLocal", articol.ID);
    }
    else
    {
      _productService.UpdateProduct(product);

    آیا می توان EntityId را با Key و Value بدست آورد ، مانند این؟
    var id = _genericAttributeService.GetAttributeByKeyValue("IdCodeLocal", articol.ID).EntityId;
    نقل قول
    0
    3 سال پیش
    #3882
    من بالاخره جواب رو پیدا کردم
    public virtual int GetEntityIdByKeyGroupKeyAndValue(string keyGroup, string key, string value)
            {
                var genericAttribute = _genericAttributeRepository.Table.Where(x => x.KeyGroup == keyGroup && x.Key == key && x.Value == value).FirstOrDefault();
                
                if (genericAttribute == null)
                    return 0;

                return genericAttribute.EntityId;
            }
    نقل قول
    0
    3 سال پیش
    #3887
    این پاسخی برای سوال اصلی شما نیست اما راهی برای ارجاع شناسنامه قدیمی شماست
    بنابراین روی Import Product شما قصد دارید رکورد جدیدی را در جدول ویژگی عمومی بنویسید تا بعداً به مقدار شناسه قدیمی دسترسی پیدا کنید.
    یا به طور دقیق تر می توانید از طریق جستجوی جدول ویژگی عمومی به محصول جدید دسترسی پیدا کنید.
    نقل قول
    1
    3 سال پیش
    #3895
    بله، حق با شماست. با توجه به اینکه استفاده از شناسه داخلی روش صحیحی نبود، ترجیح دادم برای همگام سازی محصولات از ویژگی های عمومی استفاده کنیم.
    من راه حل خود را برای کمک به دیگران که همان مشکل را دارند ارسال کرده ام.
    نقل قول
    0
    3 سال پیش
    #3904
    ممنون از کمک هاتون
    مرسی
    نقل قول
    0
    09127857628