>
در مورد مشکل شما حدس میزنم شما تیک Anonymous checkout allowed (اجازه پرداخت به کاربران ناشناس) را در بخش ادمین - تنظیمات - تنظیمات سفارش نزده اید.
دیگر آنکه عرض کنم تمتون خیلی زیباست و فکر میکنم بهترین تم ناپ هست که تابحال دیدم.
یک سوال؟ تم را سفارشی هم کرده اید یا اینکه خود آرت فکتوری اورجینال هست.
موفق باشید.
شما یک خطای جاوا اسکریپتی دارید.در صفحه مربوطه کلید F12 رو بزنید و در پایین صفحه فضایی باز شده و خطا را بصورت زیر مشاهده خواهید کرد:
SyntaxError: missing ] after element list
[Learn More]
checkoutasguest:1199:8
note: [ opened at line 1199, column 0
checkoutasguest:1199
این مشکل به دلیل سفارشی سازی که کرده اید و یا سفارشی سازی خود تم ممکن است اتفاق افتاده باشد.سورس پروژه یا تم خود را بررسی کنید دهید.
شما همچنین میتوانید برای ذخیره فیلدهای اضافی به جداول از قبل موجود ناپ کامرس به طور مثال جدول مشتری،از سرویس ISettingService استفاده نمایید.بطور مثال:
من مدل زیر را دارم:
public class MySettings : ISettings
{
public bool IsActivated { get; set; }
public string Value{ get; set; }
}
public override void Install()
{
var settings = new MySettings
{
IsActivated = true,
Value = "Test"
};
_settingService.SaveSetting(settings);
}
var value = customer.GetAttribute<string>("Value");
سلام.
برای اتصال به دیتابیس شما باید یک کلاس ایجاد کرده که از DbContext ارث بری کند و همچنین اینترفیس IDbContext را نیز پیاده سازی کند. بطور مثال
public class MyDataContext : DbContext, IDbContext
{
public MyDataContext(string nameOrConnectionString) : base(nameOrConnectionString)
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<MyDataContext>(null);
base.OnModelCreating(modelBuilder);
}
public string CreateDatabaseInstallationScript()
{
return ((IObjectContextAdapter)this).ObjectContext.CreateDatabaseScript();
}
public void Install()
{
var dbScript = CreateDatabaseInstallationScript();
Database.ExecuteSqlCommand(dbScript);
SaveChanges();
}
public void UnInstall()
{
//drop the table
//this.DropPluginTable(this.GetTableName<CustomCategory>());
//this.DropPluginTable(this.GetTableName<CustomSet>());
}
#region IDbContext
IDbSet<TEntity> IDbContext.Set<TEntity>()
{
return base.Set<TEntity>();
}
public bool AutoDetectChangesEnabled
{
get => this.Configuration.AutoDetectChangesEnabled;
set => this.Configuration.AutoDetectChangesEnabled = value;
}
public bool ProxyCreationEnabled
{
get => this.Configuration.ProxyCreationEnabled;
set => this.Configuration.ProxyCreationEnabled = value;
}
public void Detach(object entity)
{
if (entity == null)
throw new ArgumentNullException(nameof(entity));
((IObjectContextAdapter)this).ObjectContext.Detach(entity);
}
public int ExecuteSqlCommand(string sql, bool doNotEnsureTransaction = false, int? timeout = default(int?), params object[] parameters)
{
throw new NotImplementedException();
}
public IList<TEntity> ExecuteStoredProcedureList<TEntity>(string commandText, params object[] parameters) where TEntity : BaseEntity, new()
{
throw new NotImplementedException();
}
public IEnumerable<TElement> SqlQuery<TElement>(string sql, params object[] parameters)
{
throw new NotImplementedException();
}
#endregion IDbContext
}
public partial class MyTableMap : NopEntityTypeConfiguration<MyTable>
{
public MyTableMap ()
{
this.ToTable("MyTable");
this.HasKey(x => x.Id);
this.Property(x => x.Name).HasMaxLength(200);
}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new MyTableMap());
}
public class DependencyRegistrar : IDependencyRegistrar
{
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, NopConfig config)
{
this.RegisterPluginDataContext<MyDataContext>(builder, "nop_object_context_Demo");
}
public int Order
{
get { return 0; }
}
}