اپلیکیشن مدیریت فروشگاه

راهنمای افزونه فروشگاه آنلاین

اگر دنبال تغییر بخش خاصی هستید، همین‌جا جست‌وجو کنید؛ برای نمونه «فونت»، «لودینگ»، «رنگ» یا «کش».

۱پیش از شروع — این بخش را حتماً بخوانید

این چند نکته، پاسخ بیشتر سؤال‌های رایج را روشن می‌کند.

سایت فروشگاه شما اطلاعات را داخل خودش نگه نمی‌دارد. همه اطلاعات به‌صورت آنلاین از سرور دریافت می‌شود:

مواردی که از «اپلیکیشن مدیریت فروشگاه» تنظیم می‌شوند: نام فروشگاه، لوگو، رنگ و قالب سایت، کالاها، قیمت‌ها، تخفیف‌ها، دسته‌بندی‌ها، اسلایدر صفحه اصلی، کالاهای شگفت‌انگیز، کدهای تخفیف، هزینه ارسال، درباره ما، قوانین و شماره تماس.
مواردی که از فایل‌های سایت تنظیم می‌شوند: فونت، اندازه کارت‌ها و تصاویر، صفحه لودینگ، مدت‌زمان کش و چند تنظیم ظاهری جزئی.

پس اگر می‌خواهید رنگ سایت را تغییر دهید، نیازی به ویرایش فایل‌ها نیست؛ این کار را از اپلیکیشن مدیریت فروشگاه انجام دهید. بسته به زمان کش، تغییرات معمولاً بعد از چند دقیقه روی سایت نمایش داده می‌شوند.

برای نصب به چه چیزهایی نیاز دارید؟

  • هاست با PHP نسخه ۷.۴ یا بالاتر (نسخه ۸.۳ هم تست شده است)
  • فعال بودن افزونه cURL روی هاست (معمولاً فعال است)
  • دامنه‌ای که در اپلیکیشن مدیریت فروشگاه ثبت شده باشد
  • دسترسی به File Manager هاست یا یک برنامه FTP

۲نصب مرحله‌به‌مرحله

  1. فایل‌ها را بارگذاری کنید. محتوای پوشه را در ریشه سایت قرار دهید؛ این مسیر معمولاً public_html است. دقت کنید index.php باید مستقیم داخل public_html باشد، نه داخل یک پوشه اضافه.
  2. دامنه را بررسی کنید. سایت دامنه خودش را به‌صورت خودکار تشخیص می‌دهد و لازم نیست آن را جایی وارد کنید. همان دامنه باید در اپلیکیشن مدیریت فروشگاه ثبت شده باشد.
  3. پوشه cache را بسازید و دسترسی آن را تنظیم کنید. اگر این پوشه به‌صورت خودکار ساخته نشد، آن را دستی بسازید و سطح دسترسی را روی 755 بگذارید؛ در صورت نیاز از 775 استفاده کنید.
    مهم: اگر این پوشه قابل نوشتن نباشد، سایت کند می‌شود؛ چون در هر بار نمایش، مجبور است اطلاعات را دوباره از سرور دریافت کند.
  4. فایل .htaccess را بررسی کنید. این فایل مخفی است؛ در File Manager گزینه «نمایش فایل‌های مخفی» را فعال کنید. اگر آدرس‌هایی مثل /product/12/ باز نشدند و خطای ۴۰۴ دیدید، یعنی mod_rewrite فعال نیست. از پشتیبانی هاست بخواهید آن را فعال کند.
  5. سایت را باز کنید. اگر همه‌چیز درست باشد، صفحه اصلی همراه با کالاهای شما نمایش داده می‌شود.

نصب در زیرشاخه

اگر فروشگاه را داخل یک زیرشاخه نصب کرده‌اید؛ مثلاً example.com/shop/، این خط را در فایل .htaccess از حالت توضیح خارج کنید:

RewriteBase /shop/

اگر هاست شما از nginx استفاده می‌کند

فایل .htaccess روی nginx اجرا نمی‌شود. برای این نوع هاست، مسیرهای زیر را به تنظیمات nginx اضافه کنید:

location = /api.php           { rewrite ^ /core/api.php           last; }
location = /suggest.php       { rewrite ^ /core/suggest.php       last; }
location = /products.php      { rewrite ^ /core/products.php      last; }
location = /validate_cart.php { rewrite ^ /core/validate_cart.php last; }
location = /logo.php          { rewrite ^ /core/logo.php          last; }
location = /manifest.php      { rewrite ^ /core/manifest.php      last; }
location = /robots.txt        { rewrite ^ /core/robots.php        last; }
location = /sitemap.xml       { rewrite ^ /core/sitemap.php       last; }
location ~ ^/(cache|inc|pages)/ { deny all; }
location / { try_files $uri $uri/ /index.php?$query_string; }

۳ساختار فایل‌ها — هر فایل چه کاری انجام می‌دهد؟

در ریشه سایت فقط فایل‌هایی قرار گرفته‌اند که ممکن است لازم باشد آن‌ها را ویرایش کنید.

فایلکاربردقابل ویرایش است؟
index.phpهسته اصلی سایت؛ آدرس‌ها را به صفحه‌های مربوط وصل می‌کندخیر
config.phpتنظیمات عمومی مثل کش، تعداد کالا در صفحه و لوگوی پشتیبانبله
theme.phpتنظیم اندازه‌ها؛ مثل کارت کالا، لوگو و گردی گوشه‌هابله
loading.phpصفحه لودینگ ابتدای سایتبله
verify.phpبازگشت از درگاه پرداختهرگز
help.phpهمین صفحهاختیاری
assets/فایل‌های CSS، JavaScript، فونت‌ها و تصاویردر صورت نیاز
core/سرویس‌های داخلی مثل جست‌وجو، سبد خرید و نقشه سایتخیر
inc/ و pages/موتور اصلی و صفحه‌های سایتخیر
cache/حافظه موقت سایت که معمولاً خودکار ساخته می‌شودخیر
قانون طلایی: قبل از هر ویرایش، از همان فایل یک نسخه پشتیبان بگیرید (مثلاً یک کپی با نام theme.php.bak). اگر مشکلی پیش آمد، خیلی سریع می‌توانید فایل قبلی را برگردانید.

۴تنظیمات config.php

این‌ها تنظیماتی هستند که احتمالاً بیشتر از بقیه به آن‌ها نیاز پیدا می‌کنید:

تنظیمپیش‌فرضتوضیح
PAGE_CACHE_TTL۱۲۰ مدت نگهداری نسخه آماده صفحه‌ها، برحسب ثانیه. عدد بزرگ‌تر یعنی سرعت بیشتر، اما تغییرات دیرتر دیده می‌شوند. 0 یعنی غیرفعال.
CACHE_TTL۳۰ مدت نگهداری اطلاعات فروشگاه، برحسب ثانیه.
PAGE_SIZE۴۸ تعداد کالاهایی که در هر بار بارگذاری فهرست نمایش داده می‌شوند. باقی کالاها با اسکرول اضافه می‌شوند.
MAX_PRODUCT_IN_GROUP۱۰ تعداد کالاهای نمایش‌داده‌شده در هر ردیف صفحه اصلی.
LOGO_URL لوگوی پشتیبان؛ زمانی استفاده می‌شود که لوگویی در اپلیکیشن ثبت نشده باشد.
API_SSL_VERIFYtrue اگر گواهی SSL هاست قدیمی است و خطای ارتباط دریافت می‌کنید، موقتاً آن را روی false بگذارید.
دقت کنید: فایل را با فرمت UTF-8 بدون BOM ذخیره کنید و نقطه‌ویرگول (;) انتهای خط‌ها را حذف نکنید. اگر بعد از ویرایش صفحه سفید شد، احتمالاً یک کاراکتر جا افتاده است؛ در این حالت نسخه پشتیبان را برگردانید.

۵صفحه لودینگ — loading.php

این همان بخشی است که تا زمان آماده‌شدن سایت به کاربر نشان داده می‌شود.

فایل loading.php در ریشه سایت قرار دارد و می‌توانید ظاهر آن را تغییر دهید. متغیرهای زیر داخل این فایل در دسترس هستند:

متغیرمحتوا
$loaderLogoآدرس لوگوی فروشگاه
$loaderNameنام فروشگاه
$loaderColorرنگ اصلی فروشگاه (مثلاً #0b9b00)
تنها شرط مهم: عنصر بیرونی باید id="appLoader" و کلاس app-loader را داشته باشد. جاوااسکریپت با همین دو نشانه آن را پیدا می‌کند و بعد از بارگذاری سایت پنهانش می‌کند. اگر این دو مورد را حذف کنید، لودینگ بسته نمی‌شود.

مثال: نمایش یک متن ساده

<div id="appLoader" class="app-loader">
  <p style="font-weight:700"><?= htmlspecialchars($loaderName) ?></p>
  <p>لطفاً چند لحظه صبر کنید…</p>
</div>

اگر نمی‌خواهید لودینگ نمایش داده شود، محتوای فایل را به یک div خالی با همان id تبدیل کنید.

۶رنگ و قالب سایت

این بخش از داخل فایل‌ها تنظیم نمی‌شود. رنگ اصلی سایت و انتخاب قالب (۱ یا ۲) را باید از طریق اپلیکیشن مدیریت فروشگاه تغییر دهید. سایت رنگ را از همان‌جا دریافت می‌کند و دکمه‌ها، نشان‌ها و جزئیات ظاهری به‌صورت خودکار هماهنگ می‌شوند.

بعد از تغییر رنگ، ظاهر سایت عوض نشده؟

  1. چند دقیقه صبر کنید؛ به‌اندازه مقدار PAGE_CACHE_TTL.
  2. اگر تغییری ندیدید، پوشه cache را خالی کنید؛ فقط فایل‌های داخل آن را پاک کنید و خود پوشه را نگه دارید.
  3. در مرورگر Ctrl + Shift + R بزنید تا کش مرورگر هم نادیده گرفته شود.

رنگ متن دکمه‌ها خودکار تنظیم می‌شود

اگر رنگ روشنی مثل زرد انتخاب کنید، متن دکمه‌ها خودکار تیره می‌شود؛ اگر رنگ اصلی تیره باشد، متن دکمه‌ها سفید می‌شود. لازم نیست تنظیم جداگانه‌ای انجام دهید.

حالت شب

سایت دکمه روشن/تاریک دارد و انتخاب کاربر را ذخیره می‌کند. برای تغییر رنگ‌های حالت شب، آرایهٔ $GLOBALS['THEME_DARK'] در theme.php را ویرایش کنید.

۷تغییر فونت

فونت پیش‌فرض سایت ایران‌یکان‌ایکس است.

روش ۱ — استفاده از فونت دلخواه

  1. فایل فونت را با فرمت woff2 آماده کنید؛ بهتر است سه وزن نازک، معمولی و ضخیم داشته باشد.
  2. فایل‌های فونت را داخل پوشه assets/fonts/ قرار دهید.
  3. فایل assets/css/style.css را باز کنید. خط‌های ۶ تا ۸ مربوط به تعریف فونت هستند:
    @font-face{
      font-family:'IRANYekanX';
      src:url('/assets/fonts/IRANYekanX-Light.woff2') format('woff2');
      font-weight:300;
      font-display:swap;
    }
    نام فایل‌ها را با نام فونت‌های خودتان جایگزین کنید. هر خط مربوط به یک وزن است: ۳۰۰، ۵۰۰ و ۷۰۰.
  4. اگر نام خانواده فونت را هم تغییر دادید، در همان فایل مقدار font-family را در قانون body به نام تازه تغییر دهید.
  5. ذخیره کنید و در مرورگر Ctrl + Shift + R بزنید.
حتماً از woff2 استفاده کنید: این فرمت نسبت به ttf تا حدود ۷۰٪ سبک‌تر است و باعث می‌شود سایت سریع‌تر باز شود. ابزارهای آنلاین زیادی برای تبدیل ttf به woff2 وجود دارد.

روش ۲ — تغییر اندازه فونت

در فایل style.css قانون body را پیدا کنید و مقدار font-size را تغییر دهید. سایر بخش‌های سایت نسبی تنظیم شده‌اند و با این تغییر هماهنگ می‌شوند.

۸اندازه تصاویر و کارت‌ها

همه این تنظیمات از theme.php انجام می‌شود و نیازی به ویرایش CSS نیست.

در فایل theme.php آرایه $GLOBALS['THEME_SIZES'] را پیدا کنید:

$GLOBALS['THEME_SIZES'] = array(
    'maxw'     => '1120px',  // بیشترین عرض کل صفحه
    'radius'   => '12px',    // میزان گردی گوشه‌ها
    'card-w'   => '158px',   // عرض کارت کالا
    'card-img' => '158px',   // ارتفاع تصویر روی کارت
    'logo'     => '52px',    // اندازه لوگو در سربرگ
);
هدف شماتنظیمی که باید تغییر دهید
بزرگ‌تر شدن کارت‌های کالاcard-w و card-img را با هم افزایش دهید؛ مثلاً 190px
بلندتر شدن تصویر نسبت به کارت، مثل حالت پرترهcard-img را بیشتر از card-w قرار دهید
تیزتر شدن گوشه‌هاradius را کم کنید؛ مثلاً 4px، یا آن را صفر بگذارید
تمام‌عرض شدن سایتmaxw را افزایش دهید؛ مثلاً 1400px
بزرگ‌تر شدن لوگومقدار logo را افزایش دهید
نکته: اگر card-w و card-img هم‌اندازه باشند، تصویر کالا مربع، مرتب و یکدست نمایش داده می‌شود.
تصویر خود کالاها از این بخش تغییر نمی‌کند؛ تصاویر کالا را باید در اپلیکیشن مدیریت فروشگاه آپلود کنید. برای نتیجه بهتر، تصاویر مربعی با حداقل اندازه ۸۰۰×۸۰۰ پیکسل بارگذاری کنید.

۹لوگو و آیکن سایت

لوگو

لوگو از اپلیکیشن مدیریت فروشگاه دریافت می‌شود. اگر لوگویی ثبت نکرده باشید، سایت از مقدار LOGO_URL در فایل config.php استفاده می‌کند.

سایت می‌تواند لوگوی مربعی و لوگوی کشیده را تشخیص دهد و اندازه آن را خودکار تنظیم کند. برای بهترین نتیجه، لوگوی PNG با پس‌زمینه شفاف بارگذاری کنید.

Favicon (آیکن کنار نام سایت در تب مرورگر)

فایل favicon.ico را در ریشه سایت با آیکن دلخواه خودتان جایگزین کنید. اندازه پیشنهادی ۳۲×۳۲ پیکسل است.

۱۰کش و سرعت سایت

کش یعنی سایت نسخه آماده اطلاعات را نگه می‌دارد تا دفعات بعد سریع‌تر نمایش داده شود.

تغییر داده‌ام، اما روی سایت دیده نمی‌شود!

در بیشتر موارد، دلیلش کش است. این کارها را به‌ترتیب انجام دهید:

  1. چند دقیقه صبر کنید.
  2. فایل‌های داخل پوشه cache را پاک کنید، اما خود پوشه را نگه دارید.
  3. در مرورگر Ctrl + Shift + R بزنید.
  4. اگر هنوز نسخه قبلی را می‌بینید، سایت را در حالت ناشناس (Incognito) باز کنید تا مشخص شود مشکل از کش مرورگر است یا از سرور.

تنظیم تعادل بین «سرعت» و «به‌روز بودن»

وضعیت شماپیشنهاد
قیمت‌ها را زیاد تغییر می‌دهمPAGE_CACHE_TTL را کمتر کنید؛ مثلاً ۳۰
بازدید سایت زیاد است و تغییرات کم استPAGE_CACHE_TTL را بیشتر کنید؛ مثلاً ۶۰۰
در حال تست یا توسعه هستمموقتاً مقدار را روی 0 بگذارید

سایت کند است

  • مطمئن شوید پوشه cache قابل نوشتن است؛ این مهم‌ترین عامل سرعت است.
  • تصاویر کالاها را پیش از آپلود فشرده کنید.
  • اگر تعداد کالاها زیاد است، مقدار PAGE_SIZE را کمتر کنید؛ مثلاً ۲۴.

۱۱پرداخت، دامنه و SSL

درگاه پرداخت

فایل verify.php را ویرایش نکنید. این فایل باید دقیقاً در ریشه سایت و با همین نام باقی بماند؛ بانک پس از پرداخت، کاربر را به همین آدرس برمی‌گرداند. اگر این فایل را جابه‌جا یا ویرایش کنید، ممکن است مبلغ پرداخت شود، اما سفارش ثبت نشود.

تنظیمات اصلی درگاه، مثل نوع درگاه بانکی و کلیدها، از داخل اپلیکیشن مدیریت فروشگاه انجام می‌شود.

SSL و https

سایت فروشگاهی باید حتماً https داشته باشد. بیشتر هاست‌ها گواهی رایگان Let's Encrypt ارائه می‌کنند؛ آن را از پنل هاست فعال کنید. بدون SSL، مرورگرها به کاربر هشدار «ناامن» نشان می‌دهند و ممکن است درگاه پرداخت هم درست کار نکند.

تغییر دامنه

اگر دامنه سایت را تغییر دادید، دامنه جدید را در اپلیکیشن مدیریت فروشگاه هم به‌روز کنید؛ در غیر این صورت سایت پیام «فروشگاه یافت نشد» نمایش می‌دهد.

۱۲پرسش‌های متداول

پاسخ کوتاه به سؤال‌هایی که بیشتر پرسیده می‌شوند.

چطور رنگ سایت را تغییر بدهم؟
رنگ سایت از اپلیکیشن مدیریت فروشگاه تنظیم می‌شود و داخل فایل‌های سایت نیست. بعد از تغییر رنگ، چند دقیقه صبر کنید یا پوشه cache را خالی کنید.
چطور قالب سایت را تغییر بدهم (قالب ۱ یا ۲)؟
قالب سایت هم از اپلیکیشن مدیریت فروشگاه تغییر می‌کند. فقط برای تست موقت می‌توانید در theme.php مقدار THEME_ID_OVERRIDE را روی 1 یا 2 بگذارید؛ بعد از پایان تست، حتماً دوباره آن را روی 0 قرار دهید.
کالای جدید اضافه کرده‌ام، اما در سایت نمایش داده نمی‌شود.
ابتدا مطمئن شوید وضعیت کالا در اپلیکیشن آنلاین شده باشد. سپس چند دقیقه صبر کنید یا پوشه cache را خالی کنید.
صفحه سفید شده یا خطای ۵۰۰ نمایش داده می‌شود.
این مشکل معمولاً به‌دلیل ویرایش اشتباه یک فایل PHP رخ می‌دهد؛ مثلاً حذف شدن یک نقطه‌ویرگول یا جا افتادن یک آکولاد. آخرین فایلی را که ویرایش کرده‌اید از نسخه پشتیبان برگردانید. اگر پشتیبان ندارید، همان فایل را دوباره از بسته اصلی کپی کنید.
صفحه اصلی باز می‌شود، اما صفحه کالا خطای ۴۰۴ می‌دهد.
یعنی mod_rewrite روی هاست فعال نیست یا فایل .htaccess بارگذاری نشده است. چون این فایل مخفی است، گاهی هنگام آپلود جا می‌ماند. از پشتیبانی هاست بخواهید mod_rewrite و AllowOverride All را فعال کند.
پیام «فروشگاه یافت نشد» را می‌بینم.
دامنه سایت با دامنه ثبت‌شده در اپلیکیشن مدیریت فروشگاه یکی نیست، یا فروشگاه هنوز فعال نشده است. دامنه را در اپلیکیشن بررسی کنید.
لودینگ ابتدای سایت بسته نمی‌شود.
در فایل loading.php عنصر بیرونی باید id="appLoader" و کلاس app-loader داشته باشد. اگر این دو مورد را حذف کرده باشید، جاوااسکریپت نمی‌تواند آن را پیدا و پنهان کند.
سایت روی موبایل درست نمایش داده نمی‌شود.
اگر مقدار card-w را خیلی بزرگ کرده باشید، کارت‌ها روی موبایل جا نمی‌شوند. بهتر است این مقدار را کمتر از 200px نگه دارید.
می‌خواهم فقط یک متن کوچک را تغییر بدهم؛ کجا باید بروم؟
متن‌های ثابت معمولاً داخل پوشه pages/ قرار دارند. قبل از ویرایش پشتیبان بگیرید و فقط متن بین تگ‌ها را تغییر دهید، نه کدها را.
آیا با آپدیت افزونه تنظیمات من پاک می‌شود؟
قبل از آپدیت، از فایل‌های config.php، theme.php و loading.php پشتیبان بگیرید. سایر فایل‌ها را می‌توانید بدون نگرانی جایگزین کنید.
هزینه ارسال، کد تخفیف و قوانین را کجا تنظیم کنم؟
همه این موارد در اپلیکیشن مدیریت فروشگاه تنظیم می‌شوند. سایت فقط آن‌ها را نمایش می‌دهد.
هنوز پاسخ سوالم را پیدا نکرده‌ام.
از پشتیبانی کمک بگیرید. در پیام خود حتماً آدرس سایت، نام مرورگر و آخرین فایلی را که ویرایش کرده‌اید بنویسید.