بسته

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

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
دسته بندی ها