ساکحلب/یی۲-آمر

یی۲-آمر یک ماژول برای سفارشات سبد خرید سایت است

dev-master 2017-04-03 04:39 UTC

This package is not auto-updated.

Last update: 2024-09-20 20:10:59 UTC


README

این ماژول برای پیاده‌سازی عملکرد سفارش در سایت است. در حال حاضر، عناصر سبد خرید به سفارش اضافه می‌شوند. پیشنهاد می‌کنم برای استفاده به عنوان سرویس سبد خرید، ماژول pistol88/yii2-cart را استفاده کنید.

عملکرد

  • افزودن سفارش، مشاهده و مدیریت سفارشات در پنل مدیریت
  • مدیریت فیلدهای سفارش در پنل مدیریت
  • مدیریت روش‌های تحویل و پرداخت در پنل مدیریت

نصب

دستور زیر را اجرا کنید

php composer require pistol88/yii2-order "*"

یا آن را به composer.json اضافه کنید

"pistol88/yii2-order": "*",

و اجرا کنید

php composer update

پس از آن، پایگاه داده را مهاجرت کنید

php yii migrate --migrationPath=vendor/pistol88/yii2-order/migrations

پس از آن، ماژول را با سبد خرید مرتبط کنید. ماژول pistol88/yii2-cart را نصب کنید و آن را به ابتدای فایل پیکربندی برنامه خود اضافه کنید

yii::$container->set('pistol88\order\interfaces\Cart', 'pistol88\order\drivers\Pistol88Cart');

برای اتصال ماژول به سبد خرید دیگر

yii::$container->set('pistol88\order\interfaces\Cart', 'app\objects\Cart');

app\objects\Cart باید شامل کلاسی باشد که \pistol88\order\interfaces\Cart را پیاده‌سازی می‌کند.

اتصال و پیکربندی

ماژول order را به فایل پیکربندی برنامه اضافه کنید

    'modules' => [
        'order' => [
            'class' => 'pistol88\order\Module',
            'layoutPath' => 'frontend\views\layouts',
            'successUrl' => '/page/thanks', //Страница, куда попадает пользователь после успешного заказа
            'ordersEmail' => 'test@yandex.ru', //Мыло для отправки заказов
        ],
        //...
    ]

تمام تنظیمات ماژول

  • orderStatuses - وضعیت‌ها (پیش‌فرض: 'new' => 'جدید', 'approve' => 'تایید شده', 'cancel' => 'لغو شده', 'process' => 'در حال پردازش', 'done' => 'پایان یافته')

  • defaultStatus - وضعیت پیش‌فرض سفارش (پیش‌فرض 'new')

  • successUrl - URL، که در صورت موفقیت در خرید مشتری به آن هدایت می‌شود (پیش‌فرض /order/info/thanks/)

  • ordersEmail - ایمیل مدیر، که ایمیل‌های سفارش‌ها به آن ارسال می‌شوند

  • robotEmail - ایمیل ربات (پیش‌فرض no-reply@localhost)

  • robotName - نام ربات پست الکترونیکی (پیش‌فرض Robot)

  • orderColumns - ماسک فیلدهایی برای نمایش. فیلدهای سفارشی به عنوان آرایه‌ای شامل ID و نام فیلد اضافه می‌شوند: ['field' => 2, 'label' => 'اتومبیل']

  • dateFormat - فرمت تاریخ (پیش‌فرض d.m.Y H:i:s)

  • cartService - نام کامپوننت، که سبد خرید را پیاده‌سازی می‌کند (پیش‌فرض cart). رابط را در pistol88/yii2-cart ببینید.

  • currency - ارز، پیش‌فرض روبل

  • currencyPosition - موقعیت نشان ارز در مقابله با قیمت (before یا after)

  • priceFormat - فرمت قیمت (پیش‌فرض [2, '.', ''])

  • adminRoles - لیست نقش‌هایی که به CRUD سفارش دسترسی دارند (پیش‌فرض ['admin', 'superadmin'])

سرویس‌ها

این ماژول به طور خودکار در yii2 (در Service locator) کامپوننت order (سرویس) را به عنوان یک سرویس در دسترس قرار می‌دهد، که به طور جهانی از طریق yii::$app->order قابل دسترسی است و سرویس‌های زیر را ارائه می‌دهد

  • get($id) - دریافت سفارش توسط ID
  • getStatInMoth($month) - دریافت آمار سفارشات در ماه
  • getStatByDate($date) - دریافت آمار سفارشات در روز
  • getStatByDatePeriod($dateStart, $dateStop) - دریافت آمار سفارشات در بازه زمانی
  • getStatByModelAndDatePeriod($model, $dateStart, $dateStop) - دریافت آمار سفارشات مدل مشخصی در بازه زمانی

ویجت‌ها

ویجت pistol88\order\widgets\OrderForm مسئول نمایش فرم سفارش است

<?=OrderForm::widget();?>

دکمه "سفارش یک کلیک" - pistol88\order\widgets\OneClick

<?=OneClick::widget(['model' => $model]);?>

تغییرات

در ماژول

  • create - ایجاد سفارش
  • delete_order - حذف سفارش
  • delete_element - حذف عنصر سفارش

مثال استفاده از طریق پیکربندی

    'order' => [
        'class' => 'pistol88\order\Module',
        'on create' => function($event) {
            send_sms(...); //Отправляем СМС оповещение
        },
    ],

پرداخت آنلاین

برای اضافه کردن روش پرداخت، به ?r=/order/payment-type/index بروید، روش جدید را اضافه کنید و در فیلد "ویجت" کلاس ویجت پرداخت که فرم پرداخت را ارائه می‌دهد را مشخص کنید. ویجت‌های پرداخت به صورت جداگانه نصب می‌شوند.