بحث و گفتگو در مورد تگ [ ترفند پرستاشاپ ]

رفع مشکل سرعت پنل مدیریت پرستاشاپ

سلام

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

در این مطلب چند تغییر جهت بهبود سرعت بارگذاری پنل مدیریت پرستاشاپ رو قرار بدم.

۱- حذف فایل مربوط به بارگذاری لود نقشه گوگل : این نقشه در صفحه جزئیات سفارش نمایش داده می شود. برای این کار فایل زیر رو باز کنید:

controllers\admin\AdminOrdersController.php

بعد به دنبال خط زیر باشید و در ابتدای خط دوکاراکتر بک اسلش اضافه کنید که به صورت زیر می شود

$this->addJS('https://maps.googleapis.com/maps/api/js?v=3.exp');

// $this->addJS('https://maps.googleapis.com/maps/api/js?v=3.exp');

۲- حذف دریافت آواتار از سایت پرستاشاپ: همینطور که میدونید این روز ها اتصال به سایت های خارجی فیلترنشده هم دچار مشکل هست ، به همین دلیل یکی از دلایل مشکل سرعت بارگذاری همین آواتار هست که برای حذف فایل زیر رو باز کنید:

نکته: این تغییر فقط در نسخه ۱.۷.۷ به پایین نیاز هست و نسخه های بالاتر این مشکل رو ندارند.

classes\Employee.php

در این فایل ، تابع getImage رو پیدا کنید. که در تصویر زیر مشخص کرده ایم:

در ابتدای این تابع خط کد مشخص شده در زیر اضافه می گردد:

    public function getImage()
    {
		return Tools::getAdminImageUrl('prestashop-avatar.png'); // این خط اضافه شده است

        if (!Validate::isLoadedObject($this)) {
            return Tools::getAdminImageUrl('prestashop-avatar.png');
        }

        return Tools::getShopProtocol() . 'profile.prestashop.com/' . urlencode($this->email) . '.jpg';
    }

در صورتی که مورد دیگری برای بهبود سرعت وجود داشته باشد در همین گفتگو اضافه خواهم کرد.

رفع مشکل حذف نشدن کدتخفیف با وجود منقضی شدن

سلام

در پرستاشاپ ۱.۷ تغییراتی در اعتبارسنجی کدتخفیف ایجاد شده که باعث می شود اعتبارسنجی کدتخفیف صرفا در زمان واردسازی و افزودن کدتخفیف انجام شود.

این موضوع یک ویژگی در پرستاشاپ ۱.۷ هست که عملا برای خیلی از کسب و کارها یک باگ محسوب می شود. فرض کنید که کدتخفیف ویژه ای برای یک جشنواره خاص چند روز در نظر گرفتید ، مشتری کدتخفیف روی سبدخرید اعمال میکند ولی خرید خودش رو تکمیل نمیکند.

بعد از چند روز که تاریخ استفاده از کدتخفیف به اتمام رسیده هست باز هم مشتری می تواند از کدتخفیف اعمال شده در سبدخرید استفاده کنید و مراحل سفارش را همراه با تخفیف انجام دهد.

اعتبارسنجی هایی که در این حالت انجام نمی شود:

۱- فعال بودن قانون سبدخرید

۲- تعداد باقی مانده از قانون سبدخرید

۳- زمان شروع و پایان قانون سبدخرید

توضیحات پرستاشاپ که در بین کدهای هسته پرستاشاپ (اینجا) در این زمینه قرار داده شده است :

// All these checks are necessary when you add the cart rule the first time, so when it's not in cart yet
// However when it's in the cart and you are checking if the cart rule is still valid (when performing auto remove)
// these rules are outdated For example:
//  - the cart rule can now be disabled but it was at the time it was applied, so it doesn't need to be removed
//  - the current date is not in the range any more but it was at the time
//  - the quantity is now zero but it was not when it was added

چگونه مشکل رو برطرف کنیم؟

برای رفع این مشکل نیاز به تغییر کوچکی در هسته پرستاشاپ وجود دارد ، فایل زیر رو باز کنید:

classes\CartRule.php

به دنبال خط زیر بگردید (در نسخه فعلی یعنی پرستاشاپ ۱.۷.۸.۳ در خط ۶۸۷ قرار دارد ) :

if (!$alreadyInCart) {

این خط رو به صورت زیر تغییر دهید: (در واقع خط قبلی غیرفعال شده و یک خط جدید اضافه می گردد.)

// if (!$alreadyInCart) {
if (true) {

با احترام

رفع مشکل لاگ اوت شدن کاربر بعد از پرداخت موفق و برگشت به سایت

سلام

یکی از مشکلات پرداخت که در یک سال اخیر خیلی مشاهده شده ، مربوط به بروز رسانی تنظیمات مرورگرها و در نتیجه لاگ اوت شدن مشتری بعد از پرداخت موفق هنگام بازگشت به سایت هست.

طبق این تغییرات مرورگرهایی مثل فایرفاکس و کروم در نسخه های جدید کوکی هایی که براساس SameSite=None; Secure تنظیم نشده باشند رو به دلایل امنیتی مسدود و حذف می کنند.

حذف کوکی هم باتوجه به اینکه اطلاعاتی مثل کاربر لاگین شده ، سبدخرید و ... با کمک کوکی ها ذخیره میشوند عملا باعث لاگ اوت شدن کاربر از سایت و عدم تایید پرداخت سفارش خواهد شد.

راه حل :

اگر از نسخه ۱.۷.۸ به بالا استفاده میکنید به مسیر «پارامترهای پیشرفته / مدیریت» برید و گزینه «SameSite کوکی» رو بروی «هیچ یک» تنظیم کنید.

نکته : دقت کنید حتما باید در سایت ssl فعال باشد.

اما در صورتی که از نسخه قدیمی تر استفاده می کنید ، باید کد زیر رو به ابتدای فایل htaccess اضافه کنید : (ممنون از آقای ذاکریان بابت اشتراک گذاشتن این راه حل)

Header always edit Set-Cookie ^(.*)$ $1;Secure;SameSite=None

تاکید میکنم که حتما باید ssl در سایت فعال باشد.

رفع مشکل ثبت سفارش با وضعیت خطای پرداخت در پرستاشاپ ۱.۷.۸

سلام

در نسخه جدید پرستاشاپ یعنی ۱.۷.۸ به دلیل تغییراتی که وجود داره وضعیت اولیه سفارش هایی که به صورت پرداخت آنلاین هستن ، به جای وضعیت «پرداخت تایید شده» با وضعیت «خطای پرداخت» ثبت میشه!

توی این نسخه به خاطر امنیت بیشتر ،‌بین مبلغ پرداخت شده و مبلغ کل سفارش مقایسه ای توسط هسته پرستاشاپ انجام میشه ،‌ولی خوب مشکلی که وجود داره اینه که در این مقایسه پرستاشاپ مبلغ کل سفارش رو با دو رقم اعشار و مبلغ پرداخت شده با رقم اعشار واحدپولی (که برای ریال و تومان صفر هست) محاسبه میکنه.

یعنی مثلا 1,000.00 رو با 1,000 مقایسه میکنه و در نتیجه سفارش با خطای پرداخت ثبت میشه.

اگر شما هم این مشکل رو دارید از راه حلی که توضیح میدم میتونید مشکل رو برطرف کنید ، فایل زیر رو باز کنید:

config/config.inc.php 

به دنبال خط زیر بگردید : (در نسخه فعلی پرستاشاپ یعنی ۱.۷.۸.۱ در خط ۱۵۱ قرار داره)

define('_PS_PRICE_COMPUTE_PRECISION_', 2);

در این خط باید مقدار عدد دو مقابل عبارت «_PS_PRICE_COMPUTE_PRECISION_» را به صفر تغییر دهید ، که به صورت زیر میشه :

define('_PS_PRICE_COMPUTE_PRECISION_', 0);

دقت کنید که باتوجه به تغییر در فایل هسته ، در صورت ارتقا نسخه باید مجدد اقدام به این تغییر کنید.

راه حل دومی هم وجود داره که تغییر تعداد اعشار واحد پولی فروشگاه به دو هست که فکر نمی کنم برای فروشگا های ایران خیلی جالب باشه که دو صفر اضافه به مبلغ کالا اضافه بشه.

ایجاد گفتگو جدید

اگر سوالی دارید ، اگر چالشی در فروشگاه خود دارید ، می توانید گفتگو خود را ایجاد نمایید.

ایجاد گفتگو جدید

دوره های آموزشی

Loading...