Merge branch 'master' of https://github.com/vishal-webkul/bagisto into issue-3879

This commit is contained in:
vishal.kushwaha650 2020-09-16 16:02:09 +05:30
commit baf8408b33
40 changed files with 284 additions and 42 deletions

View File

@ -57,9 +57,9 @@ 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
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GOOGLE_CALLBACK_URL=https://yourhost.com/customer/social-login/google/callback
LINKEDIN_CLIENT_ID=
LINKEDIN_CLIENT_SECRET=

View File

@ -43,4 +43,4 @@ MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
SHOP_MAIL_FROM=test@example.com
ADMIN_MAIL_TO=test@example.com
ADMIN_MAIL_TO=test@example.com

2
.gitignore vendored
View File

@ -9,6 +9,7 @@
/public/themes
/public/fonts
/vendor
/data
/.idea
/.vscode
/.vagrant
@ -23,6 +24,5 @@ package-lock.json
yarn.lock
.php_cs.cache
storage/*.key
/docker-compose-collection/
/resources/themes/velocity/*
/resources/lang/vendor/webkul/admin/*

View File

@ -58,10 +58,24 @@
* #3861 [fixed] - Payment Instruction is not implemented for velocity theme
* #3862 [fixed] - Fix Payment Instruction view in checkout page
* #3866 [fixed] - Compare icon is not coming in mobile view as well as layout issue on compare page in mobile view(default theme)
* #3871 [fixed] - downloadable sample link issue in RTL
* #3872 [fixed] - customer profile section having bug in mobile view for default theme
* #3878 [fixed] - Search by name doesn't work when sending a request via API
* #3889 [fixed] - default compare icon should be enabled in french also
* #3890 [fixed] - Add validation at admin end for bundle items qty
* #3894 [fixed] - Customer is not able to increase or decrease the qty of downloadable product from cart in default theme
* #3900 [fixed] - layout issue on cart page in ar (Default theme)
## **v1.2.0-BETA1 (18th of August 2020)** - *Release*

View File

@ -1,6 +1,9 @@
<?php
return [
'convention' => Webkul\Core\CoreConvention::class,
'modules' => [
/**
* Example:

View File

@ -26,6 +26,9 @@ class Category extends JsonResource
'meta_keywords' => $this->meta_keywords,
'status' => $this->status,
'image_url' => $this->image_url,
'additional' => is_array($this->resource->additional)
? $this->resource->additional
: json_decode($this->resource->additional, true),
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];

View File

@ -78,7 +78,7 @@ class ProductDataGrid extends DataGrid
$queryBuilder->whereIn('product_flat.locale', $whereInLocales);
$queryBuilder->whereIn('product_flat.channel', $whereInChannels);
$queryBuilder->whereNotNull('product_flat.name');
// $queryBuilder->whereNotNull('product_flat.name');
$this->addFilter('product_id', 'product_flat.product_id');
$this->addFilter('product_name', 'product_flat.name');

View File

@ -183,14 +183,14 @@
<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="product.qty" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.qty') }}&quot;"/>
<input type="number" v-validate="'required|min_value:1'" :name="[inputName + '[qty]']" v-model="product.qty" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.qty') }}&quot;"/>
<span class="control-error" v-if="errors.has(inputName + '[qty]')">@{{ errors.first(inputName + '[qty]') }}</span>
</div>
</td>
<td>
<div class="control-group" :class="[errors.has(inputName + '[sort_order]') ? 'has-error' : '']">
<input type="number" v-validate="'required|min_value:0'" :name="[inputName + '[sort_order]']" v-model="product.sort_order" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.sort-order') }}&quot;"/>
<input type="number" v-validate="'required|min_value:1'" :name="[inputName + '[sort_order]']" v-model="product.sort_order" class="control" data-vv-as="&quot;{{ __('admin::app.catalog.products.sort-order') }}&quot;"/>
<span class="control-error" v-if="errors.has(inputName + '[sort_order]')">@{{ errors.first(inputName + '[sort_order]') }}</span>
</div>
</td>

View File

@ -170,6 +170,20 @@
{{ $order->order_currency_code }}
</span>
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="row">
<span class="title">
{{ $additionalDetails['title'] }}
</span>
<span class="value">
{{ $additionalDetails['value'] }}
</span>
</div>
@endif
</div>
</div>

View File

@ -207,6 +207,15 @@
<tr>
<td>
{{ core()->getConfigData('sales.paymentmethods.' . $invoice->order->payment->method . '.title') }}
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($invoice->order->payment->method); @endphp
@if (! empty($additionalDetails))
<div>
<label class="label">{{ $additionalDetails['title'] }}:</label>
<p class="value">{{ $additionalDetails['value'] }}</p>
</div>
@endif
</td>
@if ($invoice->order->shipping_address)

View File

@ -222,6 +222,20 @@
</span>
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="row">
<span class="title">
{{ $additionalDetails['title'] }}
</span>
<span class="value">
{{ $additionalDetails['value'] }}
</span>
</div>
@endif
{!! view_render_event('sales.order.payment-method.after', ['order' => $order]) !!}
</div>
</div>

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddAdditionalToCategory extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('categories', function (Blueprint $table) {
$table->json('additional')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('categories', function (Blueprint $table) {
$table->dropColumn('additional');
});
}
}

View File

@ -31,7 +31,13 @@ class Category extends TranslatableModel implements CategoryContract
'meta_keywords',
];
protected $fillable = ['position', 'status', 'display_mode', 'parent_id'];
protected $fillable = [
'position',
'status',
'display_mode',
'parent_id',
'additional',
];
protected $with = ['translations'];

View File

@ -172,7 +172,7 @@ class Cart
'cart_id' => $cart->id
]));
} else {
// if ($cartItem->product->getTypeInstance()->showQuantityBox() === false) {
// if ($cartItem->product->getTypeInstance()->isMultipleQtyAllowed() === false) {
// return ['warning' => __('shop::app.checkout.cart.integrity.qty_impossible')];
// }

View File

@ -1,6 +1,9 @@
<?php
return [
'convention' => Webkul\Core\CoreConvention::class,
'modules' => [
/**
* Example:

View File

@ -0,0 +1,16 @@
<?php
namespace Webkul\Core;
use Konekt\Concord\Conventions\ConcordDefault;
class CoreConvention extends ConcordDefault
{
/**
* @inheritDoc
*/
public function migrationsFolder(): string
{
return 'Database/Migrations';
}
}

View File

@ -85,6 +85,12 @@ abstract class AbstractType
*/
protected $showQuantityBox = false;
/**
*
* @var bool
*/
protected $allowMultipleQty = true;
/**
* Is product have sufficient quantity
*
@ -378,6 +384,16 @@ abstract class AbstractType
return $this->showQuantityBox;
}
/**
* Return true if more than one qty can be added to cart
*
* @return bool
*/
public function isMultipleQtyAllowed()
{
return $this->allowMultipleQty;
}
/**
* @param \Webkul\Checkout\Contracts\CartItem $cartItem
*

View File

@ -56,6 +56,13 @@ class Downloadable extends AbstractType
*/
protected $isStockable = false;
/**
* Show quantity box
*
* @var bool
*/
protected $allowMultipleQty = false;
/**
* getProductOptions
*/

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddUniqueIndexToIncrementIdInOrdersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('orders', function (Blueprint $table) {
$table->string('increment_id')->unique()->change();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('orders', function (Blueprint $table) {
});
}
}

View File

@ -213,7 +213,7 @@ class OrderRepository extends Repository
$totalQtyInvoiced += $item->qty_invoiced;
if (! $item->isStockable()) {
$totalQtyShipped += $item->qty_ordered;
$totalQtyShipped += $item->qty_invoiced;
} else {
$totalQtyShipped += $item->qty_shipped;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10,8 +10,8 @@
*/
/*!
* Vue.js v2.6.11
* (c) 2014-2019 Evan You
* Vue.js v2.6.12
* (c) 2014-2020 Evan You
* Released under the MIT License.
*/

View File

@ -1,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js?id=d64fdfe9e3fe3e4b9ee4",
"/css/shop.css": "/css/shop.css?id=dbbe4951362b3f0ea3e2"
"/js/shop.js": "/js/shop.js?id=e8a8f56c4e7037f09d9f",
"/css/shop.css": "/css/shop.css?id=5921caa0500dc820d23f"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

View File

@ -271,7 +271,6 @@ input {
justify-content: space-between;
align-items: center;
width: 100%;
height: 125px;
.media-info {
display: flex;
@ -284,6 +283,7 @@ input {
.info {
margin-left: 20px;
margin-right: 20px;
display: flex;
flex-direction: column;
justify-content: space-evenly;
@ -296,7 +296,6 @@ input {
}
.operations {
height: 120px;
display: flex;
flex-direction: column;
justify-content: space-between;
@ -2438,6 +2437,7 @@ section.cart {
flex-direction: column;
justify-content: flex-start;
width: 100%;
overflow-x: auto;
.item-title {
font-size: 18px;
@ -4068,6 +4068,7 @@ section.review {
.main-container-wrapper .product-card .sticker {
left: auto;
right: 20px;
min-width: 52px;
}
.main-container-wrapper .product-card .cart-wish-wrap .addtocart {
@ -4337,7 +4338,7 @@ section.review {
padding-left: 0px;
}
}
//checkout process page end here
//customer page start here
@ -4369,6 +4370,7 @@ section.review {
a.btn.btn-lg.btn-primary {
float: left;
margin-right: 15px;
}
.account-item-card {
@ -4636,7 +4638,6 @@ td {
max-width: 250px;
line-height: 30px;
vertical-align: top;
word-break: break-word;
}
.icon.remove-product {

View File

@ -97,6 +97,12 @@
height: 24px;
}
.compare-icon {
background-image: url("../images/compare_arrows.png");
width: 32px;
height: 32px;
}
.wishlist-icon {
background-image: url('../images/wishlist.svg');
width: 32px;

View File

@ -211,6 +211,15 @@
<tr>
<td>
{{ core()->getConfigData('sales.paymentmethods.' . $invoice->order->payment->method . '.title') }}
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($invoice->order->payment->method); @endphp
@if (! empty($additionalDetails))
<div>
<label class="label">{{ $additionalDetails['title'] }}:</label>
<p class="value">{{ $additionalDetails['value'] }}</p>
</div>
@endif
</td>
@if ($invoice->order->shipping_address)

View File

@ -529,6 +529,15 @@
<div class="box-content">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="instructions">
<label>{{ $additionalDetails['title'] }}</label>
<p>{{ $additionalDetails['value'] }}</p>
</div>
@endif
{!! view_render_event('bagisto.shop.customers.account.orders.view.payment-method.after', ['order' => $order]) !!}
</div>
</div>

View File

@ -103,6 +103,15 @@
<div style="font-size: 16px; color: #242424;">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div style="font-size: 16px; color: #242424;">
<div>{{ $additionalDetails['title'] }}</div>
<div>{{ $additionalDetails['value'] }}</div>
</div>
@endif
</div>
</div>

View File

@ -98,9 +98,18 @@
{{ __('shop::app.mail.order.payment') }}
</div>
<div style="font-weight: bold;font-size: 16px; color: #242424;">
<div style="font-weight: bold; font-size: 16px; color: #242424; margin-bottom: 20px;">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div style="font-size: 16px; color: #242424;">
<div>{{ $additionalDetails['title'] }}</div>
<div>{{ $additionalDetails['value'] }}</div>
</div>
@endif
</div>
</div>
@ -165,12 +174,12 @@
@endif
@foreach (Webkul\Tax\Helpers\Tax::getTaxRatesWithAmount($order, false) as $taxRate => $taxAmount )
<div>
<span id="taxrate-{{ core()->taxRateAsIdentifier($taxRate) }}">{{ __('shop::app.mail.order.tax') }} {{ $taxRate }} %</span>
<span id="taxamount-{{ core()->taxRateAsIdentifier($taxRate) }}" style="float: right;">
{{ core()->formatPrice($taxAmount, $order->order_currency_code) }}
</span>
</div>
<div>
<span id="taxrate-{{ core()->taxRateAsIdentifier($taxRate) }}">{{ __('shop::app.mail.order.tax') }} {{ $taxRate }} %</span>
<span id="taxamount-{{ core()->taxRateAsIdentifier($taxRate) }}" style="float: right;">
{{ core()->formatPrice($taxAmount, $order->order_currency_code) }}
</span>
</div>
@endforeach
@if ($order->discount_amount > 0)

View File

@ -70,8 +70,12 @@
@endguest
style="color: #242424;"
>
<span class="name">{{ __('shop::app.customer.compare.text') }}</span>
(<span id="compare-items-count"></span>)
<i class="icon compare-icon"></i>
<span class="name">
{{ __('shop::app.customer.compare.text') }}
<span class="count">(<span id="compare-items-count"></span>)<span class="count">
</span>
</a>
</li>
@endif

View File

@ -3,9 +3,10 @@
namespace Webkul\SocialLogin\Http\Controllers;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\Event;
use Laravel\Socialite\Facades\Socialite;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Laravel\Socialite\Facades\Socialite;
use Webkul\SocialLogin\Repositories\CustomerSocialAccountRepository;
class LoginController extends Controller
@ -51,11 +52,11 @@ class LoginController extends Controller
return Socialite::driver($provider)->redirect();
} catch (\Exception $e) {
session()->flash('error', $e->getMessage());
return redirect()->route('customer.session.index');
}
}
/**
* Handles callback
*
@ -69,11 +70,14 @@ class LoginController extends Controller
} catch (\Exception $e) {
return redirect()->route('customer.session.index');
}
$customer = $this->customerSocialAccountRepository->findOrCreateCustomer($user, $provider);
auth()->guard('customer')->login($customer, true);
// Event passed to prepare cart after login
Event::dispatch('customer.after.login', $customer->email);
return redirect()->intended(route($this->_config['redirect']));
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
{
"/js/velocity.js": "/js/velocity.js?id=ba5f055c5d095149e9ad",
"/js/velocity.js": "/js/velocity.js?id=1163ad750316d05c0869",
"/css/velocity-admin.css": "/css/velocity-admin.css?id=612d35e452446366eef7",
"/css/velocity.css": "/css/velocity.css?id=79ef3d43d1d30d35cd2c"
"/css/velocity.css": "/css/velocity.css?id=8b1c7e45d2b61caa923a"
}

View File

@ -43,6 +43,14 @@ class VelocityMetaDataSeeder extends Seeder
'created_at' => $now,
'updated_at' => $now,
],
[
'code' => 'general.content.shop.compare_option',
'value' => '1',
'channel_code' => 'default',
'locale_code' => 'fr',
'created_at' => $now,
'updated_at' => $now,
],
[
'code' => 'general.content.shop.compare_option',
'value' => '1',

View File

@ -569,4 +569,11 @@ body {
}
}
}
}
body.rtl .payment-methods {
.pl40 {
padding-right: 40px !important;
padding-left: 0 !important;
}
}

View File

@ -17,7 +17,7 @@
<div class="row col-12">
<div>
<label class="radio-container">
<label class="radio-container" style="position: absolute;">
<input
type="radio"
name="payment[method]"
@ -32,7 +32,7 @@
</label>
</div>
<div class="pl30">
<div class="pl40">
<div class="row">
<span class="payment-method method-label">
<b>{{ $payment['method_title'] }}</b>

View File

@ -554,6 +554,15 @@
<div class="box-content">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="instructions">
<label>{{ $additionalDetails['title'] }}</label>
<p>{{ $additionalDetails['value'] }}</p>
</div>
@endif
{!! view_render_event('bagisto.shop.customers.account.orders.view.payment-method.after', ['order' => $order]) !!}
</div>
</div>