Merge pull request #28 from bagisto/master
This commit is contained in:
commit
c2c57a34ca
26
.env.example
26
.env.example
|
|
@ -1,13 +1,13 @@
|
|||
APP_NAME=Bagisto
|
||||
APP_ENV=local
|
||||
APP_VERSION=1.1.0
|
||||
APP_VERSION=1.1.2
|
||||
APP_KEY=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
APP_TIMEZONE=
|
||||
APP_TIMEZONE=Asia/Kolkata
|
||||
APP_LOCALE=en
|
||||
LOG_CHANNEL=stack
|
||||
APP_CURRENCY=
|
||||
APP_CURRENCY=USD
|
||||
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=127.0.0.1
|
||||
|
|
@ -47,3 +47,23 @@ PUSHER_APP_CLUSTER=mt1
|
|||
|
||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
|
||||
FACEBOOK_CLIENT_ID=
|
||||
FACEBOOK_CLIENT_SECRET=
|
||||
FACEBOOK_CALLBACK_URL=https://yourhost.com/customer/social-login/facebook/callback
|
||||
|
||||
TWITTER_CLIENT_ID=
|
||||
TWITTER_CLIENT_SECRET=
|
||||
TWITTER_CALLBACK_URL=https://yourhost.com/customer/social-login/twitter/callback
|
||||
|
||||
GOGGLE_CLIENT_ID=
|
||||
GOGGLE_CLIENT_SECRET=
|
||||
GOGGLE_CALLBACK_URL=https://yourhost.com/customer/social-login/google/callback
|
||||
|
||||
LINKEDIN_CLIENT_ID=
|
||||
LINKEDIN_CLIENT_SECRET=
|
||||
LINKEDIN_CALLBACK_URL=https://yourhost.com/customer/social-login/linkedin/callback
|
||||
|
||||
GITHUB_CLIENT_ID=
|
||||
GITHUB_CLIENT_SECRET=
|
||||
GITHUB_CALLBACK_URL=https://yourhost.com/customer/social-login/github/callback
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
APP_NAME=Laravel
|
||||
APP_ENV=local
|
||||
APP_VERSION=1.1.0
|
||||
APP_VERSION=1.1.2
|
||||
APP_KEY=base64:G4KY3tUsTaY9ONo1n/QyJvVLQZdJDgbIkSJswFK01HE=
|
||||
APP_DEBUG=true
|
||||
APP_URL=http://localhost
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/docker-compose-collection
|
||||
/bin
|
||||
/node_modules
|
||||
/public/hot
|
||||
/public/storage
|
||||
|
|
@ -22,7 +21,6 @@ yarn.lock
|
|||
package-lock.json
|
||||
yarn.lock
|
||||
.php_cs.cache
|
||||
storage/
|
||||
storage/*.key
|
||||
/docker-compose-collection/
|
||||
/resources/themes/velocity/*
|
||||
/resources/themes/velocity/*
|
||||
|
|
@ -2,7 +2,523 @@
|
|||
|
||||
#### This changelog consists the bug & security fixes and new features being included in the releases listed below.
|
||||
|
||||
## **v1.1.0 (20th of March 2020)** - *Release*
|
||||
## **v1.1.3 (19th of June 2020)** - *Release*
|
||||
|
||||
* [feature] - Customer group price for products implemented
|
||||
|
||||
* [feature] - Image search feature added with tensorflow.js
|
||||
|
||||
* [feature] - Migrated to Laravel 7
|
||||
|
||||
* [feature] - Search engine optimization with rich snippet
|
||||
|
||||
|
||||
* #343 [fixed] - Translation strings are missing from awful amount of controllers when returning responses with flash. And optimise translation strings for faster static translations.
|
||||
|
||||
* #824 [fixed] - Framework is not supporting I.E 11 browser.
|
||||
|
||||
* #838 [fixed] - Packages as composer dependency
|
||||
|
||||
* #985 [fixed] - Dynamically insert products
|
||||
|
||||
* #1258 [fixed] - If payment is done through paypal then invoice should generate automatically and status of Order should be processing.
|
||||
|
||||
* #1362 [fixed] - Site logo and Category Image are broken
|
||||
|
||||
* #1370 [fixed] - install fails at the last step
|
||||
|
||||
* #1522 [fixed] - Quick Links broken
|
||||
|
||||
* #1656 [fixed] - Validation error in Phone Field while Adding Address
|
||||
|
||||
* #1981 [fixed] - If customer update his address at time of checkout and save this address then address doesn't get save and also on checkout page old address displays.
|
||||
|
||||
* #2009 [fixed] - Using AWS S3 for storage
|
||||
|
||||
* #2060 [fixed] - auto generate coupon accordion not getting hidden while selecting no specific coupons
|
||||
|
||||
* #2159 [fixed] - Taking more time to load product details in shopping cart.
|
||||
|
||||
* #2415 [fixed] - Add TO CART button should replace by “BOOk NOW” button for booking product.
|
||||
|
||||
* #2590 [fixed] - hi everyone i'm wondering if customers after register could give a referral code ??
|
||||
|
||||
* #2702 [fixed] - Getting broken image for products and category.
|
||||
|
||||
* #2720 [fixed] - Error during migration on php artisan migrate
|
||||
|
||||
* #2725 [fixed] - Variants should not be created if cofigurable product created failed
|
||||
|
||||
* #2762 [fixed] - Seeder: SQL Error: Duplicate entry for '1' key 'PRIMARY'
|
||||
|
||||
* #2766 [fixed] - Needs User friendly UI for the event booking in product page
|
||||
|
||||
* #2789 [fixed] - Product channel and locale dropdowns in the admin dashboard not working
|
||||
|
||||
* #2795 [fixed] - Cart error merging if you authenticate having items with low stock
|
||||
|
||||
* #2800 [fixed] - Add the ability to change Attribute Family for Products
|
||||
|
||||
* #2804 [fixed] - There should be order review section instead of complete section on checkout page
|
||||
|
||||
* #2805 [fixed] - the sku should be all in caps
|
||||
|
||||
* #2844 [fixed] - showing product image of each color in configurable product
|
||||
|
||||
* #2863 [fixed] - Search Product Name and Description
|
||||
|
||||
* #2868 [fixed] - Cart (customer) address not persisted during the checkout
|
||||
|
||||
* #2874 [fixed] - Order, payment process and payment metadata
|
||||
|
||||
* #2888 [fixed] - Always Default locale should be selected when add new product for each channels
|
||||
|
||||
* #2889 [fixed] - timezone drop down field is not visible in web installer
|
||||
|
||||
* #2893 [fixed] - When creating a shipment, display items invoiced
|
||||
|
||||
* #2931 [fixed] - Customer pays order in PayPal but there is no record in bagisto
|
||||
|
||||
* #2936 [fixed] - change the admin route for another
|
||||
|
||||
* #2942 [fixed] - Randomize New and Featured Products
|
||||
|
||||
* #2949 [fixed] - failed to migrate with new database using installer
|
||||
|
||||
* #2950 [fixed] - multiple error message on installer
|
||||
|
||||
* #2964 [fixed] - Exception when buying non stockable item via API
|
||||
|
||||
* #2969 [fixed] - Cancel icon is not visible in velocity theme for customer order detail
|
||||
|
||||
* #2972 [fixed] - can add to homescreen on mobile device in velocity theme
|
||||
|
||||
* #2974 [fixed] - Thumbnails are not generating on mobile ifproduct has more than 4 photos
|
||||
|
||||
* #2886 [fixed] - Configuration option for Compare
|
||||
|
||||
* #2985 [fixed] - Product category is not saving
|
||||
|
||||
* #2987 [fixed] - mult address
|
||||
|
||||
* #2990 [fixed] - Facebook Pixel integration for Laravel
|
||||
|
||||
* #2991 [fixed] - Filters not showing in small devices
|
||||
|
||||
* #2994 [fixed] - Shipping method not getting updated after changing the zip code.
|
||||
|
||||
* #2995 [fixed] - filter is not showing when search product from search bar
|
||||
|
||||
* #2996 [fixed] - Incomplete products JSON when type is grouped or bundled
|
||||
|
||||
* #2997 [fixed] - Category show sidebar
|
||||
|
||||
* #3000 [fixed] - arabic product in home page Not lined up in one format
|
||||
|
||||
* #3001 [fixed] - Getting Error Exception when view order details
|
||||
|
||||
* #3004 [fixed] - Category Deactivation not working
|
||||
|
||||
* #3005 [fixed] - One page checkout creating new address in profile every time.
|
||||
|
||||
* #3009 [fixed] - Featured product slider and new product slider is not working
|
||||
|
||||
* #3011 [fixed] - The product is in cart or not
|
||||
|
||||
* #3014 [fixed] - Support for Responsive Admin Panel
|
||||
|
||||
* #3018 [fixed] - Icons are not showing on imac
|
||||
|
||||
* #3020 [fixed] - Images can not add on velocity theme
|
||||
|
||||
* #3021 [fixed] - Deactivating the last category of level1 renders only level2 etc. from deactivated category
|
||||
|
||||
* #3022 [fixed] - storage/ should not be included in .gitignore
|
||||
|
||||
* #3024 [fixed] - Blank order comment shouldn't added
|
||||
|
||||
* #3025 [fixed] - save address return error 500
|
||||
|
||||
* #3026 [fixed] - Date validation error when editing Booking Products
|
||||
|
||||
* #3029 [fixed] - velocity theme not fully responsive
|
||||
|
||||
* #3032 [fixed] - [Critical] Onecheckout preventing to continue to shipping method after selecting address
|
||||
|
||||
* #3035 [fixed] - Please update pwa for bagisto
|
||||
|
||||
* #3036 [fixed] - Shipping address options not shown
|
||||
|
||||
* #3037 [fixed] - error mysql 8.0.20 bagisto v 1.1.2
|
||||
|
||||
* #3038 [fixed] - Trying to get property 'code' of non-object
|
||||
|
||||
* #3040 [fixed] - Api logout not working..
|
||||
|
||||
* #3044 [fixed] - Getting exception when click on view shopping cart if adding group product in cart that contains variants of configurable product.
|
||||
|
||||
* #3047 [fixed] - The qty of configurable product is 0 when merging cart
|
||||
|
||||
* #3048 [fixed] - "nwidart/laravel-modules": "^3.2", is the wrong version for laravel 6.*
|
||||
|
||||
* #3050 [fixed] - Can't override models
|
||||
|
||||
* #3051 [fixed] - error while migrate bagisto manually from console command
|
||||
|
||||
* #3053 [fixed] - [Velocity] Checkout: Shipping/Billing Address Name, email does not get updated
|
||||
|
||||
* #3054 [fixed] - customer is getting exception while cancel order
|
||||
|
||||
* #3061 [fixed] - CORS errors
|
||||
|
||||
* #3067 [fixed] - PHP Notice: date_default_timezone_set(): Timezone ID 'Asia/JakartaAsia/Kolkata' is invalid
|
||||
|
||||
* #3068 [fixed] - Inactive inventory source are get select in channel and products
|
||||
|
||||
* #3070 [fixed] - Edit Attribute -> Add Option or Swatch Item Error 404 for Indonesia(id) country code
|
||||
|
||||
* #3073 [fixed] - HTML entities are not being decoded when editing attribute options
|
||||
|
||||
* #3076 [fixed] - checkout disable when add new shipping address
|
||||
|
||||
* #3077 [fixed] - How to change validation messages to spanish not working
|
||||
|
||||
* #3079 [fixed] - Tracking Number in My Account
|
||||
|
||||
* #3087 [fixed] - after installation, first product registration does not open detailed page, I only opened from the second product
|
||||
|
||||
* #3089 [fixed] - not getting price after changing configurable options
|
||||
|
||||
* #3090 [fixed] - error mysql8
|
||||
|
||||
* #3095 [fixed] - pending orders detail page is blank when viewing in arabic locale
|
||||
|
||||
* #3096 [fixed] - error when add product in compare list from the search product page
|
||||
|
||||
* #3097 [fixed] - getting console error when remove cart item
|
||||
|
||||
* #3113 [fixed] - catalog storefront configuration for per product page is not working
|
||||
|
||||
* #3115 [fixed] - minify the velocity.js for gtmetrix
|
||||
|
||||
* #3118 [fixed] - Home page doesn't display categories and language bar doesn't work.
|
||||
|
||||
* #3120 [fixed] - admin panel multi locale
|
||||
|
||||
* #3135 [fixed] - How can I cad comment box in checkout form.
|
||||
|
||||
* #3136 [fixed] - configurable product variant name gets removed from the catalog list
|
||||
|
||||
* #3140 [fixed] - API for more than one locale !
|
||||
|
||||
* #3144 [fixed] - error if selecting only one currency
|
||||
|
||||
* #3146 [fixed] - how to configure aws smtp server on bagisto
|
||||
|
||||
* #3150 [fixed] - Attribute not showing on the creating new configurable product page
|
||||
|
||||
* #3153 [fixed] - Free Shipping and Flat Rate Shipping not desable
|
||||
|
||||
* #3158 [fixed] - Column not found: 1054 Unknown column 'symbol' in 'field l
|
||||
|
||||
* #3160 [fixed] - Disabled products are not removed from bundles
|
||||
|
||||
* #3161 [fixed] - Trying to access array offset on value of type null
|
||||
|
||||
* #3164 [fixed] - getting exception when add/edit configurable product
|
||||
|
||||
* #3171 [fixed] - fixed amount is applied on product for customer group price instead of apply in %
|
||||
|
||||
* #3172 [fixed] - description or name is missing for comparable items if customer login
|
||||
|
||||
* #3183 [fixed] - ErrorException
|
||||
|
||||
* #3184 [fixed] - Site showing blank page on 404
|
||||
|
||||
* #3186 [fixed] - replace payment method text with an image on the checkout page
|
||||
|
||||
* #3190 [fixed] - Bagisto v1.1.2 velocity responsive theme issue on iPhone and iPads
|
||||
|
||||
* #3191 [fixed] - Bagisto v1.1.2 velocity responsive theme issue on iPhone and iPads
|
||||
|
||||
* #3197 [fixed] - Call to undefined function str_limit() when view product in velocity theme
|
||||
|
||||
* #3199 [fixed] - Getting exception when click on product.
|
||||
|
||||
* #3202 [fixed] - Getting exception in creating grouped product.
|
||||
|
||||
* #3203 [fixed] - Getting translation issue in price field of downloadable product.
|
||||
|
||||
* #3204 [fixed] - Getting exception when changing currency from search page.
|
||||
|
||||
* #3205 [fixed] - Able to create the product without selecting required toggles button.
|
||||
|
||||
* #3208 [fixed] - Customer group price functionality is not working.
|
||||
|
||||
* #3207 [fixed] - Issue in variant product of configurable, only one variant name display at a time and on refreshing it changes.
|
||||
|
||||
* #3214 [fixed] - Getting exception on forgot password link.
|
||||
|
||||
* #3215 [fixed] - when updating an attribute to 'use_in_flat', bagisto should update the product_flat table with the values of those products
|
||||
|
||||
* #3218 [fixed] - virtual product not shipping step..
|
||||
|
||||
* #3219 [fixed] - fix the date/time format in booking products
|
||||
|
||||
* #3222 [fixed] - UI issue in event ticket booking special price date field
|
||||
|
||||
* #3232 [fixed] - homepage is showing 404 error page in both theme
|
||||
|
||||
* #3234 [fixed] - UI Issue for cart, wishlist, compare icon number indicator in RTL
|
||||
|
||||
* #3236 [fixed] - selected category gets removed from the search in RTL
|
||||
|
||||
* #3235 [fixed] - need space b/w sign in & sign up box in mini login window for RTL
|
||||
|
||||
* #3237 [fixed] - Options of attribute not display as per its position
|
||||
|
||||
* #3238 [fixed] - Trait 'Illuminate\Foundation\Auth\SendsPasswordResetEmails' not found
|
||||
|
||||
* #3240 [fixed] - Payment methods in onepage checkout are not visible completely in RTL
|
||||
|
||||
* #3241 [fixed] - login fields(email,passwords) are in the center when in RTL
|
||||
|
||||
* #3246 [fixed] - fix icon layout in edit booking product page for RTL
|
||||
|
||||
* #3248 [fixed] - fix css for cancel icon on success alert RTL
|
||||
|
||||
* #3249 [fixed] - icons are overlapped in comparison page for RTL
|
||||
|
||||
* #3250 [fixed] - find product by image in search attempt to an error if app_url isn't define
|
||||
|
||||
* #3254 [fixed] - exception on changing locale to Italian
|
||||
|
||||
* #3255 [fixed] - Appointment booking slot duration missing in UI for RTL
|
||||
|
||||
* #3265 [fixed] - recently view product heading is overlapped in RTL
|
||||
|
||||
* #3270 [fixed] - fix icon design on catalog rule when select special price as condition
|
||||
|
||||
* #3272 [fixed] - getting exception when booking product type is not same as cart item for same product id
|
||||
|
||||
* #3273 [fixed] - fix calendar icon present at dashboard in RTL
|
||||
|
||||
* #3274 [fixed] - Installer Blank Page After Migration
|
||||
|
||||
* #3286 [fixed] - fix calendar icon css at admin dashboard
|
||||
|
||||
* #3289 [fixed] - Main product is not showing in catalog grid if configurable product hasn't been created completely.
|
||||
|
||||
* #3297 [fixed] - getting exception when save booking product from edit page
|
||||
|
||||
* #3298 [fixed] - Header content category always redirect to 404 error page
|
||||
|
||||
|
||||
|
||||
## **v1.1.2 (24th of March 2020)** - *Release*
|
||||
|
||||
* [feature] - Now customer can cancel order.
|
||||
|
||||
* [feature] - Auto and manual currency exchange rates update feature added.
|
||||
|
||||
|
||||
|
||||
* #797 [fixed] - Add new module
|
||||
|
||||
* #2453 [fixed] - Velocity theme is not loading on fresh instance
|
||||
|
||||
* #2691 [fixed] - Shipping and Payment methods automatically selected on Checkout oage
|
||||
|
||||
* #2752 [fixed] - Error when you create or update a new catalog under root
|
||||
|
||||
* #2793 [fixed] - Stock Check Incorrect for Configurable Items
|
||||
|
||||
* #2826 [fixed] - Not able to view cart icon
|
||||
|
||||
* #2869 [fixed] - Updating "Velocity meta data" throws QueryException
|
||||
|
||||
* #2871 [fixed] - Refund throws "Undefined index: shipping" error
|
||||
|
||||
* #2875 [fixed] - Deleting brands that have been assigned to products causes checkout error
|
||||
|
||||
* #2884 [fixed] - Undefined Index slot: when add to cart rental booking
|
||||
|
||||
* #2890 [fixed] - cart rule condition (price in cart) always set to equal or less than when select greater than/less than
|
||||
|
||||
* #2895 [fixed] - The type hint of view in this blade file is 'address' - there is no tag in any provider which loads view with this type hint.
|
||||
|
||||
* #2896 [fixed] - There are two fields with having same value of name attribute one is hidden and other is of its desired type - is this redundant code or its solving any purpose?
|
||||
|
||||
* #2897 [fixed] - Inventory status field should be passed through validation for boolean in its backend controller.
|
||||
|
||||
* #2898 [fixed] - error when viewing a category and then wanting to change the language of the page in mobile view
|
||||
|
||||
* #2899 [fixed] - showing the configured products as radio button
|
||||
|
||||
* #2900 [fixed] - getting different variant of a configurable product in front end
|
||||
|
||||
* #2901 [fixed] - Error when creating a category
|
||||
|
||||
* #2908 [fixed] - A class is missing from the Velocity ProductRepositiry file
|
||||
|
||||
* #2914 [fixed] - Filter not showing on mobile, also sorting not working on mobile
|
||||
|
||||
* #2915 [fixed] - filters are missing on mobile view.
|
||||
|
||||
* #2919 [fixed] - Header Content not working on other languages
|
||||
|
||||
* #2925 [fixed] - exception for php version 7.4
|
||||
|
||||
* #2938 [fixed] - Extend Model Class
|
||||
|
||||
* #2939 [fixed] - get product description for API without html tags
|
||||
|
||||
* #2940 [fixed] - creating categories have error
|
||||
|
||||
* #2943 [fixed] - Scroll images is not working
|
||||
|
||||
* #2945 [fixed] - API product detail return empty array
|
||||
|
||||
* #2954 [fixed] - The merging cart function does not work when already added all items of product into customer cart
|
||||
|
||||
|
||||
## **v1.1.0 (24th of March 2020)** - *Release*
|
||||
|
||||
* #797 [fixed] - Add new module
|
||||
|
||||
* #826 [fixed] - Impossible to create the root directory "".
|
||||
|
||||
* #2152 [fixed] - Product images are not showing
|
||||
|
||||
* #2329 [fixed] - Getting exception on frontend after updating meta data.
|
||||
|
||||
* #2354 [fixed] - possible integrate this payment
|
||||
|
||||
* #2543 [fixed] - Sliders Text should be translatable
|
||||
|
||||
* #2558 [fixed] - Sliders Text should be translatable
|
||||
|
||||
* #2619 [fixed] - Issue when category slug & product slug are same
|
||||
|
||||
* #2684 [fixed] - API checkout/cart returns null for guest user
|
||||
|
||||
* #2691 [fixed] - Shipping and Payment methods automatically selected on Checkout oage
|
||||
|
||||
* #2706 [fixed] - Getting exception on editing category for pt_BR locale in php 7.4
|
||||
|
||||
* #2708 [fixed] - Able to create booking product from back date.
|
||||
|
||||
* #2713 [fixed] - fix the invoice header in pdf
|
||||
|
||||
* #2726 [fixed] - is shop.js the vue framework ??
|
||||
|
||||
* #2752 [fixed] - Error when you create or update a new catalog under root
|
||||
|
||||
* #2763 [fixed] - error to add rental booking into cart
|
||||
|
||||
* #2764 [fixed] - fix UI when select back_date of booking product,the calendar icon is set on another place
|
||||
|
||||
* #2765 [fixed] - Email settings configuration values are not write in .env file
|
||||
|
||||
* #2768 [fixed] - Getting exception in cart when remove one ticket from event booking from backend
|
||||
|
||||
* #2769 [fixed] - Can't delete Exchange Rates data
|
||||
|
||||
* #2774 [fixed] - How to add new icon in bagisto admin panel?
|
||||
|
||||
* #2775 [fixed] - compare icon is missing in each product for default theme
|
||||
|
||||
* #2776 [fixed] - compare option in side bar menu at customer panel should be available
|
||||
|
||||
* #2778 [fixed] - Issue in customer profile dropdown.
|
||||
|
||||
* #2779 [fixed] - Issue on checkout page, email should ask first as in default theme.
|
||||
|
||||
* #2780 [fixed] - Sidebar layout issue.
|
||||
|
||||
* #2781 [fixed] - Mobile menu is not showing correct sub-menu
|
||||
|
||||
* #2784 [fixed] - One booking for many days slot time issue
|
||||
|
||||
* #2785 [fixed] - missing address details in checkout page
|
||||
|
||||
* #2786 [fixed] - Getting error message on adding product to compare product from search page.
|
||||
|
||||
* #2788 [fixed] - guest_checkout is missing from edit product
|
||||
|
||||
* #2790 [fixed] - Minicart disable when use new languages only velocity theme
|
||||
|
||||
* #2792 [fixed] - Weight Validation Inconsistencies
|
||||
|
||||
* #2793 [fixed] - Stock Check Incorrect for Configurable Items
|
||||
|
||||
* #2794 [fixed] - When allow backorder is enabled, display a message available for order rather than in stock.
|
||||
|
||||
* #2796 [fixed] - Try to create category in windows 10 getting exception
|
||||
|
||||
* #2801 [fixed] - Address with more than 2 lines is not added correctly to the cart_address table
|
||||
|
||||
* #2807 [fixed] - Illegal mix of collations
|
||||
|
||||
* #2808 [fixed] - Correct the spelling on registration page.
|
||||
|
||||
* #2810 [fixed] - UI issue on compare similar item page.
|
||||
|
||||
* #2811 [fixed] - how to change checkout proccess
|
||||
|
||||
* #2812 [fixed] - getting timezone error while setup
|
||||
|
||||
* #2813 [fixed] - Ui issue if there is only one product in compare page.
|
||||
|
||||
* #2814 [fixed] - variant product's name aren't update when select their options in Front
|
||||
|
||||
* #2818 [fixed] - Not able to view menu in velocity theme on storefront
|
||||
|
||||
* #2821 [fixed] - Address Line is Null in Emails
|
||||
|
||||
* #2825 [fixed] - PHP Notice:
|
||||
|
||||
* #2827 [fixed] - default local not changing in storefront in velocity theme
|
||||
|
||||
* #2828 [fixed] - currency change error on velocity theme
|
||||
|
||||
* #2829 [fixed] - changing home page content in velocity and npm
|
||||
|
||||
* #2832 [fixed] - Illegal mix of collations
|
||||
|
||||
* #2834 [fixed] - Layout issue in compare page in pt_BR locale
|
||||
|
||||
* #2837 [fixed] - subscription bar content source code is not visible in text editor
|
||||
|
||||
* #2840 [fixed] - Velocity theme is not available on fresh install
|
||||
|
||||
* #2845 [fixed] - Implement custom RegistrationController
|
||||
|
||||
* #2846 [fixed] - does not show next step
|
||||
|
||||
* #2847 [fixed] - Class 'Faker\Factory' not found
|
||||
|
||||
* #2849 [fixed] - Can not add my stylesheet to Velocity theme
|
||||
|
||||
* #2850 [fixed] - admin crash on save configration
|
||||
|
||||
* #2851 [fixed] - Fix date picker icon layout at dashboard
|
||||
|
||||
* #2856 [fixed] - Issue with Sort by functionality, when open any category it by defaults show Newest First but after changing sort by when again select newest first it shows different product.
|
||||
|
||||
* #2865 [fixed] - Save order taking so long time 30s
|
||||
|
||||
* #2866 [fixed] - ayout issue when customer save addresses form
|
||||
|
||||
* #2871 [fixed] - Refund throws "Undefined index: shipping" error
|
||||
|
||||
* #2876 [fixed] - Place order is disable at checkout when select shipping address
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## **v1.1.0 (24th of March 2020)** - *Release*
|
||||
|
||||
* [feature] Added new booking type product.
|
||||
|
||||
|
|
@ -10,6 +526,8 @@
|
|||
|
||||
* [feature] Impletment compare product feature.
|
||||
|
||||
* #2525 [fixed] - Add more settings to the installers
|
||||
|
||||
* #2541 [fixed] - Showing product's price with the price including tax
|
||||
|
||||
* #2552 [fixed] - error mysql 8
|
||||
|
|
@ -72,14 +590,20 @@
|
|||
|
||||
* #2606 [fixed] - custom attributes are not Visible on Product View Page on Front-end
|
||||
|
||||
* #2607 [fixed] - Getting exception on editing category for pt_BR locale in php 7.4
|
||||
|
||||
* #2608 [fixed] - Getting exception on creating category.
|
||||
|
||||
* #2609 [fixed] - product removed from comparison page when update product by name
|
||||
|
||||
* #2611 [fixed] - installer error
|
||||
|
||||
* #2612 [fixed] - available slots are not showing for current date even if slot time is not expired
|
||||
|
||||
* #2613 [fixed] - Propaganistas/Laravel-Intl is abandoned
|
||||
|
||||
* #2614 [fixed] - table booking slot time is expired still exist in cart
|
||||
|
||||
* #2619 [fixed] - Issue when category slug & product slug are same
|
||||
|
||||
* #2621 [fixed] - i create a site and it is up kind of noting works
|
||||
|
|
@ -150,7 +674,9 @@
|
|||
|
||||
* #2667 [fixed] - By default wishlist option is selected in cart
|
||||
|
||||
* #2669 [fixed] - Booking product should be removed from the cart when selected slot time expired
|
||||
* #2670 [fixed] - Booking product should be removed from the cart when selected slot time expired
|
||||
|
||||
* #2669 [fixed] - Browser compatibility issue
|
||||
|
||||
* #2671 [fixed] - Error on moving booking product to wishlist
|
||||
|
||||
|
|
@ -164,6 +690,26 @@
|
|||
|
||||
* #2693 [fixed] - Booking product page - add to cart button js error
|
||||
|
||||
* #2704 [fixed] - product's assigned category can't be removed
|
||||
|
||||
* #2707 [fixed] - Getting exception when generate invoice in appointment booking
|
||||
|
||||
* #2715 [fixed] - Error message should throw if "To" time is less than "From".
|
||||
|
||||
* #2716 [fixed] - After saving the default booking time product selected time for date range changes to 00:00:00 ,because of which not able to book appointment on frontend.
|
||||
|
||||
* #2717 [fixed] - Getting error message on adding rental product in cart if rental booking is not available for that day.
|
||||
|
||||
* #2722 [fixed] - warning showing when update event booking cart quantity from the product page
|
||||
|
||||
* #2723 [fixed] - Compare product icon on header showing counts of compare product but there are no product in compare list.
|
||||
|
||||
* #2724 [fixed] - table bookings quantity should update in existing booking added in cart for same slot/date
|
||||
|
||||
* #2726 [fixed] - is shop.js the vue framework ??
|
||||
|
||||
* #2732 [fixed] - missing product's quick view in category page
|
||||
|
||||
|
||||
## **v1.0.0 (24th of February 2020)** - *Release*
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
<a href="https://packagist.org/packages/bagisto/bagisto"><img src="https://poser.pugx.org/bagisto/bagisto/d/total.svg" alt="Total Downloads"></a>
|
||||
<a href="https://packagist.org/packages/bagisto/bagisto"><img src="https://poser.pugx.org/bagisto/bagisto/v/stable.svg" alt="Latest Stable Version"></a>
|
||||
<a href="https://packagist.org/packages/bagisto/bagisto"><img src="https://poser.pugx.org/bagisto/bagisto/license.svg" alt="License"></a>
|
||||
<a href="https://github.com/bagisto/bagisto/actions"><img src="https://github.com/bagisto/bagisto/workflows/CI/badge.svg" alt="Backers on Open Collective"></a>
|
||||
<a href="#backers"><img src="https://opencollective.com/bagisto/backers/badge.svg" alt="Backers on Open Collective"></a>
|
||||
<a href="#sponsors"><img src="https://opencollective.com/bagisto/sponsors/badge.svg" alt="Sponsors on Open Collective"></a>
|
||||
</p>
|
||||
|
|
@ -97,7 +98,7 @@ http(s)://example.com/public
|
|||
##### Execute these commands below, in order
|
||||
|
||||
~~~
|
||||
1. composer create-project bagisto/bagisto
|
||||
1. composer create-project bagisto/bagisto-standard
|
||||
~~~
|
||||
|
||||
~~~
|
||||
|
|
|
|||
|
|
@ -24,8 +24,7 @@ class Kernel extends ConsoleKernel
|
|||
*/
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
// $schedule->command('inspire')
|
||||
// ->hourly();
|
||||
$schedule->command('booking:cron')->dailyAt('3:00');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -36,7 +35,8 @@ class Kernel extends ConsoleKernel
|
|||
protected function commands()
|
||||
{
|
||||
$this->load(__DIR__.'/Commands');
|
||||
$this->load(__DIR__.'/../../packages/Webkul/Core/src/Console/Commands');
|
||||
|
||||
require base_path('routes/console.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Exception;
|
||||
use Throwable;
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
|
|
@ -29,10 +29,10 @@ class Handler extends ExceptionHandler
|
|||
/**
|
||||
* Report or log an exception.
|
||||
*
|
||||
* @param \Exception $exception
|
||||
* @param \Throwable $exception
|
||||
* @return void
|
||||
*/
|
||||
public function report(Exception $exception)
|
||||
public function report(Throwable $exception)
|
||||
{
|
||||
parent::report($exception);
|
||||
}
|
||||
|
|
@ -41,10 +41,10 @@ class Handler extends ExceptionHandler
|
|||
* Render an exception into an HTTP response.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Exception $exception
|
||||
* @param \Throwable $exception
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function render($request, Exception $exception)
|
||||
public function render($request, Throwable $exception)
|
||||
{
|
||||
return parent::render($request, $exception);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ class VerifyCsrfToken extends Middleware
|
|||
* @var array
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
'paypal/standard/ipn'
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": "^7.2.0",
|
||||
"php": "^7.2.5",
|
||||
"ext-curl": "*",
|
||||
"ext-intl": "*",
|
||||
"ext-mbstring": "*",
|
||||
|
|
@ -17,36 +17,42 @@
|
|||
"ext-pdo": "*",
|
||||
"ext-pdo_mysql": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"algolia/algoliasearch-client-php": "^2.2",
|
||||
"astrotomic/laravel-translatable": "^11.0.0",
|
||||
"barryvdh/laravel-dompdf": "0.8.5",
|
||||
"babenkoivan/elastic-scout-driver": "^1.1",
|
||||
"barryvdh/laravel-debugbar": "^3.1",
|
||||
"barryvdh/laravel-dompdf": "0.8.6",
|
||||
"doctrine/dbal": "2.9.2",
|
||||
"fideloper/proxy": "^4.0",
|
||||
"fideloper/proxy": "^4.2",
|
||||
"flynsarmy/db-blade-compiler": "^5.5",
|
||||
"guzzlehttp/guzzle": "~6.0",
|
||||
"fzaninotto/faker": "^1.9.1",
|
||||
"guzzlehttp/guzzle": "~6.3",
|
||||
"intervention/image": "^2.4",
|
||||
"intervention/imagecache": "^2.3",
|
||||
"kalnoy/nestedset": "5.0.0",
|
||||
"kalnoy/nestedset": "5.0.1",
|
||||
"konekt/concord": "^1.2",
|
||||
"laravel/framework": "^6.0",
|
||||
"laravel/helpers": "^1.1",
|
||||
"laravel/tinker": "^1.0",
|
||||
"maatwebsite/excel": "3.1.18",
|
||||
"nwidart/laravel-modules": "^3.2",
|
||||
"laravel/framework": "^7.0",
|
||||
"laravel/scout": "^8.0",
|
||||
"laravel/socialite": "^4.4",
|
||||
"laravel/tinker": "^2.0",
|
||||
"laravel/ui": "^2.0",
|
||||
"maatwebsite/excel": "3.1.19",
|
||||
"prettus/l5-repository": "^2.6",
|
||||
"tymon/jwt-auth": "^1.0.0"
|
||||
},
|
||||
|
||||
"require-dev": {
|
||||
"barryvdh/laravel-debugbar": "^3.1",
|
||||
"codeception/codeception": "4.1.1",
|
||||
"codeception/module-asserts": "^1.1",
|
||||
"codeception/module-filesystem": "^1.0",
|
||||
"codeception/module-laravel5": "^1.0",
|
||||
"codeception/module-webdriver": "^1.0",
|
||||
"filp/whoops": "^2.0",
|
||||
"mockery/mockery": "^1.0",
|
||||
"nunomaduro/collision": "^2.0",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"barryvdh/laravel-debugbar": "^3.1",
|
||||
"fzaninotto/faker": "^1.4"
|
||||
"fzaninotto/faker": "^1.4",
|
||||
"mockery/mockery": "^1.3.1",
|
||||
"nunomaduro/collision": "^4.1",
|
||||
"phpunit/phpunit": "^8.5"
|
||||
},
|
||||
|
||||
"replace": {
|
||||
|
|
@ -101,13 +107,17 @@
|
|||
"Webkul\\Rule\\": "packages/Webkul/Rule/src",
|
||||
"Webkul\\CMS\\": "packages/Webkul/CMS/src",
|
||||
"Webkul\\Velocity\\": "packages/Webkul/Velocity/src",
|
||||
"Webkul\\BookingProduct\\": "packages/Webkul/BookingProduct/src"
|
||||
"Webkul\\BookingProduct\\": "packages/Webkul/BookingProduct/src",
|
||||
"Webkul\\SocialLogin\\": "packages/Webkul/SocialLogin/src"
|
||||
}
|
||||
},
|
||||
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
"Tests\\Acceptance\\": "tests/acceptance/",
|
||||
"Tests\\Functional\\": "tests/functional/",
|
||||
"Tests\\Unit\\": "tests/unit/",
|
||||
"Tests\\Trigger\\": "tests/trigger/"
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -153,7 +153,7 @@ return [
|
|||
/*
|
||||
Application Version
|
||||
*/
|
||||
'version' => env('APP_VERSION', '1.1.0'),
|
||||
'version' => env('APP_VERSION'),
|
||||
|
||||
/**
|
||||
* Blacklisting attributes while debugging
|
||||
|
|
@ -268,6 +268,7 @@ return [
|
|||
Webkul\CMS\Providers\CMSServiceProvider::class,
|
||||
Webkul\Velocity\Providers\VelocityServiceProvider::class,
|
||||
Webkul\BookingProduct\Providers\BookingProductServiceProvider::class,
|
||||
Webkul\SocialLogin\Providers\SocialLoginServiceProvider::class,
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -24,5 +24,6 @@ return [
|
|||
\Webkul\CartRule\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\CMS\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\Velocity\Providers\ModuleServiceProvider::class,
|
||||
\Webkul\SocialLogin\Providers\ModuleServiceProvider::class,
|
||||
]
|
||||
];
|
||||
|
|
@ -111,7 +111,7 @@ return [
|
|||
'views' => true, // Views with their data
|
||||
'route' => true, // Current route information
|
||||
'auth' => false, // Display Laravel authentication status
|
||||
'gate' => true, // Display Laravel Gate checks
|
||||
'gate' => true, // Display Laravel Gate checks
|
||||
'session' => true, // Display session data
|
||||
'symfony_request' => true, // Only one can be enabled..
|
||||
'mail' => true, // Catch mail messages
|
||||
|
|
@ -122,7 +122,7 @@ return [
|
|||
'files' => false, // Show the included files
|
||||
'config' => false, // Display config settings
|
||||
'cache' => false, // Display cache events
|
||||
'models' => false, // Display models
|
||||
'models' => true, // Display models
|
||||
],
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'hosts' => [
|
||||
env('ELASTIC_HOST', 'localhost:9200'),
|
||||
]
|
||||
];
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'refresh_documents' => env('ELASTIC_SCOUT_DRIVER_REFRESH_DOCUMENTS', false)
|
||||
];
|
||||
|
|
@ -179,7 +179,8 @@ return [
|
|||
| in conjunction with queued imports and exports.
|
||||
|
|
||||
*/
|
||||
'remote_disk' => null,
|
||||
'remote_disk' => null,
|
||||
'remote_prefix' => null,
|
||||
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,91 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Search Engine
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option controls the default search connection that gets used while
|
||||
| using Laravel Scout. This connection is used when syncing all models
|
||||
| to the search service. You should adjust this based on your needs.
|
||||
|
|
||||
| Supported: "algolia", "null"
|
||||
|
|
||||
*/
|
||||
|
||||
'driver' => env('SCOUT_DRIVER', null),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Index Prefix
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may specify a prefix that will be applied to all search index
|
||||
| names used by Scout. This prefix may be useful if you have multiple
|
||||
| "tenants" or applications sharing the same search infrastructure.
|
||||
|
|
||||
*/
|
||||
|
||||
'prefix' => env('SCOUT_PREFIX', ''),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Queue Data Syncing
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option allows you to control if the operations that sync your data
|
||||
| with your search engines are queued. When this is set to "true" then
|
||||
| all automatic data syncing will get queued for better performance.
|
||||
|
|
||||
*/
|
||||
|
||||
'queue' => env('SCOUT_QUEUE', true),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Chunk Sizes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| These options allow you to control the maximum chunk size when you are
|
||||
| mass importing data into the search engine. This allows you to fine
|
||||
| tune each of these chunk sizes based on the power of the servers.
|
||||
|
|
||||
*/
|
||||
|
||||
'chunk' => [
|
||||
'searchable' => 500,
|
||||
'unsearchable' => 500,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Soft Deletes
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This option allows to control whether to keep soft deleted records in
|
||||
| the search indexes. Maintaining soft deleted records can be useful
|
||||
| if your application still needs to search for the records later.
|
||||
|
|
||||
*/
|
||||
|
||||
'soft_delete' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Algolia Configuration
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Here you may configure your Algolia settings. Algolia is a cloud hosted
|
||||
| search engine which works great with Scout out of the box. Just plug
|
||||
| in your application ID and admin API key to get started searching.
|
||||
|
|
||||
*/
|
||||
|
||||
'algolia' => [
|
||||
'id' => env('ALGOLIA_APP_ID', ''),
|
||||
'secret' => env('ALGOLIA_SECRET', ''),
|
||||
],
|
||||
|
||||
];
|
||||
|
|
@ -30,17 +30,51 @@ return [
|
|||
],
|
||||
|
||||
'exchange-api' => [
|
||||
'default' => 'fixer',
|
||||
'default' => 'exchange_rates',
|
||||
|
||||
'fixer' => [
|
||||
'paid_account' => false,
|
||||
'key' => env('fixer_api_key'),
|
||||
'class' => 'Webkul\Core\Helpers\Exchange\FixerExchange'
|
||||
]
|
||||
],
|
||||
|
||||
'exchange_rates' => [
|
||||
'class' => 'Webkul\Core\Helpers\Exchange\ExchangeRates'
|
||||
],
|
||||
],
|
||||
|
||||
'stripe' => [
|
||||
'model' => App\User::class,
|
||||
'key' => env('STRIPE_KEY'),
|
||||
'secret' => env('STRIPE_SECRET'),
|
||||
]
|
||||
],
|
||||
|
||||
'facebook' => [
|
||||
'client_id' => env('FACEBOOK_CLIENT_ID'),
|
||||
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
|
||||
'redirect' => env('FACEBOOK_CALLBACK_URL'),
|
||||
],
|
||||
|
||||
'twitter' => [
|
||||
'client_id' => env('TWITTER_CLIENT_ID'),
|
||||
'client_secret' => env('TWITTER_CLIENT_SECRET'),
|
||||
'redirect' => env('TWITTER_CALLBACK_URL'),
|
||||
],
|
||||
|
||||
'google' => [
|
||||
'client_id' => env('GOOGLE_CLIENT_ID'),
|
||||
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
|
||||
'redirect' => env('GOOGLE_CALLBACK_URL'),
|
||||
],
|
||||
|
||||
'linkedin' => [
|
||||
'client_id' => env('LINKEDIN_CLIENT_ID'),
|
||||
'client_secret' => env('LINKEDIN_CLIENT_SECRET'),
|
||||
'redirect' => env('LINKEDIN_CALLBACK_URL'),
|
||||
],
|
||||
|
||||
'github' => [
|
||||
'client_id' => env('GITHUB_CLIENT_ID'),
|
||||
'client_secret' => env('GITHUB_CLIENT_SECRET'),
|
||||
'redirect' => env('GITHUB_CALLBACK_URL'),
|
||||
],
|
||||
];
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ return [
|
|||
|
|
||||
*/
|
||||
|
||||
'secure' => env('SESSION_SECURE_COOKIE', false),
|
||||
'secure' => env('SESSION_SECURE_COOKIE', null),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -17,6 +17,21 @@ return [
|
|||
// App\Console\Commands\ExampleCommand::class,
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Alias Whitelist
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Tinker will not automatically alias classes in your vendor namespaces
|
||||
| but you may explicitly allow a subset of classes to get aliased by
|
||||
| adding the names of each of those classes to the following list.
|
||||
|
|
||||
*/
|
||||
|
||||
'alias' => [
|
||||
//
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Alias Blacklist
|
||||
|
|
|
|||
|
|
@ -1,6 +1,16 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Blade File Tracer
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Shows blade file path in front
|
||||
|
|
||||
*/
|
||||
|
||||
'tracer' => false,
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -25,8 +25,9 @@
|
|||
"vue-template-compiler": "^2.6.11"
|
||||
},
|
||||
"dependencies": {
|
||||
"opencollective": "^1.0.3",
|
||||
"opencollective-postinstall": "^2.0.1",
|
||||
"opencollective": "^1.0.3"
|
||||
"vee-validate": "^3.3.0"
|
||||
},
|
||||
"collective": {
|
||||
"type": "opencollective",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,10 @@
|
|||
|
||||
namespace Webkul\API\Http\Controllers\Shop;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Webkul\Checkout\Repositories\CartRepository;
|
||||
use Webkul\Checkout\Repositories\CartItemRepository;
|
||||
use Webkul\API\Http\Resources\Checkout\Cart as CartResource;
|
||||
|
|
@ -42,9 +45,9 @@ class CartController extends Controller
|
|||
/**
|
||||
* Controller instance
|
||||
*
|
||||
* @param \Webkul\Checkout\Repositories\CartRepository $cartRepository
|
||||
* @param \Webkul\Checkout\Repositories\CartItemRepository $cartItemRepository
|
||||
* @param \Webkul\Checkout\Repositories\WishlistRepository $wishlistRepository
|
||||
* @param \Webkul\Checkout\Repositories\CartRepository $cartRepository
|
||||
* @param \Webkul\Checkout\Repositories\CartItemRepository $cartItemRepository
|
||||
* @param \Webkul\Checkout\Repositories\WishlistRepository $wishlistRepository
|
||||
*/
|
||||
public function __construct(
|
||||
CartRepository $cartRepository,
|
||||
|
|
@ -69,7 +72,7 @@ class CartController extends Controller
|
|||
/**
|
||||
* Get customer cart
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function get()
|
||||
{
|
||||
|
|
@ -86,10 +89,11 @@ class CartController extends Controller
|
|||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function store($id)
|
||||
public function store($id): ?JsonResponse
|
||||
{
|
||||
if (request()->get('is_buy_now')) {
|
||||
Event::dispatch('shop.item.buy-now', $id);
|
||||
|
|
@ -97,36 +101,46 @@ class CartController extends Controller
|
|||
|
||||
Event::dispatch('checkout.cart.item.add.before', $id);
|
||||
|
||||
$result = Cart::addProduct($id, request()->except('_token'));
|
||||
try {
|
||||
$result = Cart::addProduct($id, request()->except('_token'));
|
||||
|
||||
if (! $result) {
|
||||
$message = session()->get('warning') ?? session()->get('error');
|
||||
if (is_array($result) && isset($result['warning'])) {
|
||||
return response()->json([
|
||||
'error' => $result['warning'],
|
||||
], 400);
|
||||
}
|
||||
|
||||
if ($customer = auth($this->guard)->user()) {
|
||||
$this->wishlistRepository->deleteWhere(['product_id' => $id, 'customer_id' => $customer->id]);
|
||||
}
|
||||
|
||||
Event::dispatch('checkout.cart.item.add.after', $result);
|
||||
|
||||
Cart::collectTotals();
|
||||
|
||||
$cart = Cart::getCart();
|
||||
|
||||
return response()->json([
|
||||
'error' => session()->get('warning'),
|
||||
], 400);
|
||||
'message' => __('shop::app.checkout.cart.item.success'),
|
||||
'data' => $cart ? new CartResource($cart) : null,
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
Log::error('API CartController: ' . $e->getMessage(),
|
||||
['product_id' => $id, 'cart_id' => cart()->getCart() ?? 0]);
|
||||
|
||||
return response()->json([
|
||||
'error' => [
|
||||
'message' => $e->getMessage(),
|
||||
'code' => $e->getCode()
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
if ($customer = auth($this->guard)->user()) {
|
||||
$this->wishlistRepository->deleteWhere(['product_id' => $id, 'customer_id' => $customer->id]);
|
||||
}
|
||||
|
||||
Event::dispatch('checkout.cart.item.add.after', $result);
|
||||
|
||||
Cart::collectTotals();
|
||||
|
||||
$cart = Cart::getCart();
|
||||
|
||||
return response()->json([
|
||||
'message' => __('shop::app.checkout.cart.item.success'),
|
||||
'data' => $cart ? new CartResource($cart) : null,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function update()
|
||||
{
|
||||
|
|
@ -161,7 +175,7 @@ class CartController extends Controller
|
|||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function destroy()
|
||||
{
|
||||
|
|
@ -182,8 +196,9 @@ class CartController extends Controller
|
|||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
* @param int $id
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function destroyItem($id)
|
||||
{
|
||||
|
|
@ -206,7 +221,9 @@ class CartController extends Controller
|
|||
/**
|
||||
* Function to move a already added product to wishlist will run only on customer authentication.
|
||||
*
|
||||
* @param \Webkul\Checkout\Repositories\CartItemRepository $id
|
||||
* @param \Webkul\Checkout\Repositories\CartItemRepository $id
|
||||
*
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function moveToWishlist($id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ use Webkul\Checkout\Http\Requests\CustomerAddressForm;
|
|||
use Webkul\Sales\Repositories\OrderRepository;
|
||||
use Illuminate\Support\Str;
|
||||
use Cart;
|
||||
use Exception;
|
||||
use Webkul\Shop\Http\Controllers\OnepageController;
|
||||
|
||||
class CheckoutController extends Controller
|
||||
{
|
||||
|
|
@ -197,26 +199,10 @@ class CheckoutController extends Controller
|
|||
/**
|
||||
* Validate order before creation
|
||||
*
|
||||
* @return mixed
|
||||
* @throws Exception
|
||||
*/
|
||||
public function validateOrder()
|
||||
public function validateOrder(): void
|
||||
{
|
||||
$cart = Cart::getCart();
|
||||
|
||||
if (! $cart->shipping_address) {
|
||||
throw new \Exception(trans('Please check shipping address.'));
|
||||
}
|
||||
|
||||
if (! $cart->billing_address) {
|
||||
throw new \Exception(trans('Please check billing address.'));
|
||||
}
|
||||
|
||||
if (! $cart->selected_shipping_rate) {
|
||||
throw new \Exception(trans('Please specify shipping method.'));
|
||||
}
|
||||
|
||||
if (! $cart->payment) {
|
||||
throw new \Exception(trans('Please specify payment method.'));
|
||||
}
|
||||
app(OnepageController::class)->validateOrder();
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Password;
|
|||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
use SendsPasswordResetEmails;
|
||||
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ class CustomerAddress extends JsonResource
|
|||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'first_name' => $this->first_name,
|
||||
'last_name' => $this->last_name,
|
||||
'company_name' => $this->company_name,
|
||||
'address1' => explode(PHP_EOL, $this->address1),
|
||||
'country' => $this->country,
|
||||
'country_name' => core()->country_name($this->country),
|
||||
|
|
@ -27,4 +30,4 @@ class CustomerAddress extends JsonResource
|
|||
'updated_at' => $this->updated_at,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -100,10 +100,11 @@ class Order extends JsonResource
|
|||
'channel' => $this->when($this->channel_id, new ChannelResource($this->channel)),
|
||||
'shipping_address' => new OrderAddress($this->shipping_address),
|
||||
'billing_address' => new OrderAddress($this->billing_address),
|
||||
'updated_at' => $this->updated_at,
|
||||
'items' => OrderItem::collection($this->items),
|
||||
'invoices' => Invoice::collection($this->invoices),
|
||||
'shipments' => Shipment::collection($this->shipments),
|
||||
'downloadable_links' => $this->downloadable_link_purchased,
|
||||
'updated_at' => $this->updated_at,
|
||||
'created_at' => $this->created_at,
|
||||
];
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"/js/admin.js": "/js/admin.js?id=c7c2ef0a298910b82304",
|
||||
"/css/admin.css": "/css/admin.css?id=f2c6fe51889bca1fb79d"
|
||||
"/js/admin.js": "/js/admin.js?id=a14c779523092ac32b88",
|
||||
"/css/admin.css": "/css/admin.css?id=56c882a611bdf3c058cb"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -416,6 +416,26 @@ return [
|
|||
'name' => 'admin::app.acl.delete',
|
||||
'route' => 'admin.cart-rules.delete',
|
||||
'sort' => 3,
|
||||
], [
|
||||
'key' => 'promotions.catalog-rules',
|
||||
'name' => 'admin::app.acl.catalog-rules',
|
||||
'route' => 'admin.catalog-rules.index',
|
||||
'sort' => 1,
|
||||
], [
|
||||
'key' => 'promotions.catalog-rules.create',
|
||||
'name' => 'admin::app.acl.create',
|
||||
'route' => 'admin.catalog-rules.index',
|
||||
'sort' => 1,
|
||||
], [
|
||||
'key' => 'promotions.catalog-rules.edit',
|
||||
'name' => 'admin::app.acl.edit',
|
||||
'route' => 'admin.catalog-rules.edit',
|
||||
'sort' => 2,
|
||||
], [
|
||||
'key' => 'promotions.catalog-rules.delete',
|
||||
'name' => 'admin::app.acl.delete',
|
||||
'route' => 'admin.catalog-rules.delete',
|
||||
'sort' => 3,
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
|||
|
|
@ -53,13 +53,13 @@ return [
|
|||
'key' => 'catalog.categories',
|
||||
'name' => 'admin::app.layouts.categories',
|
||||
'route' => 'admin.catalog.categories.index',
|
||||
'sort' => 3,
|
||||
'sort' => 2,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'catalog.attributes',
|
||||
'name' => 'admin::app.layouts.attributes',
|
||||
'route' => 'admin.catalog.attributes.index',
|
||||
'sort' => 2,
|
||||
'sort' => 3,
|
||||
'icon-class' => '',
|
||||
], [
|
||||
'key' => 'catalog.families',
|
||||
|
|
|
|||
|
|
@ -99,6 +99,12 @@ return [
|
|||
'type' => 'image',
|
||||
'channel_based' => true,
|
||||
'validation' => 'mimes:jpeg,bmp,png,jpg',
|
||||
], [
|
||||
'name' => 'favicon',
|
||||
'title' => 'admin::app.admin.system.favicon',
|
||||
'type' => 'image',
|
||||
'channel_based' => true,
|
||||
'validation' => 'mimes:jpeg,bmp,png,jpg',
|
||||
],
|
||||
],
|
||||
], [
|
||||
|
|
@ -120,10 +126,63 @@ return [
|
|||
'type' => 'boolean',
|
||||
],
|
||||
],
|
||||
], [
|
||||
'key' => 'catalog.products.storefront',
|
||||
'name' => 'admin::app.admin.system.storefront',
|
||||
'sort' => 2,
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'mode',
|
||||
'title' => 'admin::app.admin.system.default-list-mode',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => 'admin::app.admin.system.grid',
|
||||
'value' => 'grid',
|
||||
], [
|
||||
'title' => 'admin::app.admin.system.list',
|
||||
'value' => 'list',
|
||||
],
|
||||
],
|
||||
'channel_based' => true,
|
||||
], [
|
||||
'name' => 'products_per_page',
|
||||
'title' => 'admin::app.admin.system.products-per-page',
|
||||
'type' => 'text',
|
||||
'info' => 'admin::app.admin.system.comma-seperated',
|
||||
'channel_based' => true,
|
||||
], [
|
||||
'name' => 'sort_by',
|
||||
'title' => 'admin::app.admin.system.sort-by',
|
||||
'type' => 'select',
|
||||
'options' => [
|
||||
[
|
||||
'title' => 'admin::app.admin.system.from-z-a',
|
||||
'value' => 'name-desc',
|
||||
], [
|
||||
'title' => 'admin::app.admin.system.from-a-z',
|
||||
'value' => 'name-asc',
|
||||
], [
|
||||
'title' => 'admin::app.admin.system.newest-first',
|
||||
'value' => 'created_at-desc',
|
||||
], [
|
||||
'title' => 'admin::app.admin.system.oldest-first',
|
||||
'value' => 'created_at-asc',
|
||||
], [
|
||||
'title' => 'admin::app.admin.system.cheapest-first',
|
||||
'value' => 'price-asc',
|
||||
], [
|
||||
'title' => 'admin::app.admin.system.expensive-first',
|
||||
'value' => 'price-desc',
|
||||
],
|
||||
],
|
||||
'channel_based' => true,
|
||||
]
|
||||
],
|
||||
], [
|
||||
'key' => 'catalog.products.review',
|
||||
'name' => 'admin::app.admin.system.review',
|
||||
'sort' => 2,
|
||||
'sort' => 3,
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'guest_review',
|
||||
|
|
@ -147,10 +206,68 @@ return [
|
|||
'channel_based' => true,
|
||||
],
|
||||
],
|
||||
], [
|
||||
'key' => 'catalog.rich_snippets',
|
||||
'name' => 'admin::app.admin.system.rich-snippets',
|
||||
'sort' => 3,
|
||||
], [
|
||||
'key' => 'catalog.rich_snippets.products',
|
||||
'name' => 'admin::app.admin.system.products',
|
||||
'sort' => 1,
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'enable',
|
||||
'title' => 'admin::app.admin.system.enable',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_sku',
|
||||
'title' => 'admin::app.admin.system.show-sku',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_weight',
|
||||
'title' => 'admin::app.admin.system.show-weight',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_categories',
|
||||
'title' => 'admin::app.admin.system.show-categories',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_images',
|
||||
'title' => 'admin::app.admin.system.show-images',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_reviews',
|
||||
'title' => 'admin::app.admin.system.show-reviews',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_ratings',
|
||||
'title' => 'admin::app.admin.system.show-ratings',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_offers',
|
||||
'title' => 'admin::app.admin.system.show-offers',
|
||||
'type' => 'boolean',
|
||||
],
|
||||
],
|
||||
], [
|
||||
'key' => 'catalog.rich_snippets.categories',
|
||||
'name' => 'admin::app.admin.system.categories',
|
||||
'sort' => 1,
|
||||
'fields' => [
|
||||
[
|
||||
'name' => 'enable',
|
||||
'title' => 'admin::app.admin.system.enable',
|
||||
'type' => 'boolean',
|
||||
], [
|
||||
'name' => 'show_search_input_field',
|
||||
'title' => 'admin::app.admin.system.show-search-input-field',
|
||||
'type' => 'boolean',
|
||||
]
|
||||
]
|
||||
], [
|
||||
'key' => 'customer',
|
||||
'name' => 'admin::app.admin.system.customer',
|
||||
'sort' => 3,
|
||||
'sort' => 4,
|
||||
], [
|
||||
'key' => 'customer.settings',
|
||||
'name' => 'admin::app.admin.system.settings',
|
||||
|
|
@ -193,7 +310,7 @@ return [
|
|||
], [
|
||||
'key' => 'emails',
|
||||
'name' => 'admin::app.admin.emails.email',
|
||||
'sort' => 1,
|
||||
'sort' => 5,
|
||||
], [
|
||||
'key' => 'emails.general',
|
||||
'name' => 'admin::app.admin.emails.notification_label',
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Customer\Models\CustomerAddress;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
use Webkul\Customer\Repositories\CustomerRepository;
|
||||
|
||||
|
|
@ -13,6 +14,7 @@ class AddressDataGrid extends DataGrid
|
|||
*/
|
||||
public $index = 'address_id';
|
||||
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
@ -42,10 +44,11 @@ class AddressDataGrid extends DataGrid
|
|||
{
|
||||
$customer = $this->customerRepository->find(request('id'));
|
||||
|
||||
$queryBuilder = DB::table('customer_addresses as ca')
|
||||
$queryBuilder = DB::table('addresses as ca')
|
||||
->leftJoin('countries', 'ca.country', '=', 'countries.code')
|
||||
->leftJoin('customers as c', 'ca.customer_id', '=', 'c.id')
|
||||
->addSelect('ca.id as address_id', 'ca.company_name', 'ca.address1', 'ca.country', DB::raw('' . DB::getTablePrefix() . 'countries.name as country_name'), 'ca.state', 'ca.city', 'ca.postcode', 'ca.phone', 'ca.default_address')
|
||||
->where('ca.address_type', CustomerAddress::ADDRESS_TYPE)
|
||||
->where('c.id', $customer->id);
|
||||
|
||||
$queryBuilder = $queryBuilder->leftJoin('country_states', function($qb) {
|
||||
|
|
@ -56,13 +59,12 @@ class AddressDataGrid extends DataGrid
|
|||
$queryBuilder->groupBy('ca.id')
|
||||
->addSelect(DB::raw(DB::getTablePrefix() . 'country_states.default_name as state_name'));
|
||||
|
||||
$this->addFilter('address_id', 'ca.id');
|
||||
$this->addFilter('company_name', 'ca.company_name');
|
||||
$this->addFilter('address1', 'ca.address1');
|
||||
$this->addFilter('postcode', 'ca.postcode');
|
||||
$this->addFilter('city', 'ca.city');
|
||||
$this->addFilter('state_name', DB::raw(DB::getTablePrefix() . 'country_states.default_name'));
|
||||
$this->addFilter('country_name', DB::raw(DB::getTablePrefix() . 'countries.name'));
|
||||
$this->addFilter('postcode', 'ca.postcode');
|
||||
$this->addFilter('default_address', 'ca.default_address');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
|
|
@ -71,9 +73,9 @@ class AddressDataGrid extends DataGrid
|
|||
public function addColumns()
|
||||
{
|
||||
$this->addColumn([
|
||||
'index' => 'address_id',
|
||||
'label' => trans('admin::app.customers.addresses.address-id'),
|
||||
'type' => 'number',
|
||||
'index' => 'company_name',
|
||||
'label' => trans('admin::app.customers.addresses.company-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
|
|
@ -88,6 +90,15 @@ class AddressDataGrid extends DataGrid
|
|||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'postcode',
|
||||
'label' => trans('admin::app.customers.addresses.postcode'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'city',
|
||||
'label' => trans('admin::app.customers.addresses.city'),
|
||||
|
|
@ -115,15 +126,6 @@ class AddressDataGrid extends DataGrid
|
|||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'postcode',
|
||||
'label' => trans('admin::app.customers.addresses.postcode'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'default_address',
|
||||
'label' => trans('admin::app.customers.addresses.default-address'),
|
||||
|
|
@ -168,4 +170,4 @@ class AddressDataGrid extends DataGrid
|
|||
'method' => 'DELETE',
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class CartRuleDataGrid extends DataGrid
|
||||
{
|
||||
|
|
@ -11,18 +11,51 @@ class CartRuleDataGrid extends DataGrid
|
|||
|
||||
protected $sortOrder = 'desc';
|
||||
|
||||
protected $customer_group = 'all';
|
||||
|
||||
protected $channel = 'all';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->customer_group = request()->get('customer_group') ?? 'all';
|
||||
|
||||
$this->channel = request()->get('channel') ?? 'all';
|
||||
}
|
||||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('cart_rules')
|
||||
->leftJoin('cart_rule_coupons', function($leftJoin) {
|
||||
->leftJoin('cart_rule_coupons', function ($leftJoin) {
|
||||
$leftJoin->on('cart_rule_coupons.cart_rule_id', '=', 'cart_rules.id')
|
||||
->where('cart_rule_coupons.is_primary', 1);
|
||||
->where('cart_rule_coupons.is_primary', 1);
|
||||
})
|
||||
->addSelect('cart_rules.id', 'name', 'cart_rule_coupons.code as coupon_code', 'status', 'starts_from', 'ends_till', 'sort_order');
|
||||
->addSelect('cart_rules.id', 'name', 'cart_rule_coupons.code as coupon_code',
|
||||
'status', 'starts_from', 'ends_till', 'sort_order');
|
||||
|
||||
$this->addFilter('id', 'cart_rules.id');
|
||||
$this->addFilter('coupon_code', 'cart_rule_coupons.code');
|
||||
|
||||
if ($this->customer_group !== 'all') {
|
||||
$queryBuilder->leftJoin(
|
||||
'cart_rule_customer_groups',
|
||||
'cart_rule_customer_groups.cart_rule_id',
|
||||
'=',
|
||||
'cart_rules.id'
|
||||
);
|
||||
$queryBuilder->where('cart_rule_customer_groups.customer_group_id', $this->customer_group);
|
||||
}
|
||||
|
||||
if ($this->channel !== 'all') {
|
||||
$queryBuilder->leftJoin(
|
||||
'cart_rule_channels',
|
||||
'cart_rule_channels.cart_rule_id',
|
||||
'=',
|
||||
'cart_rules.id');
|
||||
$queryBuilder->where('cart_rule_channels.channel_id', $this->channel);
|
||||
}
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
||||
|
|
@ -80,7 +113,7 @@ class CartRuleDataGrid extends DataGrid
|
|||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
'wrapper' => function($value) {
|
||||
'wrapper' => function ($value) {
|
||||
if ($value->status == 1) {
|
||||
return trans('admin::app.datagrid.active');
|
||||
} else {
|
||||
|
|
@ -108,11 +141,19 @@ class CartRuleDataGrid extends DataGrid
|
|||
'icon' => 'icon pencil-lg-icon',
|
||||
]);
|
||||
|
||||
$this->addAction([
|
||||
'title' => trans('admin::app.datagrid.copy'),
|
||||
'method' => 'GET',
|
||||
'route' => 'admin.cart-rules.copy',
|
||||
'icon' => 'icon note-icon',
|
||||
]);
|
||||
|
||||
$this->addAction([
|
||||
'title' => trans('admin::app.datagrid.delete'),
|
||||
'method' => 'POST',
|
||||
'route' => 'admin.cart-rules.delete',
|
||||
'icon' => 'icon trash-icon',
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -117,9 +117,9 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
'action' => route('admin.customer.review.massupdate'),
|
||||
'method' => 'PUT',
|
||||
'options' => [
|
||||
'Pending' => 0,
|
||||
'Approve' => 1,
|
||||
'Disapprove' => 2,
|
||||
trans('admin::app.customers.reviews.pending') => 0,
|
||||
trans('admin::app.customers.reviews.approved') => 1,
|
||||
trans('admin::app.customers.reviews.disapproved') => 2,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Sales\Models\OrderAddress;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
|
||||
class OrderDataGrid extends DataGrid
|
||||
|
|
@ -14,13 +15,13 @@ class OrderDataGrid extends DataGrid
|
|||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('orders')
|
||||
->leftJoin('order_address as order_address_shipping', function($leftJoin) {
|
||||
->leftJoin('addresses as order_address_shipping', function($leftJoin) {
|
||||
$leftJoin->on('order_address_shipping.order_id', '=', 'orders.id')
|
||||
->where('order_address_shipping.address_type', 'shipping');
|
||||
->where('order_address_shipping.address_type', OrderAddress::ADDRESS_TYPE_SHIPPING);
|
||||
})
|
||||
->leftJoin('order_address as order_address_billing', function($leftJoin) {
|
||||
->leftJoin('addresses as order_address_billing', function($leftJoin) {
|
||||
$leftJoin->on('order_address_billing.order_id', '=', 'orders.id')
|
||||
->where('order_address_billing.address_type', 'billing');
|
||||
->where('order_address_billing.address_type', OrderAddress::ADDRESS_TYPE_BILLING);
|
||||
})
|
||||
->addSelect('orders.id','orders.increment_id', 'orders.base_sub_total', 'orders.base_grand_total', 'orders.created_at', 'channel_name', 'status')
|
||||
->addSelect(DB::raw('CONCAT(' . DB::getTablePrefix() . 'order_address_billing.first_name, " ", ' . DB::getTablePrefix() . 'order_address_billing.last_name) as billed_to'))
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Sales\Models\OrderAddress;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
|
||||
class OrderRefundDataGrid extends DataGrid
|
||||
|
|
@ -16,9 +17,9 @@ class OrderRefundDataGrid extends DataGrid
|
|||
$queryBuilder = DB::table('refunds')
|
||||
->select('refunds.id', 'orders.increment_id', 'refunds.state', 'refunds.base_grand_total', 'refunds.created_at')
|
||||
->leftJoin('orders', 'refunds.order_id', '=', 'orders.id')
|
||||
->leftJoin('order_address as order_address_billing', function($leftJoin) {
|
||||
->leftJoin('addresses as order_address_billing', function($leftJoin) {
|
||||
$leftJoin->on('order_address_billing.order_id', '=', 'orders.id')
|
||||
->where('order_address_billing.address_type', 'billing');
|
||||
->where('order_address_billing.address_type', OrderAddress::ADDRESS_TYPE_BILLING);
|
||||
})
|
||||
->addSelect(DB::raw('CONCAT(' . DB::getTablePrefix() . 'order_address_billing.first_name, " ", ' . DB::getTablePrefix() . 'order_address_billing.last_name) as billed_to'));
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Webkul\Admin\DataGrids;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\Sales\Models\OrderAddress;
|
||||
use Webkul\Ui\DataGrid\DataGrid;
|
||||
|
||||
class OrderShipmentsDataGrid extends DataGrid
|
||||
|
|
@ -14,9 +15,9 @@ class OrderShipmentsDataGrid extends DataGrid
|
|||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('shipments')
|
||||
->leftJoin('order_address as order_address_shipping', function($leftJoin) {
|
||||
->leftJoin('addresses as order_address_shipping', function($leftJoin) {
|
||||
$leftJoin->on('order_address_shipping.order_id', '=', 'shipments.order_id')
|
||||
->where('order_address_shipping.address_type', 'shipping');
|
||||
->where('order_address_shipping.address_type', OrderAddress::ADDRESS_TYPE_SHIPPING);
|
||||
})
|
||||
->leftJoin('orders as ors', 'shipments.order_id', '=', 'ors.id')
|
||||
->leftJoin('inventory_sources as is', 'shipments.inventory_source_id', '=', 'is.id')
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ class ProductDataGrid extends DataGrid
|
|||
parent::__construct();
|
||||
|
||||
$this->locale = request()->get('locale') ?? 'all';
|
||||
|
||||
|
||||
$this->channel = request()->get('channel') ?? 'all';
|
||||
}
|
||||
|
||||
|
|
@ -45,14 +45,16 @@ class ProductDataGrid extends DataGrid
|
|||
|
||||
if ($this->locale !== 'all') {
|
||||
$queryBuilder->where('locale', $this->locale);
|
||||
} else {
|
||||
$queryBuilder->whereNotNull('product_flat.name');
|
||||
}
|
||||
|
||||
if ($this->channel !== 'all') {
|
||||
$queryBuilder->where('channel', $this->channel);
|
||||
}
|
||||
|
||||
if ($currentLocale = app()->getLocale()) {
|
||||
$queryBuilder->where('product_flat.locale', $currentLocale);
|
||||
}
|
||||
|
||||
$queryBuilder->groupBy('product_flat.product_id');
|
||||
|
||||
$this->addFilter('product_id', 'product_flat.product_id');
|
||||
|
|
@ -119,7 +121,7 @@ class ProductDataGrid extends DataGrid
|
|||
'sortable' => true,
|
||||
'searchable' => false,
|
||||
'filterable' => true,
|
||||
'wrapper' => function($value) {
|
||||
'wrapper' => function ($value) {
|
||||
if ($value->status == 1) {
|
||||
return trans('admin::app.datagrid.active');
|
||||
} else {
|
||||
|
|
@ -144,7 +146,7 @@ class ProductDataGrid extends DataGrid
|
|||
'sortable' => true,
|
||||
'searchable' => false,
|
||||
'filterable' => false,
|
||||
'wrapper' => function($value) {
|
||||
'wrapper' => function ($value) {
|
||||
if (is_null($value->quantity)) {
|
||||
return 0;
|
||||
} else {
|
||||
|
|
@ -161,7 +163,7 @@ class ProductDataGrid extends DataGrid
|
|||
'method' => 'GET',
|
||||
'route' => 'admin.catalog.products.edit',
|
||||
'icon' => 'icon pencil-lg-icon',
|
||||
'condition' => function() {
|
||||
'condition' => function () {
|
||||
return true;
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -11,11 +11,31 @@ class SliderDataGrid extends DataGrid
|
|||
|
||||
protected $sortOrder = 'desc';
|
||||
|
||||
protected $locale = 'all';
|
||||
|
||||
protected $channel = 'all';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->locale = request()->get('locale') ?? 'all';
|
||||
$this->channel = request()->get('channel') ?? 'all';
|
||||
}
|
||||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('sliders as sl')
|
||||
->addSelect('sl.id as slider_id', 'sl.title', 'ch.name')
|
||||
->leftJoin('channels as ch', 'sl.channel_id', '=', 'ch.id');
|
||||
->addSelect('sl.id as slider_id', 'sl.title', 'sl.locale', 'ch.name', 'ch.code')
|
||||
->leftJoin('channels as ch', 'sl.channel_id', '=', 'ch.id');
|
||||
|
||||
if ($this->locale !== 'all') {
|
||||
$queryBuilder->where('locale', $this->locale);
|
||||
}
|
||||
|
||||
if ($this->channel !== 'all') {
|
||||
$queryBuilder->where('ch.code', $this->channel);
|
||||
}
|
||||
|
||||
$this->addFilter('slider_id', 'sl.id');
|
||||
$this->addFilter('channel_name', 'ch.name');
|
||||
|
|
@ -51,6 +71,15 @@ class SliderDataGrid extends DataGrid
|
|||
'sortable' => true,
|
||||
'filterable' => true,
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'locale',
|
||||
'label' => trans('admin::app.datagrid.locale'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'filterable' => true
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareActions()
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ use Webkul\User\Database\Seeders\DatabaseSeeder as UserSeeder;
|
|||
use Webkul\Customer\Database\Seeders\DatabaseSeeder as CustomerSeeder;
|
||||
use Webkul\Inventory\Database\Seeders\DatabaseSeeder as InventorySeeder;
|
||||
use Webkul\CMS\Database\Seeders\DatabaseSeeder as CMSSeeder;
|
||||
use Webkul\SocialLogin\Database\Seeders\DatabaseSeeder as SocialLoginSeeder;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
|
|
@ -27,5 +28,6 @@ class DatabaseSeeder extends Seeder
|
|||
$this->call(UserSeeder::class);
|
||||
$this->call(CustomerSeeder::class);
|
||||
$this->call(CMSSeeder::class);
|
||||
$this->call(SocialLoginSeeder::class);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,14 @@
|
|||
|
||||
namespace Webkul\Admin\Http\Controllers\Customer;
|
||||
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Webkul\Admin\Http\Controllers\Controller;
|
||||
use Webkul\Customer\Repositories\CustomerRepository;
|
||||
|
||||
use Webkul\Customer\Repositories\CustomerAddressRepository;
|
||||
use Webkul\Customer\Repositories\CustomerGroupRepository;
|
||||
use Webkul\Core\Repositories\ChannelRepository;
|
||||
|
||||
use Webkul\Admin\Mail\NewCustomerNotification;
|
||||
use Mail;
|
||||
|
||||
|
|
@ -25,6 +29,13 @@ class CustomerController extends Controller
|
|||
*/
|
||||
protected $customerRepository;
|
||||
|
||||
/**
|
||||
* CustomerAddress Repository object
|
||||
*
|
||||
* @var \Webkul\Customer\Repositories\CustomerAddressRepository
|
||||
*/
|
||||
protected $customerAddressRepository;
|
||||
|
||||
/**
|
||||
* CustomerGroupRepository object
|
||||
*
|
||||
|
|
@ -43,26 +54,26 @@ class CustomerController extends Controller
|
|||
* Create a new controller instance.
|
||||
*
|
||||
* @param \Webkul\Customer\Repositories\CustomerRepository $customerRepository
|
||||
* @param \Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository
|
||||
* @param \Webkul\Customer\Repositories\CustomerGroupRepository $customerGroupRepository
|
||||
* @param \Webkul\Core\Repositories\ChannelRepository $channelRepository
|
||||
*/
|
||||
public function __construct(
|
||||
CustomerRepository $customerRepository,
|
||||
CustomerAddressRepository $customerAddressRepository,
|
||||
CustomerGroupRepository $customerGroupRepository,
|
||||
ChannelRepository $channelRepository
|
||||
)
|
||||
{
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->customerRepository = $customerRepository;
|
||||
|
||||
$this->customerGroupRepository = $customerGroupRepository;
|
||||
|
||||
$this->channelRepository = $channelRepository;
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
{
|
||||
$this->_config = request('_config');
|
||||
$this->middleware('admin');
|
||||
$this->customerRepository = $customerRepository;
|
||||
|
||||
$this->customerAddressRepository = $customerAddressRepository;
|
||||
$this->customerGroupRepository = $customerGroupRepository;
|
||||
$this->channelRepository = $channelRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
|
|
@ -111,8 +122,12 @@ class CustomerController extends Controller
|
|||
|
||||
$data['is_verified'] = 1;
|
||||
|
||||
Event::dispatch('customer.registration.before');
|
||||
|
||||
$customer = $this->customerRepository->create($data);
|
||||
|
||||
Event::dispatch('customer.registration.after', $customer);
|
||||
|
||||
try {
|
||||
$configKey = 'emails.general.notifications.emails.general.notifications.customer';
|
||||
if (core()->getConfigData($configKey)) {
|
||||
|
|
@ -136,12 +151,11 @@ class CustomerController extends Controller
|
|||
public function edit($id)
|
||||
{
|
||||
$customer = $this->customerRepository->findOrFail($id);
|
||||
|
||||
$address = $this->customerAddressRepository->find($id);
|
||||
$customerGroup = $this->customerGroupRepository->findWhere([['code', '<>', 'guest']]);
|
||||
|
||||
$channelName = $this->channelRepository->all();
|
||||
|
||||
return view($this->_config['view'], compact('customer', 'customerGroup', 'channelName'));
|
||||
return view($this->_config['view'], compact('customer', 'address', 'customerGroup', 'channelName'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -164,7 +178,11 @@ class CustomerController extends Controller
|
|||
|
||||
$data['status'] = ! isset($data['status']) ? 0 : 1;
|
||||
|
||||
$this->customerRepository->update($data, $id);
|
||||
Event::dispatch('customer.update.before');
|
||||
|
||||
$customer = $this->customerRepository->update($data, $id);
|
||||
|
||||
Event::dispatch('customer.update.after', $customer);
|
||||
|
||||
session()->flash('success', trans('admin::app.response.update-success', ['name' => 'Customer']));
|
||||
|
||||
|
|
|
|||
|
|
@ -241,6 +241,8 @@ class DashboardController extends Controller
|
|||
->addSelect('id', 'customer_id', 'customer_email', 'customer_first_name', 'customer_last_name')
|
||||
->where('orders.created_at', '>=', $this->startDate)
|
||||
->where('orders.created_at', '<=', $this->endDate)
|
||||
->where('orders.status', '<>', 'closed')
|
||||
->where('orders.status', '<>', 'canceled')
|
||||
->groupBy('customer_email')
|
||||
->orderBy('total_base_grand_total', 'DESC')
|
||||
->limit(5)
|
||||
|
|
|
|||
|
|
@ -2,8 +2,10 @@
|
|||
|
||||
namespace Webkul\Admin\Http\Controllers\Sales;
|
||||
|
||||
use Illuminate\Support\Facades\Event;
|
||||
use Webkul\Admin\Http\Controllers\Controller;
|
||||
use Webkul\Sales\Repositories\OrderRepository;
|
||||
use \Webkul\Sales\Repositories\OrderCommentRepository;
|
||||
|
||||
class OrderController extends Controller
|
||||
{
|
||||
|
|
@ -21,19 +23,32 @@ class OrderController extends Controller
|
|||
*/
|
||||
protected $orderRepository;
|
||||
|
||||
/**
|
||||
* OrderCommentRepository object
|
||||
*
|
||||
* @var \Webkul\Sales\Repositories\OrderCommentRepository
|
||||
*/
|
||||
protected $orderCommentRepository;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @param \Webkul\Sales\Repositories\OrderRepository $orderRepository
|
||||
* @param \Webkul\Sales\Repositories\OrderCommentRepository $orderCommentRepository
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(OrderRepository $orderRepository)
|
||||
public function __construct(
|
||||
OrderRepository $orderRepository,
|
||||
OrderCommentRepository $orderCommentRepository
|
||||
)
|
||||
{
|
||||
$this->middleware('admin');
|
||||
|
||||
$this->_config = request('_config');
|
||||
|
||||
$this->orderRepository = $orderRepository;
|
||||
|
||||
$this->orderCommentRepository = $orderCommentRepository;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -77,4 +92,29 @@ class OrderController extends Controller
|
|||
|
||||
return redirect()->back();
|
||||
}
|
||||
|
||||
/**
|
||||
* Add comment to the order
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function comment($id)
|
||||
{
|
||||
$data = array_merge(request()->all(), [
|
||||
'order_id' => $id,
|
||||
]);
|
||||
|
||||
$data['customer_notified'] = isset($data['customer_notified']) ? 1 : 0;
|
||||
|
||||
Event::dispatch('sales.order.comment.create.before', $data);
|
||||
|
||||
$comment = $this->orderCommentRepository->create($data);
|
||||
|
||||
Event::dispatch('sales.order.comment.create.after', $comment);
|
||||
|
||||
session()->flash('success', trans('admin::app.sales.orders.comment-added-success'));
|
||||
|
||||
return redirect()->back();
|
||||
}
|
||||
}
|
||||
|
|
@ -107,6 +107,10 @@ class RefundController extends Controller
|
|||
|
||||
$data = request()->all();
|
||||
|
||||
if (! $data['refund']['shipping']) {
|
||||
$data['refund']['shipping'] = 0;
|
||||
}
|
||||
|
||||
$totals = $this->refundRepository->getOrderItemsRefundSummary($data['refund']['items'], $orderId);
|
||||
|
||||
$maxRefundAmount = $totals['grand_total']['price'] - $order->refunds()->sum('base_adjustment_refund');
|
||||
|
|
|
|||
|
|
@ -108,8 +108,6 @@ class ShipmentController extends Controller
|
|||
}
|
||||
|
||||
$this->validate(request(), [
|
||||
'shipment.carrier_title' => 'required',
|
||||
'shipment.track_number' => 'required',
|
||||
'shipment.source' => 'required',
|
||||
'shipment.items.*.*' => 'required|numeric|min:0',
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -7,69 +7,69 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Login Routes
|
||||
Route::get('/login', 'Webkul\User\Http\Controllers\SessionController@create')->defaults('_config', [
|
||||
'view' => 'admin::users.sessions.create'
|
||||
'view' => 'admin::users.sessions.create',
|
||||
])->name('admin.session.create');
|
||||
|
||||
//login post route to admin auth controller
|
||||
Route::post('/login', 'Webkul\User\Http\Controllers\SessionController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.dashboard.index'
|
||||
'redirect' => 'admin.dashboard.index',
|
||||
])->name('admin.session.store');
|
||||
|
||||
// Forget Password Routes
|
||||
Route::get('/forget-password', 'Webkul\User\Http\Controllers\ForgetPasswordController@create')->defaults('_config', [
|
||||
'view' => 'admin::users.forget-password.create'
|
||||
'view' => 'admin::users.forget-password.create',
|
||||
])->name('admin.forget-password.create');
|
||||
|
||||
Route::post('/forget-password', 'Webkul\User\Http\Controllers\ForgetPasswordController@store')->name('admin.forget-password.store');
|
||||
|
||||
// Reset Password Routes
|
||||
Route::get('/reset-password/{token}', 'Webkul\User\Http\Controllers\ResetPasswordController@create')->defaults('_config', [
|
||||
'view' => 'admin::users.reset-password.create'
|
||||
'view' => 'admin::users.reset-password.create',
|
||||
])->name('admin.reset-password.create');
|
||||
|
||||
Route::post('/reset-password', 'Webkul\User\Http\Controllers\ResetPasswordController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.dashboard.index'
|
||||
'redirect' => 'admin.dashboard.index',
|
||||
])->name('admin.reset-password.store');
|
||||
|
||||
|
||||
// Admin Routes
|
||||
Route::group(['middleware' => ['admin']], function () {
|
||||
Route::get('/logout', 'Webkul\User\Http\Controllers\SessionController@destroy')->defaults('_config', [
|
||||
'redirect' => 'admin.session.create'
|
||||
'redirect' => 'admin.session.create',
|
||||
])->name('admin.session.destroy');
|
||||
|
||||
// Dashboard Route
|
||||
Route::get('dashboard', 'Webkul\Admin\Http\Controllers\DashboardController@index')->defaults('_config', [
|
||||
'view' => 'admin::dashboard.index'
|
||||
'view' => 'admin::dashboard.index',
|
||||
])->name('admin.dashboard.index');
|
||||
|
||||
//Customer Management Routes
|
||||
Route::get('customers', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@index')->defaults('_config', [
|
||||
'view' => 'admin::customers.index'
|
||||
'view' => 'admin::customers.index',
|
||||
])->name('admin.customer.index');
|
||||
|
||||
Route::get('customers/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@create')->defaults('_config',[
|
||||
'view' => 'admin::customers.create'
|
||||
Route::get('customers/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@create')->defaults('_config', [
|
||||
'view' => 'admin::customers.create',
|
||||
])->name('admin.customer.create');
|
||||
|
||||
Route::post('customers/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@store')->defaults('_config',[
|
||||
'redirect' => 'admin.customer.index'
|
||||
Route::post('customers/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.index',
|
||||
])->name('admin.customer.store');
|
||||
|
||||
Route::get('customers/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@edit')->defaults('_config',[
|
||||
'view' => 'admin::customers.edit'
|
||||
Route::get('customers/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@edit')->defaults('_config', [
|
||||
'view' => 'admin::customers.edit',
|
||||
])->name('admin.customer.edit');
|
||||
|
||||
Route::get('customers/note/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@createNote')->defaults('_config',[
|
||||
'view' => 'admin::customers.note'
|
||||
Route::get('customers/note/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@createNote')->defaults('_config', [
|
||||
'view' => 'admin::customers.note',
|
||||
])->name('admin.customer.note.create');
|
||||
|
||||
Route::put('customers/note/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@storeNote')->defaults('_config',[
|
||||
'redirect' => 'admin.customer.index'
|
||||
Route::put('customers/note/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@storeNote')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.index',
|
||||
])->name('admin.customer.note.store');
|
||||
|
||||
Route::put('customers/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.index'
|
||||
'redirect' => 'admin.customer.index',
|
||||
])->name('admin.customer.update');
|
||||
|
||||
Route::post('customers/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@destroy')->name('admin.customer.delete');
|
||||
|
|
@ -78,95 +78,95 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
Route::post('customers/masssupdate', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@massUpdate')->name('admin.customer.mass-update');
|
||||
|
||||
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[
|
||||
'view' => 'admin::customers.reviews.index'
|
||||
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config', [
|
||||
'view' => 'admin::customers.reviews.index',
|
||||
])->name('admin.customer.review.index');
|
||||
|
||||
//Customer's addresses routes
|
||||
Route::get('customers/{id}/addresses', 'Webkul\Admin\Http\Controllers\Customer\AddressController@index')->defaults('_config', [
|
||||
'view' => 'admin::customers.addresses.index'
|
||||
'view' => 'admin::customers.addresses.index',
|
||||
])->name('admin.customer.addresses.index');
|
||||
|
||||
Route::get('customers/{id}/addresses/create', 'Webkul\Admin\Http\Controllers\Customer\AddressController@create')->defaults('_config',[
|
||||
'view' => 'admin::customers.addresses.create'
|
||||
Route::get('customers/{id}/addresses/create', 'Webkul\Admin\Http\Controllers\Customer\AddressController@create')->defaults('_config', [
|
||||
'view' => 'admin::customers.addresses.create',
|
||||
])->name('admin.customer.addresses.create');
|
||||
|
||||
Route::post('customers/{id}/addresses/create', 'Webkul\Admin\Http\Controllers\Customer\AddressController@store')->defaults('_config',[
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
Route::post('customers/{id}/addresses/create', 'Webkul\Admin\Http\Controllers\Customer\AddressController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index',
|
||||
])->name('admin.customer.addresses.store');
|
||||
|
||||
Route::get('customers/addresses/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@edit')->defaults('_config',[
|
||||
'view' => 'admin::customers.addresses.edit'
|
||||
Route::get('customers/addresses/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@edit')->defaults('_config', [
|
||||
'view' => 'admin::customers.addresses.edit',
|
||||
])->name('admin.customer.addresses.edit');
|
||||
|
||||
Route::put('customers/addresses/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
'redirect' => 'admin.customer.addresses.index',
|
||||
])->name('admin.customer.addresses.update');
|
||||
|
||||
Route::post('customers/addresses/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\AddressController@destroy')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
'redirect' => 'admin.customer.addresses.index',
|
||||
])->name('admin.customer.addresses.delete');
|
||||
|
||||
//mass destroy
|
||||
Route::post('customers/{id}/addresses', 'Webkul\Admin\Http\Controllers\Customer\AddressController@massDestroy')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.addresses.index'
|
||||
'redirect' => 'admin.customer.addresses.index',
|
||||
])->name('admin.customer.addresses.massdelete');
|
||||
|
||||
// Configuration routes
|
||||
Route::get('configuration/{slug?}/{slug2?}', 'Webkul\Admin\Http\Controllers\ConfigurationController@index')->defaults('_config', [
|
||||
'view' => 'admin::configuration.index'
|
||||
'view' => 'admin::configuration.index',
|
||||
])->name('admin.configuration.index');
|
||||
|
||||
Route::post('configuration/{slug?}/{slug2?}', 'Webkul\Admin\Http\Controllers\ConfigurationController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.configuration.index'
|
||||
'redirect' => 'admin.configuration.index',
|
||||
])->name('admin.configuration.index.store');
|
||||
|
||||
Route::get('configuration/{slug?}/{slug2?}/{path}', 'Webkul\Admin\Http\Controllers\ConfigurationController@download')->defaults('_config', [
|
||||
'redirect' => 'admin.configuration.index'
|
||||
'redirect' => 'admin.configuration.index',
|
||||
])->name('admin.configuration.download');
|
||||
|
||||
// Reviews Routes
|
||||
Route::get('reviews/edit/{id}', 'Webkul\Product\Http\Controllers\ReviewController@edit')->defaults('_config',[
|
||||
'view' => 'admin::customers.reviews.edit'
|
||||
Route::get('reviews/edit/{id}', 'Webkul\Product\Http\Controllers\ReviewController@edit')->defaults('_config', [
|
||||
'view' => 'admin::customers.reviews.edit',
|
||||
])->name('admin.customer.review.edit');
|
||||
|
||||
Route::put('reviews/edit/{id}', 'Webkul\Product\Http\Controllers\ReviewController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.review.index'
|
||||
'redirect' => 'admin.customer.review.index',
|
||||
])->name('admin.customer.review.update');
|
||||
|
||||
Route::post('reviews/delete/{id}', 'Webkul\Product\Http\Controllers\ReviewController@destroy')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.review.index'
|
||||
'redirect' => 'admin.customer.review.index',
|
||||
])->name('admin.customer.review.delete');
|
||||
|
||||
//mass destroy
|
||||
Route::post('reviews/massdestroy', 'Webkul\Product\Http\Controllers\ReviewController@massDestroy')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.review.index'
|
||||
'redirect' => 'admin.customer.review.index',
|
||||
])->name('admin.customer.review.massdelete');
|
||||
|
||||
//mass update
|
||||
Route::post('reviews/massupdate', 'Webkul\Product\Http\Controllers\ReviewController@massUpdate')->defaults('_config', [
|
||||
'redirect' => 'admin.customer.review.index'
|
||||
'redirect' => 'admin.customer.review.index',
|
||||
])->name('admin.customer.review.massupdate');
|
||||
|
||||
// Customer Groups Routes
|
||||
Route::get('groups', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@index')->defaults('_config',[
|
||||
'view' => 'admin::customers.groups.index'
|
||||
Route::get('groups', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@index')->defaults('_config', [
|
||||
'view' => 'admin::customers.groups.index',
|
||||
])->name('admin.groups.index');
|
||||
|
||||
Route::get('groups/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@create')->defaults('_config',[
|
||||
'view' => 'admin::customers.groups.create'
|
||||
Route::get('groups/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@create')->defaults('_config', [
|
||||
'view' => 'admin::customers.groups.create',
|
||||
])->name('admin.groups.create');
|
||||
|
||||
Route::post('groups/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@store')->defaults('_config',[
|
||||
'redirect' => 'admin.groups.index'
|
||||
Route::post('groups/create', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.groups.index',
|
||||
])->name('admin.groups.store');
|
||||
|
||||
Route::get('groups/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@edit')->defaults('_config',[
|
||||
'view' => 'admin::customers.groups.edit'
|
||||
Route::get('groups/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@edit')->defaults('_config', [
|
||||
'view' => 'admin::customers.groups.edit',
|
||||
])->name('admin.groups.edit');
|
||||
|
||||
Route::put('groups/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@update')->defaults('_config',[
|
||||
'redirect' => 'admin.groups.index'
|
||||
Route::put('groups/edit/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.groups.index',
|
||||
])->name('admin.groups.update');
|
||||
|
||||
Route::post('groups/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerGroupController@destroy')->name('admin.groups.delete');
|
||||
|
|
@ -176,77 +176,79 @@ Route::group(['middleware' => ['web']], function () {
|
|||
Route::prefix('sales')->group(function () {
|
||||
// Sales Order Routes
|
||||
Route::get('/orders', 'Webkul\Admin\Http\Controllers\Sales\OrderController@index')->defaults('_config', [
|
||||
'view' => 'admin::sales.orders.index'
|
||||
'view' => 'admin::sales.orders.index',
|
||||
])->name('admin.sales.orders.index');
|
||||
|
||||
Route::get('/orders/view/{id}', 'Webkul\Admin\Http\Controllers\Sales\OrderController@view')->defaults('_config', [
|
||||
'view' => 'admin::sales.orders.view'
|
||||
'view' => 'admin::sales.orders.view',
|
||||
])->name('admin.sales.orders.view');
|
||||
|
||||
Route::get('/orders/cancel/{id}', 'Webkul\Admin\Http\Controllers\Sales\OrderController@cancel')->defaults('_config', [
|
||||
'view' => 'admin::sales.orders.cancel'
|
||||
'view' => 'admin::sales.orders.cancel',
|
||||
])->name('admin.sales.orders.cancel');
|
||||
|
||||
Route::post('/orders/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\OrderController@comment')->name('admin.sales.orders.comment');
|
||||
|
||||
|
||||
// Sales Invoices Routes
|
||||
Route::get('/invoices', 'Webkul\Admin\Http\Controllers\Sales\InvoiceController@index')->defaults('_config', [
|
||||
'view' => 'admin::sales.invoices.index'
|
||||
'view' => 'admin::sales.invoices.index',
|
||||
])->name('admin.sales.invoices.index');
|
||||
|
||||
Route::get('/invoices/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\InvoiceController@create')->defaults('_config', [
|
||||
'view' => 'admin::sales.invoices.create'
|
||||
'view' => 'admin::sales.invoices.create',
|
||||
])->name('admin.sales.invoices.create');
|
||||
|
||||
Route::post('/invoices/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\InvoiceController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.sales.orders.view'
|
||||
'redirect' => 'admin.sales.orders.view',
|
||||
])->name('admin.sales.invoices.store');
|
||||
|
||||
Route::get('/invoices/view/{id}', 'Webkul\Admin\Http\Controllers\Sales\InvoiceController@view')->defaults('_config', [
|
||||
'view' => 'admin::sales.invoices.view'
|
||||
'view' => 'admin::sales.invoices.view',
|
||||
])->name('admin.sales.invoices.view');
|
||||
|
||||
Route::get('/invoices/print/{id}', 'Webkul\Admin\Http\Controllers\Sales\InvoiceController@print')->defaults('_config', [
|
||||
'view' => 'admin::sales.invoices.print'
|
||||
'view' => 'admin::sales.invoices.print',
|
||||
])->name('admin.sales.invoices.print');
|
||||
|
||||
|
||||
// Sales Shipments Routes
|
||||
Route::get('/shipments', 'Webkul\Admin\Http\Controllers\Sales\ShipmentController@index')->defaults('_config', [
|
||||
'view' => 'admin::sales.shipments.index'
|
||||
'view' => 'admin::sales.shipments.index',
|
||||
])->name('admin.sales.shipments.index');
|
||||
|
||||
Route::get('/shipments/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\ShipmentController@create')->defaults('_config', [
|
||||
'view' => 'admin::sales.shipments.create'
|
||||
'view' => 'admin::sales.shipments.create',
|
||||
])->name('admin.sales.shipments.create');
|
||||
|
||||
Route::post('/shipments/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\ShipmentController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.sales.orders.view'
|
||||
'redirect' => 'admin.sales.orders.view',
|
||||
])->name('admin.sales.shipments.store');
|
||||
|
||||
Route::get('/shipments/view/{id}', 'Webkul\Admin\Http\Controllers\Sales\ShipmentController@view')->defaults('_config', [
|
||||
'view' => 'admin::sales.shipments.view'
|
||||
'view' => 'admin::sales.shipments.view',
|
||||
])->name('admin.sales.shipments.view');
|
||||
|
||||
|
||||
// Sales Redunds Routes
|
||||
Route::get('/refunds', 'Webkul\Admin\Http\Controllers\Sales\RefundController@index')->defaults('_config', [
|
||||
'view' => 'admin::sales.refunds.index'
|
||||
'view' => 'admin::sales.refunds.index',
|
||||
])->name('admin.sales.refunds.index');
|
||||
|
||||
Route::get('/refunds/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\RefundController@create')->defaults('_config', [
|
||||
'view' => 'admin::sales.refunds.create'
|
||||
'view' => 'admin::sales.refunds.create',
|
||||
])->name('admin.sales.refunds.create');
|
||||
|
||||
Route::post('/refunds/create/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\RefundController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.sales.orders.view'
|
||||
'redirect' => 'admin.sales.orders.view',
|
||||
])->name('admin.sales.refunds.store');
|
||||
|
||||
Route::post('/refunds/update-qty/{order_id}', 'Webkul\Admin\Http\Controllers\Sales\RefundController@updateQty')->defaults('_config', [
|
||||
'redirect' => 'admin.sales.orders.view'
|
||||
'redirect' => 'admin.sales.orders.view',
|
||||
])->name('admin.sales.refunds.update_qty');
|
||||
|
||||
Route::get('/refunds/view/{id}', 'Webkul\Admin\Http\Controllers\Sales\RefundController@view')->defaults('_config', [
|
||||
'view' => 'admin::sales.refunds.view'
|
||||
'view' => 'admin::sales.refunds.view',
|
||||
])->name('admin.sales.refunds.view');
|
||||
});
|
||||
|
||||
|
|
@ -256,23 +258,23 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Catalog Product Routes
|
||||
Route::get('/products', 'Webkul\Product\Http\Controllers\ProductController@index')->defaults('_config', [
|
||||
'view' => 'admin::catalog.products.index'
|
||||
'view' => 'admin::catalog.products.index',
|
||||
])->name('admin.catalog.products.index');
|
||||
|
||||
Route::get('/products/create', 'Webkul\Product\Http\Controllers\ProductController@create')->defaults('_config', [
|
||||
'view' => 'admin::catalog.products.create'
|
||||
'view' => 'admin::catalog.products.create',
|
||||
])->name('admin.catalog.products.create');
|
||||
|
||||
Route::post('/products/create', 'Webkul\Product\Http\Controllers\ProductController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.products.edit'
|
||||
'redirect' => 'admin.catalog.products.edit',
|
||||
])->name('admin.catalog.products.store');
|
||||
|
||||
Route::get('/products/edit/{id}', 'Webkul\Product\Http\Controllers\ProductController@edit')->defaults('_config', [
|
||||
'view' => 'admin::catalog.products.edit'
|
||||
'view' => 'admin::catalog.products.edit',
|
||||
])->name('admin.catalog.products.edit');
|
||||
|
||||
Route::put('/products/edit/{id}', 'Webkul\Product\Http\Controllers\ProductController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.products.index'
|
||||
'redirect' => 'admin.catalog.products.index',
|
||||
])->name('admin.catalog.products.update');
|
||||
|
||||
Route::post('/products/upload-file/{id}', 'Webkul\Product\Http\Controllers\ProductController@uploadLink')->name('admin.catalog.products.upload_link');
|
||||
|
|
@ -287,44 +289,44 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
//product massdelete
|
||||
Route::post('products/massdelete', 'Webkul\Product\Http\Controllers\ProductController@massDestroy')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.products.index'
|
||||
'redirect' => 'admin.catalog.products.index',
|
||||
])->name('admin.catalog.products.massdelete');
|
||||
|
||||
//product massupdate
|
||||
Route::post('products/massupdate', 'Webkul\Product\Http\Controllers\ProductController@massUpdate')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.products.index'
|
||||
'redirect' => 'admin.catalog.products.index',
|
||||
])->name('admin.catalog.products.massupdate');
|
||||
|
||||
//product search for linked products
|
||||
Route::get('products/search', 'Webkul\Product\Http\Controllers\ProductController@productLinkSearch')->defaults('_config', [
|
||||
'view' => 'admin::catalog.products.edit'
|
||||
'view' => 'admin::catalog.products.edit',
|
||||
])->name('admin.catalog.products.productlinksearch');
|
||||
|
||||
Route::get('products/search-simple-products', 'Webkul\Product\Http\Controllers\ProductController@searchSimpleProducts')->name('admin.catalog.products.search_simple_product');
|
||||
|
||||
Route::get('/products/{id}/{attribute_id}', 'Webkul\Product\Http\Controllers\ProductController@download')->defaults('_config', [
|
||||
'view' => 'admin.catalog.products.edit'
|
||||
'view' => 'admin.catalog.products.edit',
|
||||
])->name('admin.catalog.products.file.download');
|
||||
|
||||
// Catalog Category Routes
|
||||
Route::get('/categories', 'Webkul\Category\Http\Controllers\CategoryController@index')->defaults('_config', [
|
||||
'view' => 'admin::catalog.categories.index'
|
||||
'view' => 'admin::catalog.categories.index',
|
||||
])->name('admin.catalog.categories.index');
|
||||
|
||||
Route::get('/categories/create', 'Webkul\Category\Http\Controllers\CategoryController@create')->defaults('_config', [
|
||||
'view' => 'admin::catalog.categories.create'
|
||||
'view' => 'admin::catalog.categories.create',
|
||||
])->name('admin.catalog.categories.create');
|
||||
|
||||
Route::post('/categories/create', 'Webkul\Category\Http\Controllers\CategoryController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.categories.index'
|
||||
'redirect' => 'admin.catalog.categories.index',
|
||||
])->name('admin.catalog.categories.store');
|
||||
|
||||
Route::get('/categories/edit/{id}', 'Webkul\Category\Http\Controllers\CategoryController@edit')->defaults('_config', [
|
||||
'view' => 'admin::catalog.categories.edit'
|
||||
'view' => 'admin::catalog.categories.edit',
|
||||
])->name('admin.catalog.categories.edit');
|
||||
|
||||
Route::put('/categories/edit/{id}', 'Webkul\Category\Http\Controllers\CategoryController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.categories.index'
|
||||
'redirect' => 'admin.catalog.categories.index',
|
||||
])->name('admin.catalog.categories.update');
|
||||
|
||||
Route::post('/categories/delete/{id}', 'Webkul\Category\Http\Controllers\CategoryController@destroy')->name('admin.catalog.categories.delete');
|
||||
|
|
@ -332,23 +334,23 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Catalog Attribute Routes
|
||||
Route::get('/attributes', 'Webkul\Attribute\Http\Controllers\AttributeController@index')->defaults('_config', [
|
||||
'view' => 'admin::catalog.attributes.index'
|
||||
'view' => 'admin::catalog.attributes.index',
|
||||
])->name('admin.catalog.attributes.index');
|
||||
|
||||
Route::get('/attributes/create', 'Webkul\Attribute\Http\Controllers\AttributeController@create')->defaults('_config', [
|
||||
'view' => 'admin::catalog.attributes.create'
|
||||
'view' => 'admin::catalog.attributes.create',
|
||||
])->name('admin.catalog.attributes.create');
|
||||
|
||||
Route::post('/attributes/create', 'Webkul\Attribute\Http\Controllers\AttributeController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.attributes.index'
|
||||
'redirect' => 'admin.catalog.attributes.index',
|
||||
])->name('admin.catalog.attributes.store');
|
||||
|
||||
Route::get('/attributes/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@edit')->defaults('_config', [
|
||||
'view' => 'admin::catalog.attributes.edit'
|
||||
'view' => 'admin::catalog.attributes.edit',
|
||||
])->name('admin.catalog.attributes.edit');
|
||||
|
||||
Route::put('/attributes/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.attributes.index'
|
||||
'redirect' => 'admin.catalog.attributes.index',
|
||||
])->name('admin.catalog.attributes.update');
|
||||
|
||||
Route::post('/attributes/delete/{id}', 'Webkul\Attribute\Http\Controllers\AttributeController@destroy')->name('admin.catalog.attributes.delete');
|
||||
|
|
@ -357,23 +359,23 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Catalog Family Routes
|
||||
Route::get('/families', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@index')->defaults('_config', [
|
||||
'view' => 'admin::catalog.families.index'
|
||||
'view' => 'admin::catalog.families.index',
|
||||
])->name('admin.catalog.families.index');
|
||||
|
||||
Route::get('/families/create', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@create')->defaults('_config', [
|
||||
'view' => 'admin::catalog.families.create'
|
||||
'view' => 'admin::catalog.families.create',
|
||||
])->name('admin.catalog.families.create');
|
||||
|
||||
Route::post('/families/create', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.families.index'
|
||||
'redirect' => 'admin.catalog.families.index',
|
||||
])->name('admin.catalog.families.store');
|
||||
|
||||
Route::get('/families/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@edit')->defaults('_config', [
|
||||
'view' => 'admin::catalog.families.edit'
|
||||
'view' => 'admin::catalog.families.edit',
|
||||
])->name('admin.catalog.families.edit');
|
||||
|
||||
Route::put('/families/edit/{id}', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog.families.index'
|
||||
'redirect' => 'admin.catalog.families.index',
|
||||
])->name('admin.catalog.families.update');
|
||||
|
||||
Route::post('/families/delete/{id}', 'Webkul\Attribute\Http\Controllers\AttributeFamilyController@destroy')->name('admin.catalog.families.delete');
|
||||
|
|
@ -382,59 +384,59 @@ Route::group(['middleware' => ['web']], function () {
|
|||
// User Routes
|
||||
//datagrid for backend users
|
||||
Route::get('/users', 'Webkul\User\Http\Controllers\UserController@index')->defaults('_config', [
|
||||
'view' => 'admin::users.users.index'
|
||||
'view' => 'admin::users.users.index',
|
||||
])->name('admin.users.index');
|
||||
|
||||
//create backend user get
|
||||
Route::get('/users/create', 'Webkul\User\Http\Controllers\UserController@create')->defaults('_config', [
|
||||
'view' => 'admin::users.users.create'
|
||||
'view' => 'admin::users.users.create',
|
||||
])->name('admin.users.create');
|
||||
|
||||
//create backend user post
|
||||
Route::post('/users/create', 'Webkul\User\Http\Controllers\UserController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.users.index'
|
||||
'redirect' => 'admin.users.index',
|
||||
])->name('admin.users.store');
|
||||
|
||||
//delete backend user view
|
||||
Route::get('/users/edit/{id}', 'Webkul\User\Http\Controllers\UserController@edit')->defaults('_config', [
|
||||
'view' => 'admin::users.users.edit'
|
||||
'view' => 'admin::users.users.edit',
|
||||
])->name('admin.users.edit');
|
||||
|
||||
//edit backend user submit
|
||||
Route::put('/users/edit/{id}', 'Webkul\User\Http\Controllers\UserController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.users.index'
|
||||
'redirect' => 'admin.users.index',
|
||||
])->name('admin.users.update');
|
||||
|
||||
//delete backend user
|
||||
Route::post('/users/delete/{id}', 'Webkul\User\Http\Controllers\UserController@destroy')->name('admin.users.delete');
|
||||
|
||||
Route::get('/users/confirm/{id}', 'Webkul\User\Http\Controllers\UserController@confirm')->defaults('_config', [
|
||||
'view' => 'admin::customers.confirm-password'
|
||||
'view' => 'admin::customers.confirm-password',
|
||||
])->name('super.users.confirm');
|
||||
|
||||
Route::post('/users/confirm/{id}', 'Webkul\User\Http\Controllers\UserController@destroySelf')->defaults('_config', [
|
||||
'redirect' => 'admin.users.index'
|
||||
'redirect' => 'admin.users.index',
|
||||
])->name('admin.users.destroy');
|
||||
|
||||
// User Role Routes
|
||||
Route::get('/roles', 'Webkul\User\Http\Controllers\RoleController@index')->defaults('_config', [
|
||||
'view' => 'admin::users.roles.index'
|
||||
'view' => 'admin::users.roles.index',
|
||||
])->name('admin.roles.index');
|
||||
|
||||
Route::get('/roles/create', 'Webkul\User\Http\Controllers\RoleController@create')->defaults('_config', [
|
||||
'view' => 'admin::users.roles.create'
|
||||
'view' => 'admin::users.roles.create',
|
||||
])->name('admin.roles.create');
|
||||
|
||||
Route::post('/roles/create', 'Webkul\User\Http\Controllers\RoleController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.roles.index'
|
||||
'redirect' => 'admin.roles.index',
|
||||
])->name('admin.roles.store');
|
||||
|
||||
Route::get('/roles/edit/{id}', 'Webkul\User\Http\Controllers\RoleController@edit')->defaults('_config', [
|
||||
'view' => 'admin::users.roles.edit'
|
||||
'view' => 'admin::users.roles.edit',
|
||||
])->name('admin.roles.edit');
|
||||
|
||||
Route::put('/roles/edit/{id}', 'Webkul\User\Http\Controllers\RoleController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.roles.index'
|
||||
'redirect' => 'admin.roles.index',
|
||||
])->name('admin.roles.update');
|
||||
|
||||
Route::post('/roles/delete/{id}', 'Webkul\User\Http\Controllers\RoleController@destroy')->name('admin.roles.delete');
|
||||
|
|
@ -442,23 +444,23 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Locale Routes
|
||||
Route::get('/locales', 'Webkul\Core\Http\Controllers\LocaleController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.locales.index'
|
||||
'view' => 'admin::settings.locales.index',
|
||||
])->name('admin.locales.index');
|
||||
|
||||
Route::get('/locales/create', 'Webkul\Core\Http\Controllers\LocaleController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.locales.create'
|
||||
'view' => 'admin::settings.locales.create',
|
||||
])->name('admin.locales.create');
|
||||
|
||||
Route::post('/locales/create', 'Webkul\Core\Http\Controllers\LocaleController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.locales.index'
|
||||
'redirect' => 'admin.locales.index',
|
||||
])->name('admin.locales.store');
|
||||
|
||||
Route::get('/locales/edit/{id}', 'Webkul\Core\Http\Controllers\LocaleController@edit')->defaults('_config', [
|
||||
'view' => 'admin::settings.locales.edit'
|
||||
'view' => 'admin::settings.locales.edit',
|
||||
])->name('admin.locales.edit');
|
||||
|
||||
Route::put('/locales/edit/{id}', 'Webkul\Core\Http\Controllers\LocaleController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.locales.index'
|
||||
'redirect' => 'admin.locales.index',
|
||||
])->name('admin.locales.update');
|
||||
|
||||
Route::post('/locales/delete/{id}', 'Webkul\Core\Http\Controllers\LocaleController@destroy')->name('admin.locales.delete');
|
||||
|
|
@ -466,23 +468,23 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Currency Routes
|
||||
Route::get('/currencies', 'Webkul\Core\Http\Controllers\CurrencyController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.currencies.index'
|
||||
'view' => 'admin::settings.currencies.index',
|
||||
])->name('admin.currencies.index');
|
||||
|
||||
Route::get('/currencies/create', 'Webkul\Core\Http\Controllers\CurrencyController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.currencies.create'
|
||||
'view' => 'admin::settings.currencies.create',
|
||||
])->name('admin.currencies.create');
|
||||
|
||||
Route::post('/currencies/create', 'Webkul\Core\Http\Controllers\CurrencyController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.currencies.index'
|
||||
'redirect' => 'admin.currencies.index',
|
||||
])->name('admin.currencies.store');
|
||||
|
||||
Route::get('/currencies/edit/{id}', 'Webkul\Core\Http\Controllers\CurrencyController@edit')->defaults('_config', [
|
||||
'view' => 'admin::settings.currencies.edit'
|
||||
'view' => 'admin::settings.currencies.edit',
|
||||
])->name('admin.currencies.edit');
|
||||
|
||||
Route::put('/currencies/edit/{id}', 'Webkul\Core\Http\Controllers\CurrencyController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.currencies.index'
|
||||
'redirect' => 'admin.currencies.index',
|
||||
])->name('admin.currencies.update');
|
||||
|
||||
Route::post('/currencies/delete/{id}', 'Webkul\Core\Http\Controllers\CurrencyController@destroy')->name('admin.currencies.delete');
|
||||
|
|
@ -492,25 +494,25 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Exchange Rates Routes
|
||||
Route::get('/exchange_rates', 'Webkul\Core\Http\Controllers\ExchangeRateController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.exchange_rates.index'
|
||||
'view' => 'admin::settings.exchange_rates.index',
|
||||
])->name('admin.exchange_rates.index');
|
||||
|
||||
Route::get('/exchange_rates/create', 'Webkul\Core\Http\Controllers\ExchangeRateController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.exchange_rates.create'
|
||||
'view' => 'admin::settings.exchange_rates.create',
|
||||
])->name('admin.exchange_rates.create');
|
||||
|
||||
Route::post('/exchange_rates/create', 'Webkul\Core\Http\Controllers\ExchangeRateController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.exchange_rates.index'
|
||||
'redirect' => 'admin.exchange_rates.index',
|
||||
])->name('admin.exchange_rates.store');
|
||||
|
||||
Route::get('/exchange_rates/edit/{id}', 'Webkul\Core\Http\Controllers\ExchangeRateController@edit')->defaults('_config', [
|
||||
'view' => 'admin::settings.exchange_rates.edit'
|
||||
'view' => 'admin::settings.exchange_rates.edit',
|
||||
])->name('admin.exchange_rates.edit');
|
||||
|
||||
Route::get('/exchange_rates/update-rates/{service}', 'Webkul\Core\Http\Controllers\ExchangeRateController@updateRates')->name('admin.exchange_rates.update-rates');
|
||||
Route::get('/exchange_rates/update-rates', 'Webkul\Core\Http\Controllers\ExchangeRateController@updateRates')->name('admin.exchange_rates.update_rates');
|
||||
|
||||
Route::put('/exchange_rates/edit/{id}', 'Webkul\Core\Http\Controllers\ExchangeRateController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.exchange_rates.index'
|
||||
'redirect' => 'admin.exchange_rates.index',
|
||||
])->name('admin.exchange_rates.update');
|
||||
|
||||
Route::post('/exchange_rates/delete/{id}', 'Webkul\Core\Http\Controllers\ExchangeRateController@destroy')->name('admin.exchange_rates.delete');
|
||||
|
|
@ -518,46 +520,46 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Inventory Source Routes
|
||||
Route::get('/inventory_sources', 'Webkul\Inventory\Http\Controllers\InventorySourceController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.inventory_sources.index'
|
||||
'view' => 'admin::settings.inventory_sources.index',
|
||||
])->name('admin.inventory_sources.index');
|
||||
|
||||
Route::get('/inventory_sources/create', 'Webkul\Inventory\Http\Controllers\InventorySourceController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.inventory_sources.create'
|
||||
'view' => 'admin::settings.inventory_sources.create',
|
||||
])->name('admin.inventory_sources.create');
|
||||
|
||||
Route::post('/inventory_sources/create', 'Webkul\Inventory\Http\Controllers\InventorySourceController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.inventory_sources.index'
|
||||
'redirect' => 'admin.inventory_sources.index',
|
||||
])->name('admin.inventory_sources.store');
|
||||
|
||||
Route::get('/inventory_sources/edit/{id}', 'Webkul\Inventory\Http\Controllers\InventorySourceController@edit')->defaults('_config', [
|
||||
'view' => 'admin::settings.inventory_sources.edit'
|
||||
'view' => 'admin::settings.inventory_sources.edit',
|
||||
])->name('admin.inventory_sources.edit');
|
||||
|
||||
Route::put('/inventory_sources/edit/{id}', 'Webkul\Inventory\Http\Controllers\InventorySourceController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.inventory_sources.index'
|
||||
'redirect' => 'admin.inventory_sources.index',
|
||||
])->name('admin.inventory_sources.update');
|
||||
|
||||
Route::post('/inventory_sources/delete/{id}', 'Webkul\Inventory\Http\Controllers\InventorySourceController@destroy')->name('admin.inventory_sources.delete');
|
||||
|
||||
// Channel Routes
|
||||
Route::get('/channels', 'Webkul\Core\Http\Controllers\ChannelController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.channels.index'
|
||||
'view' => 'admin::settings.channels.index',
|
||||
])->name('admin.channels.index');
|
||||
|
||||
Route::get('/channels/create', 'Webkul\Core\Http\Controllers\ChannelController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.channels.create'
|
||||
'view' => 'admin::settings.channels.create',
|
||||
])->name('admin.channels.create');
|
||||
|
||||
Route::post('/channels/create', 'Webkul\Core\Http\Controllers\ChannelController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.channels.index'
|
||||
'redirect' => 'admin.channels.index',
|
||||
])->name('admin.channels.store');
|
||||
|
||||
Route::get('/channels/edit/{id}', 'Webkul\Core\Http\Controllers\ChannelController@edit')->defaults('_config', [
|
||||
'view' => 'admin::settings.channels.edit'
|
||||
'view' => 'admin::settings.channels.edit',
|
||||
])->name('admin.channels.edit');
|
||||
|
||||
Route::put('/channels/edit/{id}', 'Webkul\Core\Http\Controllers\ChannelController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.channels.index'
|
||||
'redirect' => 'admin.channels.index',
|
||||
])->name('admin.channels.update');
|
||||
|
||||
Route::post('/channels/delete/{id}', 'Webkul\Core\Http\Controllers\ChannelController@destroy')->name('admin.channels.delete');
|
||||
|
|
@ -565,51 +567,51 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
// Admin Profile route
|
||||
Route::get('/account', 'Webkul\User\Http\Controllers\AccountController@edit')->defaults('_config', [
|
||||
'view' => 'admin::account.edit'
|
||||
'view' => 'admin::account.edit',
|
||||
])->name('admin.account.edit');
|
||||
|
||||
Route::put('/account', 'Webkul\User\Http\Controllers\AccountController@update')->name('admin.account.update');
|
||||
|
||||
|
||||
// Admin Store Front Settings Route
|
||||
Route::get('/subscribers','Webkul\Core\Http\Controllers\SubscriptionController@index')->defaults('_config',[
|
||||
'view' => 'admin::customers.subscribers.index'
|
||||
Route::get('/subscribers', 'Webkul\Core\Http\Controllers\SubscriptionController@index')->defaults('_config', [
|
||||
'view' => 'admin::customers.subscribers.index',
|
||||
])->name('admin.customers.subscribers.index');
|
||||
|
||||
//destroy a newsletter subscription item
|
||||
Route::post('subscribers/delete/{id}', 'Webkul\Core\Http\Controllers\SubscriptionController@destroy')->name('admin.customers.subscribers.delete');
|
||||
|
||||
Route::get('subscribers/edit/{id}', 'Webkul\Core\Http\Controllers\SubscriptionController@edit')->defaults('_config', [
|
||||
'view' => 'admin::customers.subscribers.edit'
|
||||
'view' => 'admin::customers.subscribers.edit',
|
||||
])->name('admin.customers.subscribers.edit');
|
||||
|
||||
Route::put('subscribers/update/{id}', 'Webkul\Core\Http\Controllers\SubscriptionController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.customers.subscribers.index'
|
||||
'redirect' => 'admin.customers.subscribers.index',
|
||||
])->name('admin.customers.subscribers.update');
|
||||
|
||||
//slider index
|
||||
Route::get('/slider','Webkul\Core\Http\Controllers\SliderController@index')->defaults('_config',[
|
||||
'view' => 'admin::settings.sliders.index'
|
||||
Route::get('/slider', 'Webkul\Core\Http\Controllers\SliderController@index')->defaults('_config', [
|
||||
'view' => 'admin::settings.sliders.index',
|
||||
])->name('admin.sliders.index');
|
||||
|
||||
//slider create show
|
||||
Route::get('slider/create','Webkul\Core\Http\Controllers\SliderController@create')->defaults('_config',[
|
||||
'view' => 'admin::settings.sliders.create'
|
||||
Route::get('slider/create', 'Webkul\Core\Http\Controllers\SliderController@create')->defaults('_config', [
|
||||
'view' => 'admin::settings.sliders.create',
|
||||
])->name('admin.sliders.create');
|
||||
|
||||
//slider create show
|
||||
Route::post('slider/create','Webkul\Core\Http\Controllers\SliderController@store')->defaults('_config',[
|
||||
'redirect' => 'admin.sliders.index'
|
||||
Route::post('slider/create', 'Webkul\Core\Http\Controllers\SliderController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.sliders.index',
|
||||
])->name('admin.sliders.store');
|
||||
|
||||
//slider edit show
|
||||
Route::get('slider/edit/{id}','Webkul\Core\Http\Controllers\SliderController@edit')->defaults('_config',[
|
||||
'view' => 'admin::settings.sliders.edit'
|
||||
Route::get('slider/edit/{id}', 'Webkul\Core\Http\Controllers\SliderController@edit')->defaults('_config', [
|
||||
'view' => 'admin::settings.sliders.edit',
|
||||
])->name('admin.sliders.edit');
|
||||
|
||||
//slider edit update
|
||||
Route::post('slider/edit/{id}','Webkul\Core\Http\Controllers\SliderController@update')->defaults('_config',[
|
||||
'redirect' => 'admin.sliders.index'
|
||||
Route::post('slider/edit/{id}', 'Webkul\Core\Http\Controllers\SliderController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.sliders.index',
|
||||
])->name('admin.sliders.update');
|
||||
|
||||
//destroy a slider item
|
||||
|
|
@ -617,25 +619,25 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
//tax routes
|
||||
Route::get('/tax-categories', 'Webkul\Tax\Http\Controllers\TaxController@index')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-categories.index'
|
||||
'view' => 'admin::tax.tax-categories.index',
|
||||
])->name('admin.tax-categories.index');
|
||||
|
||||
|
||||
// tax category routes
|
||||
Route::get('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@show')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-categories.create'
|
||||
'view' => 'admin::tax.tax-categories.create',
|
||||
])->name('admin.tax-categories.show');
|
||||
|
||||
Route::post('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@create')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-categories.index'
|
||||
'redirect' => 'admin.tax-categories.index',
|
||||
])->name('admin.tax-categories.create');
|
||||
|
||||
Route::get('/tax-categories/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@edit')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-categories.edit'
|
||||
'view' => 'admin::tax.tax-categories.edit',
|
||||
])->name('admin.tax-categories.edit');
|
||||
|
||||
Route::put('/tax-categories/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-categories.index'
|
||||
'redirect' => 'admin.tax-categories.index',
|
||||
])->name('admin.tax-categories.update');
|
||||
|
||||
Route::post('/tax-categories/delete/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@destroy')->name('admin.tax-categories.delete');
|
||||
|
|
@ -644,29 +646,29 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
//tax rate
|
||||
Route::get('tax-rates', 'Webkul\Tax\Http\Controllers\TaxRateController@index')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-rates.index'
|
||||
'view' => 'admin::tax.tax-rates.index',
|
||||
])->name('admin.tax-rates.index');
|
||||
|
||||
Route::get('tax-rates/create', 'Webkul\Tax\Http\Controllers\TaxRateController@show')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-rates.create'
|
||||
'view' => 'admin::tax.tax-rates.create',
|
||||
])->name('admin.tax-rates.show');
|
||||
|
||||
Route::post('tax-rates/create', 'Webkul\Tax\Http\Controllers\TaxRateController@create')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-rates.index'
|
||||
'redirect' => 'admin.tax-rates.index',
|
||||
])->name('admin.tax-rates.create');
|
||||
|
||||
Route::get('tax-rates/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@edit')->defaults('_config', [
|
||||
'view' => 'admin::tax.tax-rates.edit'
|
||||
'view' => 'admin::tax.tax-rates.edit',
|
||||
])->name('admin.tax-rates.store');
|
||||
|
||||
Route::put('tax-rates/update/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-rates.index'
|
||||
'redirect' => 'admin.tax-rates.index',
|
||||
])->name('admin.tax-rates.update');
|
||||
|
||||
Route::post('/tax-rates/delete/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@destroy')->name('admin.tax-rates.delete');
|
||||
|
||||
Route::post('/tax-rates/import', 'Webkul\Tax\Http\Controllers\TaxRateController@import')->defaults('_config', [
|
||||
'redirect' => 'admin.tax-rates.index'
|
||||
'redirect' => 'admin.tax-rates.index',
|
||||
])->name('admin.tax-rates.import');
|
||||
//tax rate ends
|
||||
|
||||
|
|
@ -675,23 +677,27 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
Route::prefix('promotions')->group(function () {
|
||||
Route::get('cart-rules', 'Webkul\CartRule\Http\Controllers\CartRuleController@index')->defaults('_config', [
|
||||
'view' => 'admin::promotions.cart-rules.index'
|
||||
'view' => 'admin::promotions.cart-rules.index',
|
||||
])->name('admin.cart-rules.index');
|
||||
|
||||
Route::get('cart-rules/create', 'Webkul\CartRule\Http\Controllers\CartRuleController@create')->defaults('_config', [
|
||||
'view' => 'admin::promotions.cart-rules.create'
|
||||
'view' => 'admin::promotions.cart-rules.create',
|
||||
])->name('admin.cart-rules.create');
|
||||
|
||||
Route::post('cart-rules/create', 'Webkul\CartRule\Http\Controllers\CartRuleController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.cart-rules.index'
|
||||
'redirect' => 'admin.cart-rules.index',
|
||||
])->name('admin.cart-rules.store');
|
||||
|
||||
Route::get('cart-rules/copy/{id}', 'Webkul\CartRule\Http\Controllers\CartRuleController@copy')->defaults('_config', [
|
||||
'view' => 'admin::promotions.cart-rules.edit',
|
||||
])->name('admin.cart-rules.copy');
|
||||
|
||||
Route::get('cart-rules/edit/{id}', 'Webkul\CartRule\Http\Controllers\CartRuleController@edit')->defaults('_config', [
|
||||
'view' => 'admin::promotions.cart-rules.edit'
|
||||
'view' => 'admin::promotions.cart-rules.edit',
|
||||
])->name('admin.cart-rules.edit');
|
||||
|
||||
Route::post('cart-rules/edit/{id}', 'Webkul\CartRule\Http\Controllers\CartRuleController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.cart-rules.index'
|
||||
'redirect' => 'admin.cart-rules.index',
|
||||
])->name('admin.cart-rules.update');
|
||||
|
||||
Route::post('cart-rules/delete/{id}', 'Webkul\CartRule\Http\Controllers\CartRuleController@destroy')->name('admin.cart-rules.delete');
|
||||
|
|
@ -703,23 +709,23 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
//Catalog rules
|
||||
Route::get('catalog-rules', 'Webkul\CatalogRule\Http\Controllers\CatalogRuleController@index')->defaults('_config', [
|
||||
'view' => 'admin::promotions.catalog-rules.index'
|
||||
'view' => 'admin::promotions.catalog-rules.index',
|
||||
])->name('admin.catalog-rules.index');
|
||||
|
||||
Route::get('catalog-rules/create', 'Webkul\CatalogRule\Http\Controllers\CatalogRuleController@create')->defaults('_config', [
|
||||
'view' => 'admin::promotions.catalog-rules.create'
|
||||
'view' => 'admin::promotions.catalog-rules.create',
|
||||
])->name('admin.catalog-rules.create');
|
||||
|
||||
Route::post('catalog-rules/create', 'Webkul\CatalogRule\Http\Controllers\CatalogRuleController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog-rules.index'
|
||||
'redirect' => 'admin.catalog-rules.index',
|
||||
])->name('admin.catalog-rules.store');
|
||||
|
||||
Route::get('catalog-rules/edit/{id}', 'Webkul\CatalogRule\Http\Controllers\CatalogRuleController@edit')->defaults('_config', [
|
||||
'view' => 'admin::promotions.catalog-rules.edit'
|
||||
'view' => 'admin::promotions.catalog-rules.edit',
|
||||
])->name('admin.catalog-rules.edit');
|
||||
|
||||
Route::post('catalog-rules/edit/{id}', 'Webkul\CatalogRule\Http\Controllers\CatalogRuleController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.catalog-rules.index'
|
||||
'redirect' => 'admin.catalog-rules.index',
|
||||
])->name('admin.catalog-rules.update');
|
||||
|
||||
Route::post('catalog-rules/delete/{id}', 'Webkul\CatalogRule\Http\Controllers\CatalogRuleController@destroy')->name('admin.catalog-rules.delete');
|
||||
|
|
@ -727,32 +733,32 @@ Route::group(['middleware' => ['web']], function () {
|
|||
|
||||
Route::prefix('cms')->group(function () {
|
||||
Route::get('/', 'Webkul\CMS\Http\Controllers\Admin\PageController@index')->defaults('_config', [
|
||||
'view' => 'admin::cms.index'
|
||||
'view' => 'admin::cms.index',
|
||||
])->name('admin.cms.index');
|
||||
|
||||
|
||||
Route::get('create', 'Webkul\CMS\Http\Controllers\Admin\PageController@create')->defaults('_config', [
|
||||
'view' => 'admin::cms.create'
|
||||
'view' => 'admin::cms.create',
|
||||
])->name('admin.cms.create');
|
||||
|
||||
Route::post('create', 'Webkul\CMS\Http\Controllers\Admin\PageController@store')->defaults('_config', [
|
||||
'redirect' => 'admin.cms.index'
|
||||
'redirect' => 'admin.cms.index',
|
||||
])->name('admin.cms.store');
|
||||
|
||||
Route::get('edit/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@edit')->defaults('_config', [
|
||||
'view' => 'admin::cms.edit'
|
||||
'view' => 'admin::cms.edit',
|
||||
])->name('admin.cms.edit');
|
||||
|
||||
Route::post('edit/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@update')->defaults('_config', [
|
||||
'redirect' => 'admin.cms.index'
|
||||
'redirect' => 'admin.cms.index',
|
||||
])->name('admin.cms.update');
|
||||
|
||||
Route::post('/delete/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@delete')->defaults('_config', [
|
||||
'redirect' => 'admin.cms.index'
|
||||
'redirect' => 'admin.cms.index',
|
||||
])->name('admin.cms.delete');
|
||||
|
||||
Route::post('/massdelete', 'Webkul\CMS\Http\Controllers\Admin\PageController@massDelete')->defaults('_config', [
|
||||
'redirect' => 'admin.cms.index'
|
||||
'redirect' => 'admin.cms.index',
|
||||
])->name('admin.cms.mass-delete');
|
||||
|
||||
// Route::post('/delete/{id}', 'Webkul\CMS\Http\Controllers\Admin\PageController@delete')->defaults('_config', [
|
||||
|
|
|
|||
|
|
@ -10,27 +10,28 @@ use Webkul\Admin\Mail\NewShipmentNotification;
|
|||
use Webkul\Admin\Mail\NewInventorySourceNotification;
|
||||
use Webkul\Admin\Mail\CancelOrderNotification;
|
||||
use Webkul\Admin\Mail\NewRefundNotification;
|
||||
use Webkul\Admin\Mail\OrderCommentNotification;
|
||||
|
||||
class Order
|
||||
{
|
||||
/**
|
||||
* Send new order Mail to the customer and admin
|
||||
*
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Order $order
|
||||
* @return void
|
||||
*/
|
||||
public function sendNewOrderMail($order)
|
||||
{
|
||||
try {
|
||||
/* email to customer */
|
||||
$configKey = 'emails.general.notifications.emails.general.notifications.new-order';
|
||||
|
||||
if (core()->getConfigData($configKey)) {
|
||||
if (core()->getConfigData($configKey))
|
||||
Mail::queue(new NewOrderNotification($order));
|
||||
}
|
||||
|
||||
/* email to admin */
|
||||
$configKey = 'emails.general.notifications.emails.general.notifications.new-admin';
|
||||
|
||||
if (core()->getConfigData($configKey)) {
|
||||
app()->setLocale(env('APP_LOCALE'));
|
||||
Mail::queue(new NewAdminNotification($order));
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
|
|
@ -40,7 +41,7 @@ class Order
|
|||
|
||||
/**
|
||||
* Send new invoice mail to the customer
|
||||
*
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Invoice $invoice
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -63,7 +64,7 @@ class Order
|
|||
|
||||
/**
|
||||
* Send new refund mail to the customer
|
||||
*
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Refund $refund
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -82,7 +83,7 @@ class Order
|
|||
|
||||
/**
|
||||
* Send new shipment mail to the customer
|
||||
*
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\Shipment $shipment
|
||||
* @return void
|
||||
*/
|
||||
|
|
@ -124,4 +125,21 @@ class Order
|
|||
report($e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \Webkul\Sales\Contracts\OrderComment $comment
|
||||
* @return void
|
||||
*/
|
||||
public function sendOrderCommentMail($comment)
|
||||
{
|
||||
if (! $comment->customer_notified) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
Mail::queue(new OrderCommentNotification($comment));
|
||||
} catch (\Exception $e) {
|
||||
report($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Admin\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
|
||||
class OrderCommentNotification extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
/**
|
||||
* The order comment instance.
|
||||
*
|
||||
* @var \Webkul\Sales\Contracts\OrderComment $comment
|
||||
*/
|
||||
public $comment;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @param \Webkul\Sales\Contracts\OrderComment $comment
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($comment)
|
||||
{
|
||||
$this->comment = $comment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
return $this->from(core()->getSenderEmailDetails()['email'], core()->getSenderEmailDetails()['name'])
|
||||
->to($this->comment->order->customer_email, $this->comment->order->customer_full_name)
|
||||
->subject(trans('shop::app.mail.order.comment.subject'))
|
||||
->view('shop::emails.sales.new-order-comment');
|
||||
}
|
||||
}
|
||||
|
|
@ -3,9 +3,6 @@
|
|||
namespace Webkul\Admin\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Webkul\Admin\Providers\EventServiceProvider;
|
||||
use Illuminate\Contracts\Debug\ExceptionHandler;
|
||||
use Webkul\Admin\Exceptions\Handler;
|
||||
use Webkul\Core\Tree;
|
||||
|
||||
class AdminServiceProvider extends ServiceProvider
|
||||
|
|
@ -32,11 +29,6 @@ class AdminServiceProvider extends ServiceProvider
|
|||
$this->registerACL();
|
||||
|
||||
$this->app->register(EventServiceProvider::class);
|
||||
|
||||
$this->app->bind(
|
||||
ExceptionHandler::class,
|
||||
Handler::class
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -96,7 +88,7 @@ class AdminServiceProvider extends ServiceProvider
|
|||
view()->composer(['admin::users.roles.create', 'admin::users.roles.edit'], function ($view) {
|
||||
$view->with('acl', $this->createACL());
|
||||
});
|
||||
|
||||
|
||||
view()->composer(['admin::catalog.products.create'], function ($view) {
|
||||
$items = array();
|
||||
|
||||
|
|
|
|||
|
|
@ -23,5 +23,7 @@ class EventServiceProvider extends ServiceProvider
|
|||
Event::listen('sales.order.cancel.after','Webkul\Admin\Listeners\Order@sendCancelOrderMail');
|
||||
|
||||
Event::listen('sales.refund.save.after','Webkul\Admin\Listeners\Order@sendNewRefundMail');
|
||||
|
||||
Event::listen('sales.order.comment.create.after','Webkul\Admin\Listeners\Order@sendOrderCommentMail');
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
import Vue from 'vue';
|
||||
import VeeValidate from 'vee-validate';
|
||||
import VeeValidate, { Validator } from 'vee-validate';
|
||||
import de from 'vee-validate/dist/locale/de';
|
||||
import ar from 'vee-validate/dist/locale/ar';
|
||||
|
||||
import './bootstrap';
|
||||
|
||||
|
|
@ -7,6 +9,10 @@ window.Vue = Vue;
|
|||
window.VeeValidate = VeeValidate;
|
||||
|
||||
Vue.use(VeeValidate, {
|
||||
dictionary: {
|
||||
ar: ar,
|
||||
de: de,
|
||||
},
|
||||
events: 'input|change|blur',
|
||||
});
|
||||
Vue.prototype.$http = axios
|
||||
|
|
@ -30,6 +36,8 @@ $(document).ready(function () {
|
|||
mounted() {
|
||||
this.addServerErrors();
|
||||
this.addFlashMessages();
|
||||
|
||||
this.$validator.localize(document.documentElement.lang);
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
|
@ -90,7 +98,7 @@ $(document).ready(function () {
|
|||
if (typeof flashMessages == 'undefined') {
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
const flashes = this.$refs.flashes;
|
||||
|
||||
flashMessages.forEach(function(flash) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,17 @@
|
|||
margin-bottom: 0 !important;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px solid $border-color;
|
||||
|
||||
.control-group {
|
||||
span {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
&.date::after {
|
||||
margin-top: -13px;
|
||||
left: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-content {
|
||||
|
|
@ -162,4 +173,17 @@
|
|||
grid-row-gap: 15px;
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.rtl {
|
||||
.dashboard {
|
||||
.page-header {
|
||||
.control-group {
|
||||
&.date::after {
|
||||
margin-top: -13px !important;
|
||||
right: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -66,9 +66,17 @@ body {
|
|||
cursor: pointer;
|
||||
position: relative;
|
||||
|
||||
.app-version {
|
||||
padding: 10px 20px 0px 20px;
|
||||
margin-bottom: -10px;
|
||||
display: block;
|
||||
cursor: default;
|
||||
color: #a2a2a2;
|
||||
}
|
||||
|
||||
.dropdown-list {
|
||||
top: 63px;
|
||||
right: 0px !important;
|
||||
right: 0px;
|
||||
bottom: inherit !important;
|
||||
}
|
||||
|
||||
|
|
@ -311,4 +319,39 @@ body {
|
|||
margin-top: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.ticket-list {
|
||||
.control-group {
|
||||
&.date {
|
||||
&::after {
|
||||
left: unset;
|
||||
right: 10px;
|
||||
top: 34px;
|
||||
}
|
||||
}
|
||||
|
||||
&.has-error {
|
||||
&.date {
|
||||
&::after {
|
||||
top: 47px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rtl {
|
||||
.ticket-list {
|
||||
.control-group {
|
||||
&.has-error {
|
||||
&.date {
|
||||
&::after {
|
||||
top: 47px;
|
||||
right: 100% !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
.rtl {
|
||||
direction: rtl;
|
||||
|
||||
.form-container {
|
||||
text-align: right !important;
|
||||
}
|
||||
|
||||
.navbar-top {
|
||||
.navbar-top-right {
|
||||
text-align: left;
|
||||
|
|
@ -44,18 +48,6 @@
|
|||
margin-right: 20px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.control-group.date {
|
||||
&::after {
|
||||
margin-top: 6px;
|
||||
position: absolute;
|
||||
margin-right: -35px;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content-wrapper {
|
||||
|
|
@ -110,56 +102,6 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
// ui
|
||||
.grid-container {
|
||||
.filter-row-one .search-filter {
|
||||
border: 2px solid #c7c7c7;
|
||||
border-radius: 2px;
|
||||
|
||||
.control {
|
||||
border: none;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
.icon-wrapper {
|
||||
border: none;
|
||||
padding-top: 2px;
|
||||
padding-right: 5px;
|
||||
border-right: 2px solid #c7c7c7;
|
||||
border-radius: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-row-two .filter-tag {
|
||||
.wrapper,
|
||||
.icon.cross-icon {
|
||||
margin-right: 10px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.filter-row-one .dropdown-filters {
|
||||
right: unset;
|
||||
position: static !important;
|
||||
left: 25px;
|
||||
|
||||
.per-page-label {
|
||||
position: static !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.grid-container
|
||||
.filter-wrapper
|
||||
.filter-row-one
|
||||
.dropdown-filters
|
||||
.more-filters
|
||||
.dropdown-toggle
|
||||
.dropdown-header
|
||||
span {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.grid-container .table tbody td.action a:first-child {
|
||||
margin-left: 10px;
|
||||
margin-right: 0px;
|
||||
|
|
@ -180,7 +122,7 @@
|
|||
|
||||
.dropdown-list.bottom-right {
|
||||
left: 0px;
|
||||
right: auto;
|
||||
right: auto !important;
|
||||
}
|
||||
|
||||
.dropdown-list .dropdown-container {
|
||||
|
|
@ -232,14 +174,6 @@
|
|||
float: left;
|
||||
}
|
||||
|
||||
.control-group.date {
|
||||
&::after {
|
||||
margin-top: 15px;
|
||||
position: absolute;
|
||||
margin-right: -35px;
|
||||
}
|
||||
}
|
||||
|
||||
.pagination .page-item .icon {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,8 +48,33 @@
|
|||
}
|
||||
}
|
||||
|
||||
.summary-comment-container {
|
||||
.comment-container {
|
||||
margin-top: 20px;
|
||||
float: left;
|
||||
|
||||
.comment-list {
|
||||
margin-top: 40px;
|
||||
|
||||
li {
|
||||
margin-bottom: 20px;
|
||||
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
margin-top: 5px;
|
||||
color: #8e8e8e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.sale-summary {
|
||||
margin-top: 2%;
|
||||
margin-top: 20px;
|
||||
height: 130px;
|
||||
float: right;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
|
||||
<?php
|
||||
|
||||
return [
|
||||
'save' => 'حفظ',
|
||||
'create' => 'خلق',
|
||||
|
|
@ -42,6 +41,7 @@ return [
|
|||
],
|
||||
|
||||
'layouts' => [
|
||||
'app-version' => 'Version : :version',
|
||||
'my-account' => 'حسابي',
|
||||
'logout' => 'خروج',
|
||||
'visit-shop' => 'قم بزيارة المتجر',
|
||||
|
|
@ -370,7 +370,11 @@ return [
|
|||
'total-due' => 'المجموع المستحق',
|
||||
'cancel-confirm-msg' => 'هل أنت متأكد من أنك تريد إلغاء هذا الطلب ؟',
|
||||
'refunds' => 'المبالغ المستردة',
|
||||
'refunded' => 'تم رد الأموال'
|
||||
'refunded' => 'تم رد الأموال',
|
||||
'comment-added-success' => 'Comment addded successfully.',
|
||||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -409,6 +413,7 @@ return [
|
|||
'add-title' => 'أنشئ شحنة',
|
||||
'save-btn-title' => 'احفظ الشحنة',
|
||||
'qty-ordered' => 'أمر qty',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'من كيوتي إلى السفينة',
|
||||
'available-sources' => 'المصادر المتاحة',
|
||||
'source' => 'المصدر',
|
||||
|
|
@ -728,7 +733,7 @@ return [
|
|||
'target_currency' => 'العملة المستهدفة',
|
||||
'rate' => 'معدل',
|
||||
'exchange-class-not-found' => ':service لم يتم العثور على فئة سعر الصرف آسيف',
|
||||
'update-rates' => ':service تحديث الأسعار باستخدام ',
|
||||
'update-rates' => 'الأسعار',
|
||||
'create-success' => 'تم إنشاء سعر الصرف بنجاح',
|
||||
'update-success' => 'تم تحديث سعر الصرف بنجاح',
|
||||
'delete-success' => 'تم حذف سعر الصرف بنجاح',
|
||||
|
|
@ -1010,6 +1015,7 @@ return [
|
|||
'choose-condition-to-add' => 'اختر شرط لإضافته',
|
||||
'cart-attribute' => 'سمة سلة التسوق',
|
||||
'subtotal' => 'المجموع الفرعي',
|
||||
'additional' => 'Additional Information',
|
||||
'total-items-qty' => 'إجمالي كمية العناصر',
|
||||
'total-weight' => 'الوزن الكلي',
|
||||
'payment-method' => 'طريقة الدفع او السداد',
|
||||
|
|
@ -1298,12 +1304,41 @@ return [
|
|||
'order-number-prefix' => 'بادئة رقم الطلب',
|
||||
'order-number-length' => 'طول رقم الطلب',
|
||||
'order-number-suffix' => 'لاحقة رقم الطلب',
|
||||
'order-number-generator-class' => 'مولد رقم الطلب',
|
||||
'default' => 'إفتراضي',
|
||||
'sandbox' => 'صندوق الرمل',
|
||||
'all-channels' => 'الكل',
|
||||
'all-locales' => 'الكل',
|
||||
'invoice-slip-design' => 'Invoice Slip Design',
|
||||
'logo' => 'logo'
|
||||
'logo' => 'Logo',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Default List Mode',
|
||||
'grid' => 'Grid',
|
||||
'list' => 'List',
|
||||
'products-per-page' => 'Products Per Page',
|
||||
'sort-by' => 'Sort By',
|
||||
'from-z-a' => 'From Z-A',
|
||||
'from-a-z' => 'From A-Z',
|
||||
'newest-first' => 'Newest First',
|
||||
'oldest-first' => 'Oldest First',
|
||||
'cheapest-first' => 'Cheapest First',
|
||||
'expensive-first' => 'Expensive First',
|
||||
'comma-seperated' => 'Comma Seperated',
|
||||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Rich Snippets',
|
||||
'products' => 'Products',
|
||||
'enable' => 'Enable',
|
||||
'show-weight' => 'Show Weight',
|
||||
'show-categories' => 'Show Categories',
|
||||
'show-images' => 'Show Images',
|
||||
'show-reviews' => 'Show Reviews',
|
||||
'show-ratings' => 'Show Ratings',
|
||||
'show-offers' => 'Show Offers',
|
||||
'show-sku' => 'Show SKU',
|
||||
'categories' => 'Categories',
|
||||
'show-sku' => 'Show SKU',
|
||||
'show-search-input-field' => 'Show Search Input Field'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
return [
|
||||
'save' => 'Save',
|
||||
'copy-of' => 'Copy of',
|
||||
'create' => 'Create',
|
||||
'update' => 'Update',
|
||||
'delete' => 'Delete',
|
||||
|
|
@ -19,7 +20,6 @@ return [
|
|||
'true' => 'True',
|
||||
'false' => 'False',
|
||||
'apply' => 'Apply',
|
||||
'action' => 'Action',
|
||||
'label' => 'Label',
|
||||
'name' => 'Name',
|
||||
'title' => 'Title',
|
||||
|
|
@ -42,6 +42,7 @@ return [
|
|||
],
|
||||
|
||||
'layouts' => [
|
||||
'app-version' => 'Version : :version',
|
||||
'my-account' => 'My Account',
|
||||
'logout' => 'Logout',
|
||||
'visit-shop' => 'Visit Shop',
|
||||
|
|
@ -150,6 +151,7 @@ return [
|
|||
'code' => 'Code',
|
||||
'admin-name' => 'Name',
|
||||
'name' => 'Name',
|
||||
'copy' => 'Copy',
|
||||
'direction' => 'Direction',
|
||||
'fullname' => 'Full Name',
|
||||
'type' => 'Type',
|
||||
|
|
@ -363,14 +365,19 @@ return [
|
|||
'tax-percent' => 'Tax Percent',
|
||||
'tax-amount' => 'Tax Amount',
|
||||
'discount-amount' => 'Discount Amount',
|
||||
'discount-amount' => 'Discount Amount',
|
||||
'grand-total' => 'Grand Total',
|
||||
'total-paid' => 'Total Paid',
|
||||
'total-refunded' => 'Total Refunded',
|
||||
'total-due' => 'Total Due',
|
||||
'cancel-confirm-msg' => 'Are you sure you want to cancel this order ?',
|
||||
'refund-btn-title' => 'Refund',
|
||||
'refunds' => 'Refunds'
|
||||
'refunds' => 'Refunds',
|
||||
'comment-added-success' => 'Comment addded successfully.',
|
||||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
'customer-notified' => ':date | Customer <b>Notified</b>',
|
||||
'customer-not-notified' => ':date | Customer <b>Not Notified</b>'
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -409,6 +416,7 @@ return [
|
|||
'add-title' => 'Create Shipment',
|
||||
'save-btn-title' => 'Save Shipment',
|
||||
'qty-ordered' => 'Qty Ordered',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'Qty to Ship',
|
||||
'available-sources' => 'Available Sources',
|
||||
'source' => 'Source',
|
||||
|
|
@ -474,8 +482,6 @@ return [
|
|||
'price' => 'Price',
|
||||
'weight' => 'Weight',
|
||||
'status' => 'Status',
|
||||
'enabled' => 'Enabled',
|
||||
'disabled' => 'Disabled',
|
||||
'add-variant-title' => 'Add Variant',
|
||||
'variant-already-exist-message' => 'Variant with same attribute options already exists.',
|
||||
'add-image-btn-title' => 'Add Image',
|
||||
|
|
@ -507,7 +513,6 @@ return [
|
|||
'searching' => 'Searching ...',
|
||||
'grouped-products' => 'Grouped Products',
|
||||
'search-products' => 'Search Products',
|
||||
'no-result-found' => 'Products not found with same name.',
|
||||
'channel' => 'Channels',
|
||||
'bundle-items' => 'Bundle Items',
|
||||
'add-option-btn-title' => 'Add Option',
|
||||
|
|
@ -519,7 +524,12 @@ return [
|
|||
'checkbox' => 'Checkbox',
|
||||
'multiselect' => 'Multiselect',
|
||||
'new-option' => 'New Option',
|
||||
'is-default' => 'Is Default'
|
||||
'is-default' => 'Is Default',
|
||||
'customer-group' => 'Customer Group',
|
||||
'add-group-price' => 'Add Customer Group Price',
|
||||
'all-group' => 'All Groups',
|
||||
'fixed' => 'Fixed',
|
||||
'discount' => 'Discount',
|
||||
],
|
||||
|
||||
'attributes' => [
|
||||
|
|
@ -557,7 +567,6 @@ return [
|
|||
'no' => 'No',
|
||||
'value_per_locale' => 'Value Per Locale',
|
||||
'value_per_channel' => 'Value Per Channel',
|
||||
'value_per_channel' => 'Value Per Channel',
|
||||
'is_filterable' => 'Use in Layered Navigation',
|
||||
'is_configurable' => 'Use To Create Configurable Product',
|
||||
'admin_name' => 'Admin Name',
|
||||
|
|
@ -666,7 +675,6 @@ return [
|
|||
'edit-button-title' => 'Edit Rate'
|
||||
],
|
||||
'zip_code' => 'Zip Code',
|
||||
'is_zip' => 'Enable Zip Range',
|
||||
],
|
||||
|
||||
'sales' => [
|
||||
|
|
@ -685,7 +693,6 @@ return [
|
|||
'title' => 'Locales',
|
||||
'add-title' => 'Add Locale',
|
||||
'edit-title' => 'Edit Locale',
|
||||
'add-title' => 'Add Locale',
|
||||
'save-btn-title' => 'Save Locale',
|
||||
'general' => 'General',
|
||||
'code' => 'Code',
|
||||
|
|
@ -728,7 +735,7 @@ return [
|
|||
'target_currency' => 'Target Currency',
|
||||
'rate' => 'Rate',
|
||||
'exchange-class-not-found' => ':service exchange rate class not found',
|
||||
'update-rates' => 'Update rates using :service',
|
||||
'update-rates' => 'Update Rates',
|
||||
'create-success' => 'Exchange Rate created successfully.',
|
||||
'update-success' => 'Exchange Rate updated successfully.',
|
||||
'delete-success' => 'Exchange Rate deleted successfully.',
|
||||
|
|
@ -812,7 +819,7 @@ return [
|
|||
'created-fault' => 'Error in creating slider item',
|
||||
'update-success' => 'Slider item successfully updated',
|
||||
'update-fail' => 'Slider cannot be updated',
|
||||
'delete-success' => 'Cannot delete last llider item',
|
||||
'delete-success' => 'Cannot delete last slider item',
|
||||
'delete-fail' => 'Slider item successfully deleted'
|
||||
],
|
||||
|
||||
|
|
@ -858,7 +865,6 @@ return [
|
|||
'edit-button-title' => 'Edit Rate'
|
||||
],
|
||||
'zip_code' => 'Zip Code',
|
||||
'is_zip' => 'Enable Zip Range',
|
||||
'create-success' => 'Tax Rate Created Successfully',
|
||||
'create-error' => 'Cannot Create Tax Rate',
|
||||
'update-success' => 'Tax Rate Updated Successfully',
|
||||
|
|
@ -877,7 +883,6 @@ return [
|
|||
'edit-title' => 'Edit Group',
|
||||
'save-btn-title' => 'Save Group',
|
||||
'title' => 'Groups',
|
||||
'save-btn-title' => 'Save Group',
|
||||
'code' => 'Code',
|
||||
'name' => 'Name',
|
||||
'is_user_defined' => 'User Defined',
|
||||
|
|
@ -893,6 +898,7 @@ return [
|
|||
'address-list' => 'Address\'s List',
|
||||
'order-list' => 'Order\'s List',
|
||||
'address-id' => 'Address ID',
|
||||
'company-name' => 'Company Name',
|
||||
'address-1' => 'Address 1',
|
||||
'city' => 'City',
|
||||
'state-name' => 'State',
|
||||
|
|
@ -940,7 +946,6 @@ return [
|
|||
'other' => 'Other',
|
||||
'male' => 'Male',
|
||||
'female' => 'Female',
|
||||
'phone' => 'Phone',
|
||||
'group-default' => 'Cannot delete the default group.',
|
||||
'edit-help-title' => 'Edit Customer',
|
||||
'delete-help-title' => 'Delete Customer',
|
||||
|
|
@ -1010,6 +1015,7 @@ return [
|
|||
'choose-condition-to-add' => 'Choose a condition to add',
|
||||
'cart-attribute' => 'Cart Attribute',
|
||||
'subtotal' => 'Subtotal',
|
||||
'additional' => 'Additional Information',
|
||||
'total-items-qty' => 'Total Items Qty',
|
||||
'total-weight' => 'Total Weight',
|
||||
'payment-method' => 'Payment Method',
|
||||
|
|
@ -1303,12 +1309,40 @@ return [
|
|||
'order-number-prefix' => 'Order Number Prefix',
|
||||
'order-number-length' => 'Order Number Length',
|
||||
'order-number-suffix' => 'Order Number Suffix',
|
||||
'order-number-generator-class' => 'Order Number Generator',
|
||||
'default' => 'Default',
|
||||
'sandbox' => 'Sandbox',
|
||||
'all-channels' => 'All',
|
||||
'all-locales' => 'All',
|
||||
'all-channels' => 'All Channels',
|
||||
'all-locales' => 'All Locales',
|
||||
'all-customer-groups' => 'All Customer groups',
|
||||
'invoice-slip-design' => 'Invoice Slip Design',
|
||||
'logo' => 'logo'
|
||||
'logo' => 'Logo',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Default List Mode',
|
||||
'grid' => 'Grid',
|
||||
'list' => 'List',
|
||||
'products-per-page' => 'Products Per Page',
|
||||
'sort-by' => 'Sort By',
|
||||
'from-z-a' => 'From Z-A',
|
||||
'from-a-z' => 'From A-Z',
|
||||
'newest-first' => 'Newest First',
|
||||
'oldest-first' => 'Oldest First',
|
||||
'cheapest-first' => 'Cheapest First',
|
||||
'expensive-first' => 'Expensive First',
|
||||
'comma-seperated' => 'Comma Seperated',
|
||||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Rich Snippets',
|
||||
'enable' => 'Enable',
|
||||
'show-weight' => 'Show Weight',
|
||||
'show-categories' => 'Show Categories',
|
||||
'show-images' => 'Show Images',
|
||||
'show-reviews' => 'Show Reviews',
|
||||
'show-ratings' => 'Show Ratings',
|
||||
'show-offers' => 'Show Offers',
|
||||
'show-sku' => 'Show SKU',
|
||||
'categories' => 'Categories',
|
||||
'show-search-input-field' => 'Show Search Input Field'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ return [
|
|||
],
|
||||
|
||||
'layouts' => [
|
||||
'app-version' => 'Version : :version',
|
||||
'account' => 'حساب',
|
||||
'my-account' => 'پروفایل من',
|
||||
'logout' => 'خروج',
|
||||
|
|
@ -370,7 +371,11 @@ return [
|
|||
'cancel-confirm-msg' => 'مطمئن هستید که می خواهید این سفارش را لغو کنید ؟',
|
||||
'refunds' => 'بازپرداخت',
|
||||
'refund-btn-title' => 'بازپرداخت',
|
||||
'refunded' => 'بازپرداخت'
|
||||
'refunded' => 'بازپرداخت',
|
||||
'comment-added-success' => 'Comment addded successfully.',
|
||||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -409,6 +414,7 @@ return [
|
|||
'add-title' => 'ایجاد حمل و نقل',
|
||||
'save-btn-title' => 'ذخیره حمل و نقل',
|
||||
'qty-ordered' => 'سفارش داده شده',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'مقدار به کشتی',
|
||||
'available-sources' => 'منابع موجود',
|
||||
'source' => 'منابع',
|
||||
|
|
@ -728,7 +734,7 @@ return [
|
|||
'target_currency' => 'هدف ارز',
|
||||
'rate' => 'نرخ',
|
||||
'exchange-class-not-found' => 'کلاس نرخ ارز :service یافت نشد',
|
||||
'update-rates' => ' به روز کنید :service نرخ ها را با استفاده از',
|
||||
'update-rates' => 'نرخ ها را به روز کنید',
|
||||
'create-success' => 'نرخ ارز با موفقیت ایجاد شد.',
|
||||
'update-success' => 'نرخ ارز با موفقیت به روز شد.',
|
||||
'delete-success' => 'نرخ ارز با موفقیت حذف شد.',
|
||||
|
|
@ -1010,6 +1016,7 @@ return [
|
|||
'choose-condition-to-add' => 'شرطی را برای اضافه کردن انتخاب کنید',
|
||||
'cart-attribute' => 'ویژگی سبد خرید',
|
||||
'subtotal' => 'فرعی',
|
||||
'additional' => 'Additional Information',
|
||||
'total-items-qty' => 'تعداد کل موارد',
|
||||
'total-weight' => 'وزن کل',
|
||||
'payment-method' => 'روش پرداخت',
|
||||
|
|
@ -1303,13 +1310,42 @@ return [
|
|||
'order-number-prefix' => 'پیش شماره شماره سفارش',
|
||||
'order-number-length' => 'طول شماره سفارش',
|
||||
'order-number-suffix' => 'تعداد کافی شماره سفارش',
|
||||
'order-number-generator-class' => 'تولید کننده شماره سفارش',
|
||||
'default' => 'پیش فرض',
|
||||
'sandbox' => 'Sandbox',
|
||||
'all-channels' => 'همه',
|
||||
'all-locales' => 'همه',
|
||||
'sandbox' => 'Sandbox',
|
||||
'invoice-slip-design' => 'Invoice Slip Design',
|
||||
'logo' => 'logo'
|
||||
'logo' => 'Logo',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Default List Mode',
|
||||
'grid' => 'Grid',
|
||||
'list' => 'List',
|
||||
'products-per-page' => 'Products Per Page',
|
||||
'sort-by' => 'Sort By',
|
||||
'from-z-a' => 'From Z-A',
|
||||
'from-a-z' => 'From A-Z',
|
||||
'newest-first' => 'Newest First',
|
||||
'oldest-first' => 'Oldest First',
|
||||
'cheapest-first' => 'Cheapest First',
|
||||
'expensive-first' => 'Expensive First',
|
||||
'comma-seperated' => 'Comma Seperated',
|
||||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Rich Snippets',
|
||||
'products' => 'Products',
|
||||
'enable' => 'Enable',
|
||||
'show-weight' => 'Show Weight',
|
||||
'show-categories' => 'Show Categories',
|
||||
'show-images' => 'Show Images',
|
||||
'show-reviews' => 'Show Reviews',
|
||||
'show-ratings' => 'Show Ratings',
|
||||
'show-offers' => 'Show Offers',
|
||||
'show-sku' => 'Show SKU',
|
||||
'categories' => 'Categories',
|
||||
'show-sku' => 'Show SKU',
|
||||
'show-search-input-field' => 'Show Search Input Field'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -42,6 +42,7 @@ return [
|
|||
],
|
||||
|
||||
'layouts' => [
|
||||
'app-version' => 'Version : :version',
|
||||
'my-account' => 'Mijn Profiel',
|
||||
'logout' => 'Afmelden',
|
||||
'visit-shop' => 'Winkel Bezoeken',
|
||||
|
|
@ -370,7 +371,11 @@ return [
|
|||
'total-due' => 'Total Due',
|
||||
'cancel-confirm-msg' => 'Weet u zeker dat u deze bestelling wilt annuleren ?',
|
||||
'refund-btn-title' => 'Terugbetaling',
|
||||
'refunds' => 'Terugbetalingen'
|
||||
'refunds' => 'Terugbetalingen',
|
||||
'comment-added-success' => 'Comment addded successfully.',
|
||||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -409,6 +414,7 @@ return [
|
|||
'add-title' => 'Zending maken',
|
||||
'save-btn-title' => 'Zending opslaan',
|
||||
'qty-ordered' => 'Besteld aantal',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'Te verzenden',
|
||||
'available-sources' => 'Beschikbare bronnen',
|
||||
'source' => 'Bron',
|
||||
|
|
@ -728,7 +734,7 @@ return [
|
|||
'target_currency' => 'Valuta doel',
|
||||
'rate' => 'Tarief',
|
||||
'exchange-class-not-found' => ':service wisselkoersklasse niet gevonden',
|
||||
'update-rates' => 'Tarieven bijwerken met :service',
|
||||
'update-rates' => 'Tarieven bijwerken',
|
||||
'create-success' => 'Wisselkoers succesvol aangemaakt.',
|
||||
'update-success' => 'Wisselkoers succesvol bijgewerkt.',
|
||||
'delete-success' => 'Wisselkoers succesvol verwijderd.',
|
||||
|
|
@ -1010,6 +1016,7 @@ return [
|
|||
'choose-condition-to-add' => 'Conditie toevoegen',
|
||||
'cart-attribute' => 'Winkelwagenattribuut',
|
||||
'subtotal' => 'Subtotaal',
|
||||
'additional' => 'Additional Information',
|
||||
'total-items-qty' => 'Totaal aantal artikelen',
|
||||
'total-weight' => 'Totale gewicht',
|
||||
'payment-method' => 'Betaalmethode',
|
||||
|
|
@ -1303,12 +1310,41 @@ return [
|
|||
'order-number-prefix' => 'Bestelnummer prefix',
|
||||
'order-number-length' => 'Bestelnummer Lengte',
|
||||
'order-number-suffix' => 'Achtervoegsel bestelnummer',
|
||||
'order-number-generator-class' => 'Ordernummer Generator',
|
||||
'default' => 'Standaard',
|
||||
'sandbox' => 'Sandbox',
|
||||
'all-channels' => 'Alles',
|
||||
'all-locales' => 'Alles',
|
||||
'invoice-slip-design' => 'Invoice Slip Design',
|
||||
'logo' => 'logo'
|
||||
'logo' => 'Logo',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Default List Mode',
|
||||
'grid' => 'Grid',
|
||||
'list' => 'List',
|
||||
'products-per-page' => 'Products Per Page',
|
||||
'sort-by' => 'Sort By',
|
||||
'from-z-a' => 'From Z-A',
|
||||
'from-a-z' => 'From A-Z',
|
||||
'newest-first' => 'Newest First',
|
||||
'oldest-first' => 'Oldest First',
|
||||
'cheapest-first' => 'Cheapest First',
|
||||
'expensive-first' => 'Expensive First',
|
||||
'comma-seperated' => 'Comma Seperated',
|
||||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Rich Snippets',
|
||||
'products' => 'Products',
|
||||
'enable' => 'Enable',
|
||||
'show-weight' => 'Show Weight',
|
||||
'show-categories' => 'Show Categories',
|
||||
'show-images' => 'Show Images',
|
||||
'show-reviews' => 'Show Reviews',
|
||||
'show-ratings' => 'Show Ratings',
|
||||
'show-offers' => 'Show Offers',
|
||||
'show-sku' => 'Show SKU',
|
||||
'categories' => 'Categories',
|
||||
'show-sku' => 'Show SKU',
|
||||
'show-search-input-field' => 'Show Search Input Field'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'save' => 'Salve ',
|
||||
'create' => 'Crio',
|
||||
'save' => 'Salvar',
|
||||
'create' => 'Criar',
|
||||
'update' => 'Atualizar',
|
||||
'delete' => 'Excluir',
|
||||
'failed' => 'Falhou',
|
||||
|
|
@ -42,6 +42,7 @@ return [
|
|||
],
|
||||
|
||||
'layouts' => [
|
||||
'app-version' => 'Version : :version',
|
||||
'my-account' => 'Minha Conta',
|
||||
'logout' => 'Sair',
|
||||
'visit-shop' => 'Visitar Loja',
|
||||
|
|
@ -64,7 +65,7 @@ return [
|
|||
'settings' => 'Opções',
|
||||
'locales' => 'Idiomas',
|
||||
'currencies' => 'Moedas',
|
||||
'exchange-rates' => 'Impostos de Câmbios',
|
||||
'exchange-rates' => 'Taxas de Câmbios',
|
||||
'inventory-sources' => 'Fontes de Inventários',
|
||||
'channels' => 'Canais (Lojas)',
|
||||
'users' => 'Usuários',
|
||||
|
|
@ -98,7 +99,7 @@ return [
|
|||
'locales' => 'Idiomas',
|
||||
'currencies' => 'Moedas',
|
||||
'exchange-rates' => 'Impostos de Câmbios',
|
||||
'inventory-sources' => 'Fontes de Inventários',
|
||||
'inventory-sources' => 'Origens de Estoque',
|
||||
'channels' => 'Canais (Lojas)',
|
||||
'users' => 'Usuários',
|
||||
'roles' => 'Funções',
|
||||
|
|
@ -370,7 +371,11 @@ return [
|
|||
'total-due' => 'Total Devido',
|
||||
'cancel-confirm-msg' => 'Tem certeza que deseja cancelar esse pedido ?',
|
||||
'refunds' => 'Refunds',
|
||||
'refunded' => 'Refunded'
|
||||
'refunded' => 'Refunded',
|
||||
'comment-added-success' => 'Comment addded successfully.',
|
||||
'comment' => 'Comment',
|
||||
'submit-comment' => 'Submit Comment',
|
||||
'notify-customer' => 'Notify Customer',
|
||||
],
|
||||
|
||||
'invoices' => [
|
||||
|
|
@ -409,6 +414,7 @@ return [
|
|||
'add-title' => 'Criar Entrega',
|
||||
'save-btn-title' => 'Salvar Entrega',
|
||||
'qty-ordered' => 'Qtd pedido',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'Qty para enviar',
|
||||
'available-sources' => 'Fontes Disponíveis',
|
||||
'source' => 'Fonte',
|
||||
|
|
@ -728,6 +734,7 @@ return [
|
|||
'target_currency' => 'Moeda Alvo',
|
||||
'rate' => 'Taxa',
|
||||
'exchange-class-not-found' => ':service de taxa de câmbio de serviço não encontrada',
|
||||
'update-rates' => 'Atualizar Tarifas',
|
||||
'rate' => 'Taxa',
|
||||
'create-success' => 'Taxa de Câmbio criada com sucesso.',
|
||||
'update-success' => 'Taxa de Câmbio atualizada com sucesso.',
|
||||
|
|
@ -1010,6 +1017,7 @@ return [
|
|||
'choose-condition-to-add' => 'Escolha uma condição para adicionar',
|
||||
'cart-attribute' => 'Atributo do carrinho',
|
||||
'subtotal' => 'Subtotal',
|
||||
'additional' => 'Additional Information',
|
||||
'total-items-qty' => 'Quantidade total de itens',
|
||||
'total-weight' => 'Peso total',
|
||||
'payment-method' => 'Forma de pagamento',
|
||||
|
|
@ -1241,14 +1249,14 @@ return [
|
|||
'system' => [
|
||||
'catalog' => 'Catálogo',
|
||||
'products' => 'Produtos',
|
||||
'guest-checkout' => 'Saída do hóspede',
|
||||
'allow-guest-checkout' => 'Permitir saída do hóspede',
|
||||
'guest-checkout' => 'Compras sem cadastro?',
|
||||
'allow-guest-checkout' => 'Permitir compra para clientes sem cadastros?',
|
||||
'allow-guest-checkout-hint' => 'Dica: se ativada, esta opção pode ser configurada para cada produto especificamente.',
|
||||
'review' => 'Reveja',
|
||||
'allow-guest-review' => 'Permitir comentário de convidado',
|
||||
'review' => 'Avaliações',
|
||||
'allow-guest-review' => 'Permitir comentários sem cadastro?',
|
||||
'inventory' => 'Inventário',
|
||||
'stock-options' => 'Opções de ações',
|
||||
'allow-backorders' => 'Permitir atrasos',
|
||||
'allow-backorders' => 'Permitir Pedidos pelo Admin',
|
||||
'customer' => 'Cliente',
|
||||
'settings' => 'Definições',
|
||||
'address' => 'Endereço',
|
||||
|
|
@ -1287,30 +1295,60 @@ return [
|
|||
'locale-options' => 'Opções de unidade',
|
||||
'weight-unit' => 'Unidade de peso',
|
||||
'admin-page-limit' => 'Itens padrão por página (administrador)',
|
||||
'design' => 'Projeto',
|
||||
'email-settings' => 'Email Settings',
|
||||
'email-sender-name' => 'Email Sender Name',
|
||||
'shop-email-from' => 'Shop Email Address [For sending emails]',
|
||||
'admin-name' => 'Admin Name',
|
||||
'design' => 'Design',
|
||||
'email-settings' => 'Configurações de Email',
|
||||
'email-sender-name' => 'Nome do Email da Loja',
|
||||
'shop-email-from' => 'Endereço de Email da Loja [Para enviar emails]',
|
||||
'admin-name' => 'Admin Nome',
|
||||
'admin-email' => 'Admin Email',
|
||||
'admin-page-limit' => 'Quantidade Padrão de Itens por Página (Admin)',
|
||||
'design' => 'Design',
|
||||
'admin-logo' => 'Admin Logo',
|
||||
'logo-image' => 'Logo Imagem',
|
||||
'credit-max' => 'Máximo de crédito do cliente',
|
||||
'credit-max-value' => 'Valor Máximo de Crédito',
|
||||
'use-credit-max' => 'Use o máximo de crédito',
|
||||
'order-settings' => 'Order Settings',
|
||||
'orderNumber' => 'Order Number Settings',
|
||||
'order-number-prefix' => 'Order Number Prefix',
|
||||
'order-number-length' => 'Order Number Length',
|
||||
'order-number-suffix' => 'Order Number Suffix',
|
||||
'order-settings' => 'Configurações do Pedido',
|
||||
'orderNumber' => 'Configuração do Número do Pedido',
|
||||
'order-number-prefix' => 'Prefixo do Número do Pedido',
|
||||
'order-number-length' => 'Tamanho do Número do Pedido',
|
||||
'order-number-suffix' => 'Sufixo do Número de Pedido',
|
||||
'order-number-generator-class' => 'Gerador de número de pedido',
|
||||
'default' => 'Padrão',
|
||||
'sandbox' => 'Sandbox',
|
||||
'all-channels' => 'Todos',
|
||||
'all-locales' => 'Todos',
|
||||
'sandbox' => 'Sandbox',
|
||||
'invoice-slip-design' => 'Invoice Slip Design',
|
||||
'logo' => 'logo'
|
||||
'invoice-slip-design' => 'Design da Nota do Pedido',
|
||||
'logo' => 'Logo',
|
||||
'storefront' => 'Storefront',
|
||||
'default-list-mode' => 'Default List Mode',
|
||||
'grid' => 'Grid',
|
||||
'list' => 'List',
|
||||
'products-per-page' => 'Products Per Page',
|
||||
'sort-by' => 'Sort By',
|
||||
'from-z-a' => 'From Z-A',
|
||||
'from-a-z' => 'From A-Z',
|
||||
'newest-first' => 'Newest First',
|
||||
'oldest-first' => 'Oldest First',
|
||||
'cheapest-first' => 'Cheapest First',
|
||||
'expensive-first' => 'Expensive First',
|
||||
'comma-seperated' => 'Comma Seperated',
|
||||
'favicon' => 'Favicon',
|
||||
'seo' => 'SEO',
|
||||
'rich-snippets' => 'Rich Snippets',
|
||||
'products' => 'Products',
|
||||
'enable' => 'Enable',
|
||||
'show-weight' => 'Show Weight',
|
||||
'show-categories' => 'Show Categories',
|
||||
'show-images' => 'Show Images',
|
||||
'show-reviews' => 'Show Reviews',
|
||||
'show-ratings' => 'Show Ratings',
|
||||
'show-offers' => 'Show Offers',
|
||||
'show-sku' => 'Show SKU',
|
||||
'categories' => 'Categories',
|
||||
'show-sku' => 'Show SKU',
|
||||
'show-search-input-field' => 'Show Search Input Field'
|
||||
]
|
||||
]
|
||||
];
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.attributes.add-title') }}
|
||||
</h1>
|
||||
|
|
@ -309,7 +309,7 @@
|
|||
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
|
||||
<td>
|
||||
<div class="control-group" :class="[errors.has(localeInputName(row, '{{ $locale->code }}')) ? 'has-error' : '']">
|
||||
<input type="text" v-validate="getOptionValidation(row, '{{ $locale->code }}')" v-model="row['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control" data-vv-as=""{{ $locale->name . ' (' . $locale->code . ')' }}""/>
|
||||
<input type="text" v-validate="getOptionValidation(row, '{{ $locale->code }}')" v-model="row['locales']['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control" data-vv-as=""{{ $locale->name . ' (' . $locale->code . ')' }}""/>
|
||||
<span class="control-error" v-if="errors.has(localeInputName(row, '{{ $locale->code }}'))">@{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
|
@ -383,10 +383,10 @@
|
|||
addOptionRow: function (isNullOptionRow) {
|
||||
const rowCount = this.optionRowCount++;
|
||||
const id = 'option_' + rowCount;
|
||||
let row = {'id': id};
|
||||
let row = {'id': id, 'locales': {}};
|
||||
|
||||
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
|
||||
row['{{ $locale->code }}'] = '';
|
||||
row['locales']['{{ $locale->code }}'] = '';
|
||||
@endforeach
|
||||
|
||||
row['notRequired'] = '';
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.attributes.edit-title') }}
|
||||
</h1>
|
||||
|
|
@ -379,7 +379,7 @@
|
|||
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
|
||||
<td>
|
||||
<div class="control-group" :class="[errors.has(localeInputName(row, '{{ $locale->code }}')) ? 'has-error' : '']">
|
||||
<input type="text" v-validate="getOptionValidation(row, '{{ $locale->code }}')" v-model="row['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control" data-vv-as=""{{ $locale->name . ' (' . $locale->code . ')' }}""/>
|
||||
<input type="text" v-validate="getOptionValidation(row, '{{ $locale->code }}')" v-model="row['locales']['{{ $locale->code }}']" :name="localeInputName(row, '{{ $locale->code }}')" class="control" data-vv-as=""{{ $locale->name . ' (' . $locale->code . ')' }}""/>
|
||||
<span class="control-error" v-if="errors.has(localeInputName(row, '{{ $locale->code }}'))">@{{ errors.first(localeInputName(row, '{!! $locale->code !!}')) }}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
|
@ -418,7 +418,7 @@
|
|||
optionRowCount: 0,
|
||||
optionRows: [],
|
||||
show_swatch: "{{ $attribute->type == 'select' ? true : false }}",
|
||||
swatch_type: "{{ $attribute->swatch_type }}",
|
||||
swatch_type: "{{ $attribute->swatch_type == '' ? 'dropdown' : $attribute->swatch_type }}",
|
||||
isNullOptionChecked: false,
|
||||
idNullOption: null
|
||||
}
|
||||
|
|
@ -429,22 +429,23 @@
|
|||
this.optionRowCount++;
|
||||
|
||||
var row = {
|
||||
'id': '{{ $option->id }}',
|
||||
'admin_name': '{{ $option->admin_name }}',
|
||||
'sort_order': '{{ $option->sort_order }}',
|
||||
'swatch_value': '{{ $option->swatch_value }}',
|
||||
'swatch_value_url': '{{ $option->swatch_value_url }}',
|
||||
'notRequired': ''
|
||||
'id': @json($option->id),
|
||||
'admin_name': @json($option->admin_name),
|
||||
'sort_order': @json($option->sort_order),
|
||||
'swatch_value': @json($option->swatch_value),
|
||||
'swatch_value_url': @json($option->swatch_value_url),
|
||||
'notRequired': '',
|
||||
'locales': {}
|
||||
};
|
||||
|
||||
@if (empty($option->label))
|
||||
this.isNullOptionChecked = true;
|
||||
this.idNullOption = '{{ $option->id }}';
|
||||
this.idNullOption = @json($option->id);
|
||||
row['notRequired'] = true;
|
||||
@endif
|
||||
|
||||
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
|
||||
row['{{ $locale->code }}'] = "{{ $option->translate($locale->code)['label'] ?? '' }}";
|
||||
row['locales']['{{ $locale->code }}'] = @json($option->translate($locale->code)['label'] ?? '');
|
||||
@endforeach
|
||||
|
||||
this.optionRows.push(row);
|
||||
|
|
@ -465,10 +466,10 @@
|
|||
addOptionRow: function (isNullOptionRow) {
|
||||
const rowCount = this.optionRowCount++;
|
||||
const id = 'option_' + rowCount;
|
||||
let row = {'id': id};
|
||||
let row = {'id': id, 'locales': {}};
|
||||
|
||||
@foreach (app('Webkul\Core\Repositories\LocaleRepository')->all() as $locale)
|
||||
row['{{ $locale->code }}'] = '';
|
||||
row['locales']['{{ $locale->code }}'] = '';
|
||||
@endforeach
|
||||
|
||||
row['notRequired'] = '';
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<div class="page-action">
|
||||
<a href="{{ route('admin.catalog.attributes.create') }}" class="btn btn-lg btn-primary">
|
||||
{{ __('Add Attribute') }}
|
||||
{{ __('admin::app.catalog.attributes.add-title') }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -28,4 +28,4 @@
|
|||
|
||||
{!! view_render_event('bagisto.admin.catalog.attributes.list.after') !!}
|
||||
</div>
|
||||
@stop
|
||||
@stop
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.categories.add-title') }}
|
||||
</h1>
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.save') }} {{ __('admin::app.category') }}
|
||||
{{ __('admin::app.catalog.categories.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -220,8 +220,8 @@
|
|||
selector: 'textarea#description',
|
||||
height: 200,
|
||||
width: "100%",
|
||||
plugins: 'image imagetools media wordcount save fullscreen code',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
|
||||
plugins: 'image imagetools media wordcount save fullscreen code table lists link hr',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor link hr | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code | table',
|
||||
image_advtab: true
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.categories.edit-title') }}
|
||||
</h1>
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[name]') ? 'has-error' : '']">
|
||||
<label for="name" class="required">{{ __('admin::app.catalog.categories.name') }}</label>
|
||||
<input type="text" v-validate="'required'" class="control" id="name" name="{{$locale}}[name]" value="{{ old($locale)['name'] ?? $category->translate($locale)['name'] }}" data-vv-as=""{{ __('admin::app.catalog.categories.name') }}"" v-slugify-target="'slug'"/>
|
||||
<input type="text" v-validate="'required'" class="control" id="name" name="{{$locale}}[name]" value="{{ old($locale)['name'] ?? ($category->translate($locale)['name'] ?? '') }}" data-vv-as=""{{ __('admin::app.catalog.categories.name') }}"" v-slugify-target="'slug'"/>
|
||||
<span class="control-error" v-if="errors.has('{{$locale}}[name]')">@{{ errors.first('{!!$locale!!}[name]') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
@ -180,23 +180,23 @@
|
|||
|
||||
<div class="control-group">
|
||||
<label for="meta_title">{{ __('admin::app.catalog.categories.meta_title') }}</label>
|
||||
<input type="text" class="control" id="meta_title" name="{{$locale}}[meta_title]" value="{{ old($locale)['meta_title'] ?? $category->translate($locale)['meta_title'] }}"/>
|
||||
<input type="text" class="control" id="meta_title" name="{{$locale}}[meta_title]" value="{{ old($locale)['meta_title'] ?? ($category->translate($locale)['meta_title'] ?? '') }}"/>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[slug]') ? 'has-error' : '']">
|
||||
<label for="slug" class="required">{{ __('admin::app.catalog.categories.slug') }}</label>
|
||||
<input type="text" v-validate="'required'" class="control" id="slug" name="{{$locale}}[slug]" value="{{ old($locale)['slug'] ?? $category->translate($locale)['slug'] }}" data-vv-as=""{{ __('admin::app.catalog.categories.slug') }}"" v-slugify/>
|
||||
<input type="text" v-validate="'required'" class="control" id="slug" name="{{$locale}}[slug]" value="{{ old($locale)['slug'] ?? ($category->translate($locale)['slug'] ?? '') }}" data-vv-as=""{{ __('admin::app.catalog.categories.slug') }}"" v-slugify/>
|
||||
<span class="control-error" v-if="errors.has('{{$locale}}[slug]')">@{{ errors.first('{!!$locale!!}[slug]') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="meta_description">{{ __('admin::app.catalog.categories.meta_description') }}</label>
|
||||
<textarea class="control" id="meta_description" name="{{$locale}}[meta_description]">{{ old($locale)['meta_description'] ?? $category->translate($locale)['meta_description'] }}</textarea>
|
||||
<textarea class="control" id="meta_description" name="{{$locale}}[meta_description]">{{ old($locale)['meta_description'] ?? ($category->translate($locale)['meta_description'] ?? '') }}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="meta_keywords">{{ __('admin::app.catalog.categories.meta_keywords') }}</label>
|
||||
<textarea class="control" id="meta_keywords" name="{{$locale}}[meta_keywords]">{{ old($locale)['meta_keywords'] ?? $category->translate($locale)['meta_keywords'] }}</textarea>
|
||||
<textarea class="control" id="meta_keywords" name="{{$locale}}[meta_keywords]">{{ old($locale)['meta_keywords'] ?? ($category->translate($locale)['meta_keywords'] ?? '') }}</textarea>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.catalog.category.edit_form_accordian.seo.controls.after', ['category' => $category]) !!}
|
||||
|
|
@ -220,7 +220,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('{{$locale}}[description]') ? 'has-error' : '']">
|
||||
<label for="description" :class="isRequired ? 'required' : ''">{{ __('admin::app.catalog.categories.description') }}</label>
|
||||
<textarea v-validate="isRequired ? 'required' : ''" class="control" id="description" name="{{$locale}}[description]" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old($locale)['description'] ?? $category->translate($locale)['description'] }}</textarea>
|
||||
<textarea v-validate="isRequired ? 'required' : ''" class="control" id="description" name="{{$locale}}[description]" data-vv-as=""{{ __('admin::app.catalog.categories.description') }}"">{{ old($locale)['description'] ?? ($category->translate($locale)['description'] ?? '') }}</textarea>
|
||||
<span class="control-error" v-if="errors.has('{{$locale}}[description]')">@{{ errors.first('{!!$locale!!}[description]') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
@ -232,8 +232,8 @@
|
|||
selector: 'textarea#description',
|
||||
height: 200,
|
||||
width: "100%",
|
||||
plugins: 'image imagetools media wordcount save fullscreen code',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
|
||||
plugins: 'image imagetools media wordcount save fullscreen code table lists link hr',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor link hr | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code | table',
|
||||
image_advtab: true
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.families.add-title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.families.edit-title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,162 @@
|
|||
@section('css')
|
||||
@parent
|
||||
<style>
|
||||
.table th.price, .table th.weight {
|
||||
width: 100px;
|
||||
}
|
||||
.table th.actions {
|
||||
width: 85px;
|
||||
}
|
||||
.table td.actions .icon {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.table td.actions .icon.pencil-lg-icon {
|
||||
margin-right: 10px;
|
||||
}
|
||||
</style>
|
||||
@stop
|
||||
|
||||
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.customer_group_prices.before', ['product' => $product]) !!}
|
||||
|
||||
<customer-group-price-list></customer-group-price-list>
|
||||
|
||||
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.customer_group_prices.after', ['product' => $product]) !!}
|
||||
|
||||
@push('scripts')
|
||||
@parent
|
||||
|
||||
<script type="text/x-template" id="customer-group-price-list-template">
|
||||
<div>
|
||||
<div class="table" style="margin-top: 20px; overflow-x: unset;">
|
||||
<table>
|
||||
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{ __('admin::app.catalog.products.customer-group') }}</th>
|
||||
<th>{{ __('admin::app.catalog.products.qty') }}</th>
|
||||
<th>{{ __('admin::app.catalog.products.price') }}</th>
|
||||
<th class="actions"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
<customer-group-price-item v-for='(customerGroupPrice, index) in customer_group_prices' :customer-group-price="customerGroupPrice" :key="index" :index="index" @onRemoveCustomerGroupPrice="removeCustomerGroupPrice($event)"></customer-group-price-item>
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
<button type="button" class="btn btn-lg btn-primary" style="margin-top: 20px" @click="addCustomerGroupPrice()">
|
||||
{{ __('admin::app.catalog.products.add-group-price') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/x-template" id="customer-group-price-item-template">
|
||||
<tr>
|
||||
<td>
|
||||
<div class="control-group">
|
||||
<select :name="[inputName + '[customer_group_id]']" v-model="customerGroupPrice.customer_group_id" class="control">
|
||||
<option value="">{{ __('admin::app.catalog.products.all-group') }}</option>
|
||||
|
||||
@foreach (app('Webkul\Customer\Repositories\CustomerGroupRepository')->all() as $customerGroup)
|
||||
<option value="{{ $customerGroup->id }}">{{ $customerGroup->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="control-group" :class="[errors.has(inputName + '[qty]') ? 'has-error' : '']">
|
||||
<input type="number" v-validate="'required|min_value:0'" :name="[inputName + '[qty]']" v-model="customerGroupPrice.qty" class="control" data-vv-as=""{{ __('admin::app.catalog.products.qty') }}""/>
|
||||
<span class="control-error" v-if="errors.has(inputName + '[qty]')">@{{ errors.first(inputName + '[qty]') }}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="control-group">
|
||||
<select :name="[inputName + '[value_type]']" v-model="customerGroupPrice.value_type" class="control">
|
||||
<option value="fixed">{{ __('admin::app.catalog.products.fixed') }}</option>
|
||||
<option value="discount">{{ __('admin::app.catalog.products.discount') }}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<div class="control-group" :class="[errors.has(inputName + '[value]') ? 'has-error' : '']">
|
||||
<input type="number" v-validate="'required|min_value:0'" :name="[inputName + '[value]']" v-model="customerGroupPrice.value" class="control" data-vv-as=""{{ __('admin::app.datagrid.price') }}""/>
|
||||
<span class="control-error" v-if="errors.has(inputName + '[value]')">@{{ errors.first(inputName + '[value]') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td class="actions">
|
||||
<i class="icon remove-icon" @click="removeCustomerGroupPrice()"></i>
|
||||
</td>
|
||||
</tr>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('customer-group-price-list', {
|
||||
|
||||
template: '#customer-group-price-list-template',
|
||||
|
||||
inject: ['$validator'],
|
||||
|
||||
data: function() {
|
||||
return {
|
||||
customer_group_prices: @json($product->customer_group_prices()->get())
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
addCustomerGroupPrice: function(item, key) {
|
||||
this.customer_group_prices.push({
|
||||
customer_group_id: '',
|
||||
qty: 0,
|
||||
value_type: 'fixed',
|
||||
amount: 0
|
||||
});
|
||||
},
|
||||
|
||||
removeCustomerGroupPrice: function(customerGroupPrice) {
|
||||
let index = this.customer_group_prices.indexOf(customerGroupPrice)
|
||||
|
||||
this.customer_group_prices.splice(index, 1)
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Vue.component('customer-group-price-item', {
|
||||
|
||||
template: '#customer-group-price-item-template',
|
||||
|
||||
props: ['index', 'customerGroupPrice'],
|
||||
|
||||
inject: ['$validator'],
|
||||
|
||||
mounted: function() {
|
||||
if (! this.customerGroupPrice['customer_group_id']) {
|
||||
this.customerGroupPrice['customer_group_id'] = '';
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
inputName: function () {
|
||||
if (this.customerGroupPrice.id) {
|
||||
return 'customer_group_prices[' + this.customerGroupPrice.id + ']';
|
||||
}
|
||||
|
||||
return 'customer_group_prices[customer_group_price_' + this.index + ']';
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
removeCustomerGroupPrice: function () {
|
||||
this.$emit('onRemoveCustomerGroupPrice', this.customerGroupPrice)
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
<div class="control-group {!! $errors->has('images.*') ? 'has-error' : '' !!}">
|
||||
<label>{{ __('admin::app.catalog.categories.image') }}</label>
|
||||
|
||||
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="images" :images='@json($product->images)'></image-wrapper>
|
||||
<product-image></product-image>
|
||||
|
||||
<span class="control-error" v-if="{!! $errors->has('images.*') !!}">
|
||||
@php $count=1 @endphp
|
||||
|
|
@ -23,4 +23,171 @@
|
|||
</div>
|
||||
</accordian>
|
||||
|
||||
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.images.after', ['product' => $product]) !!}
|
||||
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.images.after', ['product' => $product]) !!}
|
||||
|
||||
@push('scripts')
|
||||
@parent
|
||||
|
||||
<script type="text/x-template" id="product-image-template">
|
||||
<div>
|
||||
<div class="image-wrapper">
|
||||
<product-image-item
|
||||
v-for='(image, index) in items'
|
||||
:key='image.id'
|
||||
:image="image"
|
||||
@onRemoveImage="removeImage($event)"
|
||||
@onImageSelected="imageSelected($event)"
|
||||
></product-image-item>
|
||||
</div>
|
||||
|
||||
<label class="btn btn-lg btn-primary" style="display: inline-block; width: auto" @click="createFileType">
|
||||
{{ __('admin::app.catalog.products.add-image-btn-title') }}
|
||||
</label>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/x-template" id="product-image-item-template">
|
||||
<label class="image-item" v-bind:class="{ 'has-image': imageData.length > 0 }">
|
||||
<input type="hidden" :name="'images[' + image.id + ']'" v-if="! new_image"/>
|
||||
|
||||
<input type="file" v-validate="'mimes:image/*'" accept="image/*" :name="'images[]'" ref="imageInput" :id="_uid" @change="addImageView($event)" multiple="multiple"/>
|
||||
|
||||
<img class="preview" :src="imageData" v-if="imageData.length > 0">
|
||||
|
||||
<label class="remove-image" @click="removeImage()">Remove Image</label>
|
||||
</label>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('product-image', {
|
||||
|
||||
template: '#product-image-template',
|
||||
|
||||
data: function() {
|
||||
return {
|
||||
images: @json($product->images),
|
||||
|
||||
imageCount: 0,
|
||||
|
||||
items: []
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
finalInputName: function() {
|
||||
return 'images[' + this.image.id + ']';
|
||||
}
|
||||
},
|
||||
|
||||
created: function() {
|
||||
var this_this = this;
|
||||
|
||||
this.images.forEach(function(image) {
|
||||
this_this.items.push(image)
|
||||
|
||||
this_this.imageCount++;
|
||||
});
|
||||
},
|
||||
|
||||
methods: {
|
||||
createFileType: function() {
|
||||
var this_this = this;
|
||||
|
||||
this.imageCount++;
|
||||
|
||||
this.items.push({'id': 'image_' + this.imageCount});
|
||||
},
|
||||
|
||||
removeImage (image) {
|
||||
let index = this.items.indexOf(image)
|
||||
|
||||
Vue.delete(this.items, index);
|
||||
},
|
||||
|
||||
imageSelected: function(event) {
|
||||
var this_this = this;
|
||||
|
||||
Array.from(event.files).forEach(function(image, index) {
|
||||
if (index) {
|
||||
this_this.imageCount++;
|
||||
|
||||
this_this.items.push({'id': 'image_' + this_this.imageCount, file: image});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Vue.component('product-image-item', {
|
||||
|
||||
template: '#product-image-item-template',
|
||||
|
||||
props: {
|
||||
image: {
|
||||
type: Object,
|
||||
required: false,
|
||||
default: null
|
||||
},
|
||||
},
|
||||
|
||||
data: function() {
|
||||
return {
|
||||
imageData: '',
|
||||
|
||||
new_image: 0
|
||||
}
|
||||
},
|
||||
|
||||
mounted () {
|
||||
if (this.image.id && this.image.url) {
|
||||
this.imageData = this.image.url;
|
||||
} else if (this.image.id && this.image.file) {
|
||||
this.readFile(this.image.file);
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
finalInputName: function() {
|
||||
return this.inputName + '[' + this.image.id + ']';
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
addImageView: function() {
|
||||
var imageInput = this.$refs.imageInput;
|
||||
|
||||
if (imageInput.files && imageInput.files[0]) {
|
||||
if (imageInput.files[0].type.includes('image/')) {
|
||||
this.readFile(imageInput.files[0])
|
||||
|
||||
if (imageInput.files.length > 1) {
|
||||
this.$emit('onImageSelected', imageInput)
|
||||
}
|
||||
} else {
|
||||
imageInput.value = "";
|
||||
|
||||
alert('Only images (.jpeg, .jpg, .png, ..) are allowed.');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
readFile: function(image) {
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onload = (e) => {
|
||||
this.imageData = e.target.result;
|
||||
}
|
||||
|
||||
reader.readAsDataURL(image);
|
||||
|
||||
this.new_image = 1;
|
||||
},
|
||||
|
||||
removeImage: function() {
|
||||
this.$emit('onRemoveImage', this.image)
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
@endpush
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
|
||||
<tbody>
|
||||
|
||||
<variant-item v-for='(variant, index) in variants' :variant="variant" :key="index" :index="index" @onRemoveVariant="removeVariant($event)"></variant-item>
|
||||
<variant-item v-for='(variant, index) in variants' :variant="variant" :key="index" :index="variant.id" @onRemoveVariant="removeVariant($event)"></variant-item>
|
||||
|
||||
</tbody>
|
||||
|
||||
|
|
@ -148,14 +148,14 @@
|
|||
|
||||
<td>
|
||||
<div class="control-group" :class="[errors.has(variantInputName + '[price]') ? 'has-error' : '']">
|
||||
<input type="number" v-validate="'required|min_value:0.0001'" v-model="variant.price" :name="[variantInputName + '[price]']" class="control" data-vv-as=""{{ __('admin::app.catalog.products.price') }}"" step="any"/>
|
||||
<input type="number" v-validate="'required'" v-model="variant.price" :name="[variantInputName + '[price]']" class="control" data-vv-as=""{{ __('admin::app.catalog.products.price') }}"" step="any"/>
|
||||
<span class="control-error" v-if="errors.has(variantInputName + '[price]')">@{{ errors.first(variantInputName + '[price]') }}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<div class="control-group" :class="[errors.has(variantInputName + '[weight]') ? 'has-error' : '']">
|
||||
<input type="number" v-validate="'required|min_value:0.0001'" v-model="variant.weight" :name="[variantInputName + '[weight]']" class="control" data-vv-as=""{{ __('admin::app.catalog.products.weight') }}"" step="any"/>
|
||||
<input type="number" v-validate="'required'" v-model="variant.weight" :name="[variantInputName + '[weight]']" class="control" data-vv-as=""{{ __('admin::app.catalog.products.weight') }}"" step="any"/>
|
||||
<span class="control-error" v-if="errors.has(variantInputName + '[weight]')">@{{ errors.first(variantInputName + '[weight]') }}</span>
|
||||
</div>
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.products.add-title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link"
|
||||
onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.catalog.products.edit-title') }}
|
||||
</h1>
|
||||
|
|
@ -144,6 +144,12 @@
|
|||
|
||||
@endforeach
|
||||
|
||||
@if ($attributeGroup->name == 'Price')
|
||||
|
||||
@include ('admin::catalog.products.accordians.customer-group-price')
|
||||
|
||||
@endif
|
||||
|
||||
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.' . $attributeGroup->name . '.controls.after', ['product' => $product]) !!}
|
||||
</div>
|
||||
</accordian>
|
||||
|
|
@ -192,8 +198,8 @@
|
|||
selector: 'textarea#description, textarea#short_description',
|
||||
height: 200,
|
||||
width: "100%",
|
||||
plugins: 'image imagetools media wordcount save fullscreen code',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
|
||||
plugins: 'image imagetools media wordcount save fullscreen code table lists link hr',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor link hr | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code | table',
|
||||
image_advtab: true
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<select v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}[]" data-vv-as=""{{ $attribute->admin_name }}"" multiple>
|
||||
|
||||
@foreach ($attribute->options as $option)
|
||||
@foreach ($attribute->options()->orderBy('sort_order')->get() as $option)
|
||||
<option value="{{ $option->id }}" {{ in_array($option->id, explode(',', $product[$attribute->code])) ? 'selected' : ''}}>
|
||||
{{ $option->admin_name }}
|
||||
</option>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
@if ($attribute->code != 'tax_category_id')
|
||||
|
||||
@foreach ($attribute->options as $option)
|
||||
@foreach ($attribute->options()->orderBy('sort_order')->get() as $option)
|
||||
<option value="{{ $option->id }}" {{ $option->id == $selectedOption ? 'selected' : ''}}>
|
||||
{{ $option->admin_name }}
|
||||
</option>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" value="{{ old($attribute->code) ?: $product[$attribute->code] }}" {{ in_array($attribute->code, ['sku', 'url_key']) ? 'v-slugify' : '' }} data-vv-as=""{{ $attribute->admin_name }}"" {{ $attribute->code == 'name' ? 'v-slugify-target=\'url_key\'' : '' }} />
|
||||
<input type="text" v-validate="'{{$validations}}'" class="control" id="{{ $attribute->code }}" name="{{ $attribute->code }}" value="{{ old($attribute->code) ?: $product[$attribute->code] }}" {{ in_array($attribute->code, ['sku', 'url_key']) ? 'v-slugify' : '' }} data-vv-as=""{{ $attribute->admin_name }}"" {{ $attribute->code == 'name' && ! $product[$attribute->code] ? 'v-slugify-target=\'url_key\'' : '' }} />
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
</option>
|
||||
|
||||
@foreach (core()->getAllChannels() as $channelModel)
|
||||
|
||||
<option
|
||||
value="{{ $channelModel->code }}" {{ (isset($channel) && ($channelModel->code) == $channel) ? 'selected' : '' }}>
|
||||
{{ $channelModel->name }}
|
||||
|
|
@ -90,6 +89,6 @@
|
|||
|
||||
window.location.href = url.href;
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
@endpush
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.cms.pages.add-title') }}
|
||||
</h1>
|
||||
|
|
@ -117,11 +117,11 @@
|
|||
selector: 'textarea#content',
|
||||
height: 200,
|
||||
width: "100%",
|
||||
plugins: 'image imagetools media wordcount save fullscreen code',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat | code',
|
||||
plugins: 'image imagetools media wordcount save fullscreen code table lists link hr',
|
||||
toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor alignleft aligncenter alignright alignjustify | link hr |numlist bullist outdent indent | removeformat | code | table',
|
||||
image_advtab: true,
|
||||
valid_elements : '*[*]'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@endpush
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.cms.pages.edit-title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -408,12 +408,12 @@
|
|||
<span class="locale"> [@{{ channel_locale }}] </span>
|
||||
</label>
|
||||
|
||||
<select v-if="this.options.length" v-validate= "validations" class="control" :id = "name" :name = "name" v-model="this.result"
|
||||
<select v-if="this.options.length" v-validate= "validations" class="control" :id = "name" :name = "name" v-model="savedValue"
|
||||
:data-vv-as="field_name">
|
||||
<option v-for='(option, index) in this.options' :value="option.value"> @{{ option.title }} </option>
|
||||
</select>
|
||||
|
||||
<input v-else type="text" class="control" v-validate= "validations" :id = "name" :name = "name" v-model="this.result"
|
||||
<input v-else type="text" class="control" v-validate= "validations" :id = "name" :name = "name" v-model="savedValue"
|
||||
:data-vv-as="field_name">
|
||||
|
||||
<span class="control-error" v-if="errors.has(name)">
|
||||
|
|
@ -436,12 +436,15 @@
|
|||
return {
|
||||
isRequire: false,
|
||||
isVisible: false,
|
||||
savedValue: "",
|
||||
}
|
||||
},
|
||||
|
||||
mounted: function () {
|
||||
var this_this = this;
|
||||
|
||||
this_this.savedValue = this_this.result;
|
||||
|
||||
if (this_this.validations || (this_this.validations.indexOf("required") != -1)) {
|
||||
this_this.isRequire = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,16 @@
|
|||
@stop
|
||||
|
||||
|
||||
@section('content-wrapper')
|
||||
@section('content')
|
||||
|
||||
<div class="content full-page">
|
||||
<div class="content">
|
||||
{!! view_render_event('admin.customer.addresses.create.before') !!}
|
||||
|
||||
<form method="POST" action="{{ route('admin.customer.addresses.store', ['id' => $customer->id]) }}" @submit.prevent="onSubmit">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.addresses.create-title') }}
|
||||
</h1>
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('city') ? 'has-error' : '']">
|
||||
<label for="city" class="required">{{ __('shop::app.customer.account.address.create.city') }}</label>
|
||||
<input type="text" class="control" name="city" v-validate="'required|alpha_spaces'" value="{{ old('city') }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.city') }}"">
|
||||
<input type="text" class="control" name="city" v-validate="'required|regex:^[a-zA-Z \-]*$'" value="{{ old('city') }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.city') }}"">
|
||||
<span class="control-error" v-if="errors.has('city')">@{{ errors.first('city') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,9 +5,9 @@
|
|||
@stop
|
||||
|
||||
|
||||
@section('content-wrapper')
|
||||
@section('content')
|
||||
|
||||
<div class="content full-page">
|
||||
<div class="content">
|
||||
{!! view_render_event('admin.customer.addresses.edit.before', ['address' => $address]) !!}
|
||||
|
||||
<form method="post" action="{{ route('admin.customer.addresses.update', $address->id) }}" @submit.prevent="onSubmit">
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
|
||||
<div class="control-group" :class="[errors.has('city') ? 'has-error' : '']">
|
||||
<label for="city" class="required">{{ __('shop::app.customer.account.address.create.city') }}</label>
|
||||
<input type="text" class="control" name="city" v-validate="'required'" value="{{ old('city') ?: $address->city }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.city') }}"">
|
||||
<input type="text" class="control" name="city" v-validate="'required|regex:^[a-zA-Z \-]*$'" value="{{ old('city') ?: $address->city }}" data-vv-as=""{{ __('shop::app.customer.account.address.create.city') }}"">
|
||||
<span class="control-error" v-if="errors.has('city')">@{{ errors.first('city') }}</span>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
@extends('address::admin.layouts.content')
|
||||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('address::app.admin.addresses.title-orders', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('address::app.admin.addresses.title-orders', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
{{ __('admin::app.users.users.confirm-delete-title') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.customers.title') }}
|
||||
|
||||
|
|
@ -31,24 +31,32 @@
|
|||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.before') !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
|
||||
<label for="first_name" class="required">{{ __('admin::app.customers.customers.first_name') }}</label>
|
||||
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{ old('first_name') }}" data-vv-as=""{{ __('shop::app.customer.signup-form.firstname') }}"">
|
||||
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.first_name.after') !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
|
||||
<label for="last_name" class="required">{{ __('admin::app.customers.customers.last_name') }}</label>
|
||||
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{ old('last_name') }}" data-vv-as=""{{ __('shop::app.customer.signup-form.lastname') }}"">
|
||||
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.last_name.after') !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||
<label for="email" class="required">{{ __('shop::app.customer.signup-form.email') }}</label>
|
||||
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{ old('email') }}" data-vv-as=""{{ __('shop::app.customer.signup-form.email') }}"">
|
||||
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.email.after') !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('gender') ? 'has-error' : '']">
|
||||
<label for="gender" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
|
||||
<select name="gender" class="control" v-validate="'required'" data-vv-as=""{{ __('admin::app.customers.customers.gender') }}"">
|
||||
|
|
@ -60,18 +68,24 @@
|
|||
<span class="control-error" v-if="errors.has('gender')">@{{ errors.first('gender') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.gender.after') !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('date_of_birth') ? 'has-error' : '']">
|
||||
<label for="dob">{{ __('admin::app.customers.customers.date_of_birth') }}</label>
|
||||
<input type="date" class="control" name="date_of_birth" v-validate="" value="{{ old('date_of_birth') }}" data-vv-as=""{{ __('admin::app.customers.customers.date_of_birth') }}"">
|
||||
<span class="control-error" v-if="errors.has('date_of_birth')">@{{ errors.first('date_of_birth') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.date_of_birth.after') !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
|
||||
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
|
||||
<input type="text" class="control" name="phone" value="{{ old('phone') }}" data-vv-as=""{{ __('admin::app.customers.customers.phone') }}"">
|
||||
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.phone.after') !!}
|
||||
|
||||
<div class="control-group">
|
||||
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>
|
||||
<select class="control" name="customer_group_id">
|
||||
|
|
@ -80,6 +94,8 @@
|
|||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customers.create.after') !!}
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -6,113 +6,31 @@
|
|||
|
||||
@section('content')
|
||||
<div class="content">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
{{ $customer->first_name . " " . $customer->last_name }}
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<tabs>
|
||||
{!! view_render_event('bagisto.admin.customer.edit.before', ['customer' => $customer]) !!}
|
||||
|
||||
<form method="POST" action="{{ route('admin.customer.update', $customer->id) }}">
|
||||
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.customers.title') }}
|
||||
</h1>
|
||||
<tab name="{{ __('admin::app.sales.orders.info') }}" :selected="true">
|
||||
<div class="sale-container">
|
||||
@include('admin::customers.general')
|
||||
</div>
|
||||
</tab>
|
||||
|
||||
<div class="page-action">
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.customers.save-btn-title') }}
|
||||
</button>
|
||||
<tab name="{{ __('admin::app.customers.customers.addresses') }}" :selected="false">
|
||||
<div class="style:overflow: auto;"> </div>
|
||||
{!! view_render_event('bagisto.admin.customer.addresses.list.before') !!}
|
||||
{!! app('Webkul\Admin\DataGrids\AddressDataGrid')->render() !!}
|
||||
{!! view_render_event('bagisto.admin.customer.addresses.list.after') !!}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="page-content">
|
||||
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input name="_method" type="hidden" value="PUT">
|
||||
|
||||
<accordian :title="'{{ __('admin::app.account.general') }}'" :active="true">
|
||||
<div slot="body">
|
||||
|
||||
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
|
||||
<label for="first_name" class="required"> {{ __('admin::app.customers.customers.first_name') }}</label>
|
||||
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{old('first_name') ?:$customer->first_name}}"
|
||||
data-vv-as=""{{ __('shop::app.customer.signup-form.firstname') }}""/>
|
||||
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
|
||||
<label for="last_name" class="required"> {{ __('admin::app.customers.customers.last_name') }}</label>
|
||||
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{old('last_name') ?:$customer->last_name}}" data-vv-as=""{{ __('shop::app.customer.signup-form.lastname') }}"">
|
||||
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||
<label for="email" class="required"> {{ __('admin::app.customers.customers.email') }}</label>
|
||||
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{old('email') ?:$customer->email}}" data-vv-as=""{{ __('shop::app.customer.signup-form.email') }}"">
|
||||
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('gender') ? 'has-error' : '']">
|
||||
<label for="gender" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
|
||||
<select name="gender" class="control" value="{{ $customer->gender }}" v-validate="'required'" data-vv-as=""{{ __('admin::app.customers.customers.gender') }}"">
|
||||
<option value="" {{ $customer->gender == "" ? 'selected' : '' }}></option>
|
||||
<option value="{{ __('admin::app.customers.customers.male') }}" {{ $customer->gender == __('admin::app.customers.customers.male') ? 'selected' : '' }}>{{ __('admin::app.customers.customers.male') }}</option>
|
||||
<option value="{{ __('admin::app.customers.customers.female') }}" {{ $customer->gender == __('admin::app.customers.customers.female') ? 'selected' : '' }}>{{ __('admin::app.customers.customers.female') }}</option>
|
||||
<option value="{{ __('admin::app.customers.customers.other') }}" {{ $customer->gender == __('admin::app.customers.customers.other') ? 'selected' : '' }}>{{ __('admin::app.customers.customers.other') }}</option>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('gender')">@{{ errors.first('gender') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="status" class="required">{{ __('admin::app.customers.customers.status') }}</label>
|
||||
|
||||
<label class="switch">
|
||||
<input type="checkbox" id="status" name="status" value="{{ $customer->status }}" {{ $customer->status ? 'checked' : '' }}>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
|
||||
<span class="control-error" v-if="errors.has('status')">@{{ errors.first('status') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('date_of_birth') ? 'has-error' : '']">
|
||||
<label for="dob">{{ __('admin::app.customers.customers.date_of_birth') }}</label>
|
||||
<input type="date" class="control" name="date_of_birth" value="{{ old('date_of_birth') ?:$customer->date_of_birth }}" v-validate="" data-vv-as=""{{ __('admin::app.customers.customers.date_of_birth') }}"">
|
||||
<span class="control-error" v-if="errors.has('date_of_birth')">@{{ errors.first('date_of_birth') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
|
||||
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
|
||||
<input type="text" class="control" name="phone" value="{{ $customer->phone }}" data-vv-as=""{{ __('admin::app.customers.customers.phone') }}"">
|
||||
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
|
||||
</div>
|
||||
|
||||
<div class="control-group">
|
||||
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>
|
||||
|
||||
@if (! is_null($customer->customer_group_id))
|
||||
<?php $selectedCustomerOption = $customer->group->id ?>
|
||||
@else
|
||||
<?php $selectedCustomerOption = '' ?>
|
||||
@endif
|
||||
|
||||
<select class="control" name="customer_group_id">
|
||||
@foreach ($customerGroup as $group)
|
||||
<option value="{{ $group->id }}" {{ $selectedCustomerOption == $group->id ? 'selected' : '' }}>
|
||||
{{ $group->name}}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</accordian>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</tab>
|
||||
{!! view_render_event('bagisto.admin.customer.edit.after', ['customer' => $customer]) !!}
|
||||
</tabs>
|
||||
</div>
|
||||
@stop
|
||||
|
|
@ -0,0 +1,105 @@
|
|||
{!! view_render_event('bagisto.admin.customer.edit.before', ['customer' => $customer]) !!}
|
||||
|
||||
<form method="POST" action="{{ route('admin.customer.update', $customer->id) }}">
|
||||
<div class="page-content">
|
||||
<div class="form-container">
|
||||
@csrf()
|
||||
|
||||
<input name="_method" type="hidden" value="PUT">
|
||||
<div class="style:overflow: auto;"> </div>
|
||||
|
||||
<div slot="body">
|
||||
{!! view_render_event('bagisto.admin.customer.edit.form.before', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('first_name') ? 'has-error' : '']">
|
||||
<label for="first_name" class="required"> {{ __('admin::app.customers.customers.first_name') }}</label>
|
||||
<input type="text" class="control" name="first_name" v-validate="'required'" value="{{old('first_name') ?:$customer->first_name}}"
|
||||
data-vv-as=""{{ __('shop::app.customer.signup-form.firstname') }}""/>
|
||||
<span class="control-error" v-if="errors.has('first_name')">@{{ errors.first('first_name') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.first_name.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('last_name') ? 'has-error' : '']">
|
||||
<label for="last_name" class="required"> {{ __('admin::app.customers.customers.last_name') }}</label>
|
||||
<input type="text" class="control" name="last_name" v-validate="'required'" value="{{old('last_name') ?:$customer->last_name}}" data-vv-as=""{{ __('shop::app.customer.signup-form.lastname') }}"">
|
||||
<span class="control-error" v-if="errors.has('last_name')">@{{ errors.first('last_name') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.last_name.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('email') ? 'has-error' : '']">
|
||||
<label for="email" class="required"> {{ __('admin::app.customers.customers.email') }}</label>
|
||||
<input type="email" class="control" name="email" v-validate="'required|email'" value="{{old('email') ?:$customer->email}}" data-vv-as=""{{ __('shop::app.customer.signup-form.email') }}"">
|
||||
<span class="control-error" v-if="errors.has('email')">@{{ errors.first('email') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.email.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('gender') ? 'has-error' : '']">
|
||||
<label for="gender" class="required">{{ __('admin::app.customers.customers.gender') }}</label>
|
||||
<select name="gender" class="control" value="{{ $customer->gender }}" v-validate="'required'" data-vv-as=""{{ __('admin::app.customers.customers.gender') }}"">
|
||||
<option value="" {{ $customer->gender == "" ? 'selected' : '' }}></option>
|
||||
<option value="{{ __('admin::app.customers.customers.male') }}" {{ $customer->gender == __('admin::app.customers.customers.male') ? 'selected' : '' }}>{{ __('admin::app.customers.customers.male') }}</option>
|
||||
<option value="{{ __('admin::app.customers.customers.female') }}" {{ $customer->gender == __('admin::app.customers.customers.female') ? 'selected' : '' }}>{{ __('admin::app.customers.customers.female') }}</option>
|
||||
<option value="{{ __('admin::app.customers.customers.other') }}" {{ $customer->gender == __('admin::app.customers.customers.other') ? 'selected' : '' }}>{{ __('admin::app.customers.customers.other') }}</option>
|
||||
</select>
|
||||
<span class="control-error" v-if="errors.has('gender')">@{{ errors.first('gender') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.gender.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group">
|
||||
<label for="status" class="required">{{ __('admin::app.customers.customers.status') }}</label>
|
||||
|
||||
<label class="switch">
|
||||
<input type="checkbox" id="status" name="status" value="{{ $customer->status }}" {{ $customer->status ? 'checked' : '' }}>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
|
||||
<span class="control-error" v-if="errors.has('status')">@{{ errors.first('status') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.status.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('date_of_birth') ? 'has-error' : '']">
|
||||
<label for="dob">{{ __('admin::app.customers.customers.date_of_birth') }}</label>
|
||||
<input type="date" class="control" name="date_of_birth" value="{{ old('date_of_birth') ?:$customer->date_of_birth }}" v-validate="" data-vv-as=""{{ __('admin::app.customers.customers.date_of_birth') }}"">
|
||||
<span class="control-error" v-if="errors.has('date_of_birth')">@{{ errors.first('date_of_birth') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.date_of_birth.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group" :class="[errors.has('phone') ? 'has-error' : '']">
|
||||
<label for="phone">{{ __('admin::app.customers.customers.phone') }}</label>
|
||||
<input type="text" class="control" name="phone" value="{{ $customer->phone }}" data-vv-as=""{{ __('admin::app.customers.customers.phone') }}"">
|
||||
<span class="control-error" v-if="errors.has('phone')">@{{ errors.first('phone') }}</span>
|
||||
</div>
|
||||
|
||||
{!! view_render_event('bagisto.admin.customer.edit.phone.after', ['customer' => $customer]) !!}
|
||||
|
||||
<div class="control-group">
|
||||
<label for="customerGroup" >{{ __('admin::app.customers.customers.customer_group') }}</label>
|
||||
|
||||
@if (! is_null($customer->customer_group_id))
|
||||
<?php $selectedCustomerOption = $customer->group->id ?>
|
||||
@else
|
||||
<?php $selectedCustomerOption = '' ?>
|
||||
@endif
|
||||
|
||||
<select class="control" name="customer_group_id">
|
||||
@foreach ($customerGroup as $group)
|
||||
<option value="{{ $group->id }}" {{ $selectedCustomerOption == $group->id ? 'selected' : '' }}>
|
||||
{{ $group->name}}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-lg btn-primary">
|
||||
{{ __('admin::app.customers.customers.save-btn-title') }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{!! view_render_event('bagisto.admin.customer.edit.after', ['customer' => $customer]) !!}
|
||||
|
|
@ -11,8 +11,8 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.groups.add-title') }}
|
||||
</h1>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.groups.edit-title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.note.title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.reviews.edit-title') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<h1>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ url('/admin/dashboard') }}';"></i>
|
||||
<i class="icon angle-left-icon back-link" onclick="history.length > 1 ? history.go(-1) : window.location = '{{ route('admin.dashboard.index') }}';"></i>
|
||||
|
||||
{{ __('admin::app.customers.subscribers.title-edit') }}
|
||||
</h1>
|
||||
|
|
|
|||
|
|
@ -369,11 +369,11 @@
|
|||
<script type="text/x-template" id="date-filter-template">
|
||||
<div>
|
||||
<div class="control-group date">
|
||||
<date @onChange="applyFilter('start', $event)"><input type="text" class="control" id="start_date" value="{{ $startDate->format('Y-m-d') }}" placeholder="{{ __('admin::app.dashboard.from') }}" v-model="start"/></date>
|
||||
<date @onChange="applyFilter('start', $event)" hide-remove-button="1"><input type="text" class="control" id="start_date" value="{{ $startDate->format('Y-m-d') }}" placeholder="{{ __('admin::app.dashboard.from') }}" v-model="start"/></date>
|
||||
</div>
|
||||
|
||||
<div class="control-group date">
|
||||
<date @onChange="applyFilter('end', $event)"><input type="text" class="control" id="end_date" value="{{ $endDate->format('Y-m-d') }}" placeholder="{{ __('admin::app.dashboard.to') }}" v-model="end"/></date>
|
||||
<date @onChange="applyFilter('end', $event)" hide-remove-button="1"><input type="text" class="control" id="end_date" value="{{ $endDate->format('Y-m-d') }}" placeholder="{{ __('admin::app.dashboard.to') }}" v-model="end"/></date>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -7,8 +7,12 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
<link rel="icon" sizes="16x16" href="{{ asset('vendor/webkul/ui/assets/images/favicon.ico') }}" />
|
||||
|
||||
@if ($favicon = core()->getConfigData('general.design.admin_logo.favicon'))
|
||||
<link rel="icon" sizes="16x16" href="{{ \Illuminate\Support\Facades\Storage::url($favicon) }}" />
|
||||
@else
|
||||
<link rel="icon" sizes="16x16" href="{{ asset('vendor/webkul/ui/assets/images/favicon.ico') }}" />
|
||||
@endif
|
||||
|
||||
<link rel="stylesheet" href="{{ asset('vendor/webkul/admin/assets/css/admin.css') }}">
|
||||
<link rel="stylesheet" href="{{ asset('vendor/webkul/ui/assets/css/ui.css') }}">
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue