Confliction Resolved On Merging

This commit is contained in:
devansh bawari 2021-02-05 19:52:20 +05:30
commit 9fec7ea89b
64 changed files with 267 additions and 189 deletions

View File

@ -341,5 +341,7 @@ return [
'Concord' => Konekt\Concord\Facades\Concord::class,
'Helper' => Konekt\Concord\Facades\Helper::class,
'Debugbar' => Barryvdh\Debugbar\Facade::class,
'ProductImage' => Webkul\Product\Facades\ProductImage::class,
'ProductVideo' => Webkul\Product\Facades\ProductVideo::class
],
];

View File

@ -34,10 +34,12 @@ return [
*/
'storage' => [
'enabled' => true,
'driver' => 'file', // redis, file, pdo, custom
'driver' => 'file', // redis, file, pdo, socket, custom
'path' => storage_path('debugbar'), // For file driver
'connection' => null, // Leave null for default connection (Redis/PDO)
'provider' => '', // Instance of StorageInterface for custom driver
'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver
'port' => 2304, // Port to use with the "socket" driver
],
/*

View File

@ -3,6 +3,7 @@
namespace Webkul\API\Http\Resources\Catalog;
use Illuminate\Http\Resources\Json\JsonResource;
use Webkul\Product\Facades\ProductImage as ProductImageFacade;
class Product extends JsonResource
{
@ -13,10 +14,6 @@ class Product extends JsonResource
*/
public function __construct($resource)
{
parent::__construct($resource);
$this->productImageHelper = app('Webkul\Product\Helpers\ProductImage');
$this->productReviewHelper = app('Webkul\Product\Helpers\Review');
$this->wishlistHelper = app('Webkul\Customer\Helpers\Wishlist');
@ -48,8 +45,8 @@ class Product extends JsonResource
'formated_price' => core()->currency($productTypeInstance->getMinimalPrice()),
'short_description' => $product->short_description,
'description' => $product->description,
'images' => ProductImage::collection($product->images),
'base_image' => $this->productImageHelper->getProductBaseImage($product),
'images' => ProductImageFacade::collection($product->images),
'base_image' => ProductImageFacade::getProductBaseImage($product),
'created_at' => $product->created_at,
'updated_at' => $product->updated_at,

View File

@ -192,8 +192,6 @@
</div>
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<div class="sale-stock">
<div class="card">
<div class="card-title">
@ -208,7 +206,7 @@
<li>
<a href="{{ route('admin.catalog.products.edit', $item->product_id) }}">
<div class="product image">
<?php $productBaseImage = $productImageHelper->getProductBaseImage($item->product); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($item->product); ?>
<img class="item-image" src="{{ $productBaseImage['small_image_url'] }}" />
</div>
@ -318,7 +316,7 @@
<li>
<a href="{{ route('admin.catalog.products.edit', $item->product_id) }}">
<div class="image">
<?php $productBaseImage = $productImageHelper->getProductBaseImage($item->product); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($item->product); ?>
<img class="item-image" src="{{ $productBaseImage['small_image_url'] }}" />
</div>

View File

@ -9,7 +9,6 @@ use Webkul\BookingProduct\Helpers\Booking as BookingHelper;
use Webkul\BookingProduct\Repositories\BookingProductRepository;
use Webkul\Checkout\Models\CartItem;
use Webkul\Product\Datatypes\CartItemValidationResult;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Repositories\ProductAttributeValueRepository;
use Webkul\Product\Repositories\ProductImageRepository;
use Webkul\Product\Repositories\ProductVideoRepository;
@ -56,7 +55,6 @@ class Booking extends Virtual
* @param \Webkul\Product\Repositories\ProductAttributeValueRepository $attributeValueRepository
* @param \Webkul\Product\Repositories\ProductInventoryRepository $productInventoryRepository
* @param \Webkul\Product\Repositories\ProductImageRepository $productImageRepository
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\BookingProduct\Repositories\BookingProductRepository $bookingProductRepository
* @param \Webkul\BookingProduct\Helpers\BookingHelper $bookingHelper
* @param \Webkul\Product\Repositories\ProductVideoRepository $productVideoRepository
@ -68,7 +66,6 @@ class Booking extends Virtual
ProductAttributeValueRepository $attributeValueRepository,
ProductInventoryRepository $productInventoryRepository,
ProductImageRepository $productImageRepository,
ProductImage $productImageHelper,
BookingProductRepository $bookingProductRepository,
BookingHelper $bookingHelper,
ProductVideoRepository $productVideoRepository
@ -80,7 +77,6 @@ class Booking extends Virtual
$attributeValueRepository,
$productInventoryRepository,
$productImageRepository,
$productImageHelper,
$productVideoRepository
);

View File

@ -583,12 +583,12 @@ class CartRule
->where('cart_rule_channels.channel_id', $channelId)
->where(function ($query1) {
/** @var Builder $query1 */
$query1->where('cart_rules.starts_from', '<=', Carbon::now()->format('Y-m-d'))
$query1->where('cart_rules.starts_from', '<=', Carbon::now()->format('Y-m-d H:m:s'))
->orWhereNull('cart_rules.starts_from');
})
->where(function ($query2) {
/** @var Builder $query2 */
$query2->where('cart_rules.ends_till', '>=', Carbon::now()->format('Y-m-d'))
$query2->where('cart_rules.ends_till', '>=', Carbon::now()->format('Y-m-d H:m:s'))
->orWhereNull('cart_rules.ends_till');
})
->with([

View File

@ -0,0 +1,18 @@
<?php
namespace Webkul\Product\Facades;
use Illuminate\Support\Facades\Facade;
class ProductImage extends Facade
{
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'productimage';
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace Webkul\Product\Facades;
use Illuminate\Support\Facades\Facade;
class ProductVideo extends Facade
{
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'productvideo';
}
}

View File

@ -4,27 +4,10 @@ namespace Webkul\Product\Helpers;
use Webkul\Product\Models\Product;
use Webkul\Product\Models\ProductAttributeValue;
use Webkul\Product\Facades\ProductImage;
class ConfigurableOption extends AbstractProduct
{
/**
* ProductImage object
*
* @var array
*/
protected $productImage;
/**
* Create a new controller instance.
*
* @param \Webkul\Product\Helpers\ProductImage $productImage
* @return void
*/
public function __construct(ProductImage $productImage)
{
$this->productImage = $productImage;
}
/**
* Returns the allowed variants
*
@ -223,7 +206,7 @@ class ConfigurableOption extends AbstractProduct
$variantId = $variant->id;
}
$images[$variantId] = $this->productImage->getGalleryImages($variant);
$images[$variantId] = ProductImage::getGalleryImages($variant);
}
return $images;

View File

@ -0,0 +1,17 @@
<?php
use Webkul\Product\ProductImage;
use Webkul\Product\ProductVideo;
if (! function_exists('productimage')) {
function productimage() {
return app()->make(ProductImage::class);
}
}
if (! function_exists('productvideo')) {
function productvideo() {
return app()->make(ProductVideo::class);
}
}
?>

View File

@ -1,13 +1,14 @@
<?php
namespace Webkul\Product\Helpers;
namespace Webkul\Product;
use Illuminate\Support\Facades\Storage;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Product\Helpers\AbstractProduct;
class ProductImage extends AbstractProduct
{
/**
/**
* ProductRepository instance
*
* @var \Webkul\Product\Repositories\ProductRepository

View File

@ -1,11 +1,12 @@
<?php
namespace Webkul\Product\Helpers;
namespace Webkul\Product;
use Illuminate\Support\Facades\Storage;
use Webkul\Product\Helpers\AbstractProduct;
class ProductVideo extends AbstractProduct
{
{
/**
* Retrieve collection of videos
*

View File

@ -8,6 +8,11 @@ use Webkul\Product\Models\ProductProxy;
use Webkul\Product\Observers\ProductObserver;
use Webkul\Product\Console\Commands\PriceUpdate;
use Webkul\Product\Console\Commands\GenerateProducts;
use Illuminate\Foundation\AliasLoader;
use Webkul\Product\Facades\ProductImage as ProductImageFacade;
use Webkul\Product\Facades\ProductVideo as ProductVideoFacade;
use Webkul\Product\ProductImage;
use Webkul\Product\ProductVideo;
class ProductServiceProvider extends ServiceProvider
{
@ -18,6 +23,8 @@ class ProductServiceProvider extends ServiceProvider
*/
public function boot()
{
include __DIR__ . '/../Http/helpers.php';
$this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
$this->app->make(EloquentFactory::class)->load(__DIR__ . '/../Database/Factories');
@ -42,6 +49,8 @@ class ProductServiceProvider extends ServiceProvider
$this->registerCommands();
$this->registerFacades();
$this->registerEloquentFactoriesFrom(__DIR__ . '/../Database/Factories');
}
@ -79,4 +88,28 @@ class ProductServiceProvider extends ServiceProvider
{
$this->app->make(EloquentFactory::class)->load($path);
}
/**
* Register Bouncer as a singleton.
*
* @return void
*/
protected function registerFacades()
{
// Product image
$loader = AliasLoader::getInstance();
$loader->alias('productimage', ProductImageFacade::class);
$this->app->singleton('productimage', function () {
return app()->make(ProductImage::class);
});
// Product video
$loader->alias('productvideo', ProductVideoFacade::class);
$this->app->singleton('productvideo', function () {
return app()->make(ProductVideo::class);
});
}
}

View File

@ -5,7 +5,7 @@ namespace Webkul\Product\Type;
use Webkul\Checkout\Facades\Cart;
use Webkul\Checkout\Models\CartItem;
use Illuminate\Support\Facades\Storage;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Facades\ProductImage;
use Webkul\Product\Models\ProductAttributeValue;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Attribute\Repositories\AttributeRepository;
@ -62,13 +62,6 @@ abstract class AbstractType
*/
protected $productVideoRepository;
/**
* Product Image helper instance
*
* @var \Webkul\Product\Helpers\ProductImage
*/
protected $productImageHelper;
/**
* Product model instance
*
@ -151,7 +144,6 @@ abstract class AbstractType
* @param \Webkul\Product\Repositories\ProductAttributeValueRepository $attributeValueRepository
* @param \Webkul\Product\Repositories\ProductInventoryRepository $productInventoryRepository
* @param \Webkul\Product\Repositories\ProductImageRepository $productImageRepository
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Repositories\ProductVideoRepository $productVideoRepository
*
* @return void
@ -162,7 +154,6 @@ abstract class AbstractType
ProductAttributeValueRepository $attributeValueRepository,
ProductInventoryRepository $productInventoryRepository,
ProductImageRepository $productImageRepository,
ProductImage $productImageHelper,
ProductVideoRepository $productVideoRepository
) {
$this->attributeRepository = $attributeRepository;
@ -175,8 +166,6 @@ abstract class AbstractType
$this->productImageRepository = $productImageRepository;
$this->productImageHelper = $productImageHelper;
$this->productVideoRepository = $productVideoRepository;
}
@ -848,7 +837,7 @@ abstract class AbstractType
*/
public function getBaseImage($item)
{
return $this->productImageHelper->getProductBaseImage($item->product);
return ProductImage::getProductBaseImage($item->product);
}
/**

View File

@ -11,7 +11,6 @@ use Webkul\Product\Repositories\ProductImageRepository;
use Webkul\Product\Repositories\ProductVideoRepository;
use Webkul\Product\Repositories\ProductBundleOptionRepository;
use Webkul\Product\Repositories\ProductBundleOptionProductRepository;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Helpers\BundleOption;
use Webkul\Checkout\Models\CartItem;
@ -88,7 +87,6 @@ class Bundle extends AbstractType
* @param \Webkul\Product\Repositories\ProductImageRepository $productImageRepository
* @param \Webkul\Product\Repositories\ProductBundleOptionRepository $productBundleOptionRepository
* @param \Webkul\Product\Repositories\ProductBundleOptionProductRepository $productBundleOptionProductRepository
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Helpers\BundleOption $bundleOptionHelper
* @param \Webkul\Product\Repositories\ProductVideoRepository $productVideoRepository
* @return void
@ -101,7 +99,6 @@ class Bundle extends AbstractType
ProductImageRepository $productImageRepository,
ProductBundleOptionRepository $productBundleOptionRepository,
ProductBundleOptionProductRepository $productBundleOptionProductRepository,
ProductImage $productImageHelper,
BundleOption $bundleOptionHelper,
ProductVideoRepository $productVideoRepository
)
@ -112,7 +109,6 @@ class Bundle extends AbstractType
$attributeValueRepository,
$productInventoryRepository,
$productImageRepository,
$productImageHelper,
$productVideoRepository
);

View File

@ -3,7 +3,6 @@
namespace Webkul\Product\Type;
use Webkul\Checkout\Models\CartItem;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Attribute\Repositories\AttributeRepository;
use Webkul\Product\Datatypes\CartItemValidationResult;
@ -80,7 +79,6 @@ class Downloadable extends AbstractType
* @param \Webkul\Product\Repositories\ProductImageRepository $productImageRepository
* @param \Webkul\Product\Repositories\ProductDownloadableLinkRepository $productDownloadableLinkRepository
* @param \Webkul\Product\Repositories\ProductDownloadableSampleRepository $productDownloadableSampleRepository
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Repositories\ProductVideoRepository $productVideoRepository
*
* @return void
@ -93,7 +91,6 @@ class Downloadable extends AbstractType
productImageRepository $productImageRepository,
ProductDownloadableLinkRepository $productDownloadableLinkRepository,
ProductDownloadableSampleRepository $productDownloadableSampleRepository,
ProductImage $productImageHelper,
ProductVideoRepository $productVideoRepository
)
{
@ -103,7 +100,6 @@ class Downloadable extends AbstractType
$attributeValueRepository,
$productInventoryRepository,
$productImageRepository,
$productImageHelper,
$productVideoRepository
);

View File

@ -3,7 +3,6 @@
namespace Webkul\Product\Type;
use Webkul\Product\Models\ProductFlat;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Attribute\Repositories\AttributeRepository;
use Webkul\Product\Repositories\ProductImageRepository;
@ -58,7 +57,6 @@ class Grouped extends AbstractType
* @param \Webkul\Product\Repositories\ProductInventoryRepository $productInventoryRepository
* @param \Webkul\Product\Repositories\ProductImageRepository $productImageRepository
* @param \Webkul\Product\Repositories\ProductGroupedProductRepository $productGroupedProductRepository
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Repositories\ProductVideoRepository $productVideoRepository
* @return void
*/
@ -69,7 +67,6 @@ class Grouped extends AbstractType
ProductInventoryRepository $productInventoryRepository,
ProductImageRepository $productImageRepository,
ProductGroupedProductRepository $productGroupedProductRepository,
ProductImage $productImageHelper,
ProductVideoRepository $productVideoRepository
)
{
@ -79,7 +76,6 @@ class Grouped extends AbstractType
$attributeValueRepository,
$productInventoryRepository,
$productImageRepository,
$productImageHelper,
$productVideoRepository
);

View File

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

View File

@ -24,6 +24,7 @@ class DownloadableLinkPurchased extends Model implements DownloadableLinkPurchas
'customer_id',
'order_id',
'order_item_id',
'download_canceled',
];
/**

View File

@ -84,7 +84,7 @@ class DownloadableLinkPurchasedRepository extends Repository
if (stristr($orderItem->type,'downloadable') !== false && isset($orderItem->additional['links'])) {
return true;
}
return false;
}
@ -98,9 +98,29 @@ class DownloadableLinkPurchasedRepository extends Repository
$purchasedLinks = $this->findByField('order_item_id', $orderItem->id);
foreach ($purchasedLinks as $purchasedLink) {
$this->update([
'status' => $status,
], $purchasedLink->id);
if ($status == 'expired') {
if (count($purchasedLink->order_item->invoice_items) > 0) {
$totalInvoiceQty = 0;
foreach ($purchasedLink->order_item->invoice_items as $invoice_item) {
$totalInvoiceQty = $totalInvoiceQty + $invoice_item->qty;
}
$this->update([
'status' => $purchasedLink->download_used == $totalInvoiceQty ? $status : $purchasedLink->status,
'download_canceled' => $purchasedLink->download_bought - $totalInvoiceQty,
], $purchasedLink->id);
} else {
$this->update([
'status' => $status,
'download_canceled' => $purchasedLink->download_bought,
], $purchasedLink->id);
}
} else {
$this->update([
'status' => $status,
], $purchasedLink->id);
}
}
}
}

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,4 +1,4 @@
{
"/js/shop.js": "/js/shop.js?id=fd3e9e2c897df46dd84c",
"/css/shop.css": "/css/shop.css?id=d080a007e2aec5d519b3"
"/js/shop.js": "/js/shop.js?id=83c93b077da401f7b709",
"/css/shop.css": "/css/shop.css?id=6f4a4f8fad1b25e05e33"
}

View File

@ -14,14 +14,16 @@ class DownloadableProductDataGrid extends DataGrid
public function prepareQueryBuilder()
{
$queryBuilder = DB::table('downloadable_link_purchased')
->distinct()
->leftJoin('orders', 'downloadable_link_purchased.order_id', '=', 'orders.id')
->leftJoin('invoices', 'downloadable_link_purchased.order_id', '=', 'invoices.order_id')
->addSelect('downloadable_link_purchased.*', 'invoices.state as invoice_state', 'orders.increment_id')
->addSelect(DB::raw('(' . DB::getTablePrefix() . 'downloadable_link_purchased.download_bought - ' . DB::getTablePrefix() . 'downloadable_link_purchased.download_used) as remaining_downloads'))
->addSelect(DB::raw('(' . DB::getTablePrefix() . 'downloadable_link_purchased.download_bought - ' . DB::getTablePrefix() . 'downloadable_link_purchased.download_canceled - ' . DB::getTablePrefix() . 'downloadable_link_purchased.download_used) as remaining_downloads'))
->where('downloadable_link_purchased.customer_id', auth()->guard('customer')->user()->id);
$this->addFilter('status', 'downloadable_link_purchased.status');
$this->addFilter('created_at', 'downloadable_link_purchased.created_at');
$this->addFilter('increment_id', 'orders.increment_id');
$this->setQueryBuilder($queryBuilder);
}

View File

@ -58,15 +58,28 @@ class DownloadableProductController extends Controller
abort(403);
}
$totalInvoiceQty = 0;
if (isset($downloadableLinkPurchased->order->invoices)) {
foreach ($downloadableLinkPurchased->order->invoices as $invoice) {
$totalInvoiceQty = $totalInvoiceQty + $invoice->total_qty;
}
}
if ($downloadableLinkPurchased->download_used == $totalInvoiceQty || $downloadableLinkPurchased->download_used > $totalInvoiceQty) {
session()->flash('warning', trans('shop::app.customer.account.downloadable_products.payment-error'));
return redirect()->route('customer.downloadable_products.index');
}
if ($downloadableLinkPurchased->download_bought
&& ($downloadableLinkPurchased->download_bought - $downloadableLinkPurchased->download_used) <= 0) {
&& ($downloadableLinkPurchased->download_bought - ($downloadableLinkPurchased->download_used + $downloadableLinkPurchased->download_canceled)) <= 0) {
session()->flash('warning', trans('shop::app.customer.account.downloadable_products.download-error'));
return redirect()->route('customer.downloadable_products.index');
}
$remainingDownloads = $downloadableLinkPurchased->download_bought - ($downloadableLinkPurchased->download_used + 1);
$remainingDownloads = $downloadableLinkPurchased->download_bought - ($downloadableLinkPurchased->download_used + $downloadableLinkPurchased->download_canceled + 1);
if ($downloadableLinkPurchased->download_bought) {
$this->downloadableLinkPurchasedRepository->update([

View File

@ -1,7 +1,6 @@
<template>
<transition name="slide">
<div class="slider-content" v-if="images.length > 0">
<ul class="slider-images">
<li v-for="(image, index) in images" :key="index" v-bind:class="{'show': index==currentIndex}">
<a :href="image.slider_path">
@ -19,10 +18,29 @@
</transition>
</template>
<style lang="scss">
.slider-control {
direction: ltr;
}
.slide-enter-active {
transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}
.slide-leave-active {
transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.slide-enter, .slide-leave-to {
-webkit-transform: scaleY(0) translateZ(0);
transform: scaleY(0) translateZ(0);
opacity: 0;
}
</style>
<script>
export default {
props:{
props: {
slides: {
type: Array,
required: true,
@ -36,16 +54,11 @@ export default {
},
data() {
return {
images: [],
currentIndex: -1,
content: [],
current: false,
images_loaded: false,
};
},
@ -55,7 +68,6 @@ export default {
},
methods: {
getProps() {
this.setProps();
},
@ -85,34 +97,18 @@ export default {
changeIndexLeft: function() {
if (this.currentIndex > 0) {
this.currentIndex--;
} else if(this.currentIndex == 0) {
} else if (this.currentIndex == 0) {
this.currentIndex = this.images.length-1;
}
},
changeIndexRight: function() {
if(this.currentIndex < this.images.length-1) {
if (this.currentIndex < this.images.length-1) {
this.currentIndex++;
} else if(this.currentIndex == this.images.length-1) {
} else if (this.currentIndex == this.images.length-1) {
this.currentIndex = 0;
}
}
}
};
</script>
<style>
.slide-enter-active {
transition: all 0.2s cubic-bezier(0.55, 0.085, 0.68, 0.53);
}
.slide-leave-active {
transition: all 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.slide-enter, .slide-leave-to {
-webkit-transform: scaleY(0) translateZ(0);
transform: scaleY(0) translateZ(0);
opacity: 0;
}
</style>
</script>

View File

@ -1881,6 +1881,7 @@ section.product-detail {
font-size: 24px;
color: $font-dark;
margin-bottom: 15px;
line-height: normal;
}
.product-price {

View File

@ -374,7 +374,8 @@ return [
'expired' => 'منتهية الصلاحية',
'remaining-downloads' => 'التنزيلات المتبقية',
'unlimited' => 'غير محدود',
'download-error' => 'انتهت صلاحية رابط التنزيل.'
'download-error' => 'انتهت صلاحية رابط التنزيل.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -371,7 +371,8 @@ return [
'expired' => 'Abgelaufen',
'remaining-downloads' => 'Verbleibende Downloads',
'unlimited' => 'Unbegrenzt',
'download-error' => 'Der Download-Link ist abgelaufen.'
'download-error' => 'Der Download-Link ist abgelaufen.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -375,7 +375,8 @@ return [
'expired' => 'Expired',
'remaining-downloads' => 'Remaining Downloads',
'unlimited' => 'Unlimited',
'download-error' => 'Download link has been expired.'
'download-error' => 'Download link has been expired.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -355,7 +355,8 @@ return [
'expired' => 'Caducado',
'remaining-downloads' => 'Descargas restantes',
'unlimited' => 'Ilimitado',
'download-error' => 'El enlace de descarga ha caducado.'
'download-error' => 'El enlace de descarga ha caducado.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -373,7 +373,8 @@ return [
'expired' => 'منقضی شده',
'remaining-downloads' => 'بارگیری های باقی مانده',
'unlimited' => 'نامحدود',
'download-error' => 'لینک دانلود منقضی شده است'
'download-error' => 'لینک دانلود منقضی شده است',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -372,7 +372,8 @@ return [
'expired' => 'Scaduto',
'remaining-downloads' => 'Download rimasti',
'unlimited' => 'Illimitati',
'download-error' => 'Il link per il Download è scaduto.'
'download-error' => 'Il link per il Download è scaduto.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -352,7 +352,8 @@ return [
'expired' => '期限切れ',
'remaining-downloads' => '残りのダウンロード数',
'unlimited' => '無制限',
'download-error' => 'ダウンロードリンクの有効期限が切れています.'
'download-error' => 'ダウンロードリンクの有効期限が切れています.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -378,7 +378,8 @@ return [
'expired' => 'Expired',
'remaining-downloads' => 'Resterende downloads',
'unlimited' => 'Onbeperkt',
'download-error' => 'Downloadlink is verlopen.'
'download-error' => 'Downloadlink is verlopen.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -372,7 +372,8 @@ return [
'expired' => 'wygasł',
'remaining-downloads' => 'Pozostałe pliki do pobrania',
'unlimited' => 'Bez limitu',
'download-error' => 'Link do pobrania wygasł.'
'download-error' => 'Link do pobrania wygasł.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -366,7 +366,8 @@ return [
'expired' => 'Expirado',
'remaining-downloads' => 'Downloads restantes',
'unlimited' => 'Ilimitado',
'download-error' => 'O link para download expirou.'
'download-error' => 'O link para download expirou.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -371,7 +371,8 @@ return [
'expired' => 'Süresi Doldu',
'remaining-downloads' => 'Kalan İndirme',
'unlimited' => 'Sınırsız',
'download-error' => 'İndirme linki süresi doldu.'
'download-error' => 'İndirme linki süresi doldu.',
'payment-error' => 'Payment has not been done for this download.'
],
'review' => [

View File

@ -5,8 +5,6 @@
@stop
@section('content-wrapper')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<section class="cart">
@if ($cart)
<div class="title">

View File

@ -1,5 +1,3 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<?php $cart = cart()->getCart(); ?>
@if ($cart)

View File

@ -68,8 +68,6 @@
</div>
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<div class="cart-item-list mt-20">
@foreach ($cart->items as $item)
@php

View File

@ -1,5 +1,3 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@extends('shop::layouts.master')
@section('page_title')
@ -34,7 +32,7 @@
@foreach ($reviews as $review)
<div class="account-item-card mt-15 mb-15">
<div class="media-info">
<?php $image = $productImageHelper->getProductBaseImage($review->product); ?>
<?php $image = productimage()->getProductBaseImage($review->product); ?>
<a href="{{ route('shop.productOrCategory.index', $review->product->url_key) }}" title="{{ $review->product->name }}">
<img class="media" src="{{ $image['small_image_url'] }}" alt=""/>
</a>

View File

@ -1,5 +1,3 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@extends('shop::layouts.master')
@section('page_title')
@ -21,7 +19,7 @@
@foreach ($reviews as $review)
<div class="account-item-card mt-15 mb-15">
<div class="media-info">
<?php $image = $productImageHelper->getGalleryImages($review->product); ?>
<?php $image = productimage()->getGalleryImages($review->product); ?>
<img class="media" src="{{ $image[0]['small_image_url'] }}" alt="" />
<div class="info mt-20">

View File

@ -6,8 +6,6 @@
@section('content-wrapper')
<div class="account-content">
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@include('shop::customers.account.partials.sidemenu')
@inject ('reviewHelper', 'Webkul\Product\Helpers\Review')

View File

@ -2,9 +2,7 @@
<div class="product-card">
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<?php $productBaseImage = $productImageHelper->getProductBaseImage($product); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($product); ?>
@if ($product->new)
<div class="sticker new">

View File

@ -10,9 +10,8 @@
<div class="review-layouter mb-20">
<div class="product-info">
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<?php $productBaseImage = $productImageHelper->getProductBaseImage($product); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($product); ?>
<div class="product-image">
<a href="{{ route('shop.productOrCategory.index', $product->url_key) }}" title="{{ $product->name }}">

View File

@ -9,11 +9,9 @@
<section class="review">
<div class="review-layouter">
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@inject ('reviewHelper', 'Webkul\Product\Helpers\Review')
<?php $productBaseImage = $productImageHelper->getProductBaseImage($product); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($product); ?>
<div class="product-info">
<div class="product-image">

View File

@ -15,7 +15,7 @@
</script>
@endif
<?php $productBaseImage = app('Webkul\Product\Helpers\ProductImage')->getProductBaseImage($product); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($product); ?>
<meta name="twitter:card" content="summary_large_image" />

View File

@ -282,7 +282,9 @@
priceElement.innerHTML = this.config.variant_prices[this.simpleProduct].final_price.formated_price;
regularPriceElement.innerHTML = this.config.variant_prices[this.simpleProduct].regular_price.formated_price;
if (regularPriceElement) {
regularPriceElement.innerHTML = this.config.variant_prices[this.simpleProduct].regular_price.formated_price;
}
eventBus.$emit('configurable-variant-selected-event', this.simpleProduct)
} else {

View File

@ -1,11 +1,9 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@inject ('productVideoHelper', 'Webkul\Product\Helpers\ProductVideo')
@inject ('wishListHelper', 'Webkul\Customer\Helpers\Wishlist')
<?php
$images = $productImageHelper->getGalleryImages($product);
$images = productimage()->getGalleryImages($product);
$videos = $productVideoHelper->getVideos($product);
$videos = productvideo()->getVideos($product);
$images = array_merge($images, $videos);
?>

View File

@ -43,7 +43,7 @@
<div class="action">
@foreach ($actions as $action)
@php
$toDisplay = (isset($action['condition']) && gettype($action['condition']) == 'object') ? $action['condition']() : true;
$toDisplay = (isset($action['condition']) && gettype($action['condition']) == 'object') ? $action['condition']($record) : true;
@endphp
@if ($toDisplay)

View File

@ -4,6 +4,7 @@ namespace Webkul\Velocity\Helpers;
use Illuminate\Support\Facades\DB;
use Webkul\Product\Helpers\Review;
use Webkul\Product\Facades\ProductImage;
use Webkul\Product\Models\Product as ProductModel;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Product\Repositories\ProductFlatRepository;
@ -276,10 +277,9 @@ class Helper extends Review
public function formatProduct($product, $list = false, $metaInformation = [])
{
$reviewHelper = app('Webkul\Product\Helpers\Review');
$productImageHelper = app('Webkul\Product\Helpers\ProductImage');
$galleryImages = $productImageHelper->getGalleryImages($product);
$productImage = $productImageHelper->getProductBaseImage($product, $galleryImages)['medium_image_url'];
$galleryImages = ProductImage::getGalleryImages($product);
$productImage = ProductImage::getProductBaseImage($product, $galleryImages)['medium_image_url'];
$largeProductImageName = "large-product-placeholder.png";
$mediumProductImageName = "meduim-product-placeholder.png";

View File

@ -7,7 +7,6 @@ use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Webkul\Velocity\Helpers\Helper;
use Webkul\Product\Helpers\ProductImage;
use Webkul\Product\Repositories\SearchRepository;
use Webkul\Product\Repositories\ProductRepository;
use Webkul\Customer\Repositories\WishlistRepository;
@ -26,13 +25,6 @@ class Controller extends BaseController
*/
protected $_config;
/**
* ProductImage object
*
* @var \Webkul\Product\Helpers\ProductImage
*/
protected $productImageHelper;
/**
* SearchRepository object
*
@ -87,18 +79,16 @@ class Controller extends BaseController
* Create a new controller instance.
*
* @param \Webkul\Velocity\Helpers\Helper $velocityHelper
* @param \Webkul\Product\Helpers\ProductImage $productImageHelper
* @param \Webkul\Product\Repositories\SearchRepository $searchRepository
* @param \Webkul\Product\Repositories\ProductRepository $productRepository
* @param \Webkul\Category\Repositories\CategoryRepository $categoryRepository
* @param \Webkul\Velocity\Repositories\Product\ProductRepository $velocityProductRepository
* @param \Webkul\Velocity\Repositories\VelocityCustomerCompareProductRepository $compareProductsRepository
*
*
* @return void
*/
public function __construct(
Helper $velocityHelper,
ProductImage $productImageHelper,
SearchRepository $searchRepository,
ProductRepository $productRepository,
WishlistRepository $wishlistRepository,
@ -114,14 +104,12 @@ class Controller extends BaseController
$this->productRepository = $productRepository;
$this->productImageHelper = $productImageHelper;
$this->categoryRepository = $categoryRepository;
$this->wishlistRepository = $wishlistRepository;
$this->velocityProductRepository = $velocityProductRepository;
$this->compareProductsRepository = $compareProductsRepository;
}
}

View File

@ -3,6 +3,7 @@
namespace Webkul\Velocity\Http\Controllers\Shop;
use Illuminate\Http\Request;
use Webkul\Product\Facades\ProductImage;
use Webkul\Velocity\Http\Shop\Controllers;
use Webkul\Checkout\Contracts\Cart as CartModel;
use Cart;
@ -28,7 +29,7 @@ class ShopController extends Controller
if ($product) {
$productReviewHelper = app('Webkul\Product\Helpers\Review');
$galleryImages = $this->productImageHelper->getProductBaseImage($product);
$galleryImages = ProductImage::getProductBaseImage($product);
$response = [
'status' => true,

View File

@ -1,5 +1,4 @@
@inject ('reviewHelper', 'Webkul\Product\Helpers\Review')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@extends('shop::layouts.master')

View File

@ -1,5 +1,3 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
<div class="form-container review-checkout-conainer">
<accordian :title="'{{ __('shop::app.checkout.onepage.summary') }}'" :active="true">
<div class="form-header mb-30" slot="header">

View File

@ -1,5 +1,3 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@extends('shop::customers.account.index')
@section('page_title')
@ -33,7 +31,7 @@
<div class="row col-12 fs16">
<div class="col-12 row">
@php
$image = $productImageHelper->getProductBaseImage($review->product);
$image = productimage()->getProductBaseImage($review->product);
@endphp
<a

View File

@ -1,6 +1,5 @@
@extends('shop::layouts.master')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@inject ('productRatingHelper', 'Webkul\Product\Helpers\Review')
@php

View File

@ -1,6 +1,5 @@
@inject ('reviewHelper', 'Webkul\Product\Helpers\Review')
@inject ('toolbarHelper', 'Webkul\Product\Helpers\Toolbar')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@push('css')
<style type="text/css">
@ -21,15 +20,15 @@
}
if (isset($item)) {
$productBaseImage = $productImageHelper->getProductImage($item);
$productBaseImage = productimage()->getProductImage($item);
} else {
$productBaseImage = $productImageHelper->getProductBaseImage($product);
$productBaseImage = productimage()->getProductBaseImage($product);
}
$totalReviews = $reviewHelper->getTotalReviews($product);
$avgRatings = ceil($reviewHelper->getAverageRating($product));
$galleryImages = $productImageHelper->getGalleryImages($product);
$galleryImages = productimage()->getGalleryImages($product);
$priceHTML = view('shop::products.price', ['product' => $product])->render();
$product->__set('priceHTML', $priceHTML);

View File

@ -1,5 +1,3 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@extends('shop::layouts.master')
@section('page_title')

View File

@ -2,7 +2,6 @@
@inject ('reviewHelper', 'Webkul\Product\Helpers\Review')
@inject ('customHelper', 'Webkul\Velocity\Helpers\Helper')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@php
$total = $reviewHelper->getTotalReviews($product);
@ -11,7 +10,7 @@
$avgStarRating = round($avgRatings);
$productImages = [];
$images = $productImageHelper->getGalleryImages($product);
$images = productimage()->getGalleryImages($product);
foreach ($images as $key => $image) {
array_push($productImages, $image['medium_image_url']);
@ -33,7 +32,7 @@
</script>
@endif
<?php $productBaseImage = app('Webkul\Product\Helpers\ProductImage')->getProductBaseImage($product, $images); ?>
<?php $productBaseImage = productimage()->getProductBaseImage($product, $images); ?>
<meta name="twitter:card" content="summary_large_image" />

View File

@ -1,11 +1,10 @@
@if (Webkul\Product\Helpers\ProductType::hasVariants($product->type))
@inject ('configurableOptionHelper', 'Webkul\Product\Helpers\ConfigurableOption')
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@php
$config = $configurableOptionHelper->getConfigurationConfig($product);
$galleryImages = $productImageHelper->getGalleryImages($product);
$galleryImages = productimage()->getGalleryImages($product);
@endphp
{!! view_render_event('bagisto.shop.products.view.configurable-options.before', ['product' => $product]) !!}
@ -297,7 +296,9 @@
priceElement.innerHTML = this.config.variant_prices[this.simpleProduct].final_price.formated_price;
regularPriceElement.innerHTML = this.config.variant_prices[this.simpleProduct].regular_price.formated_price;
if (regularPriceElement) {
regularPriceElement.innerHTML = this.config.variant_prices[this.simpleProduct].regular_price.formated_price;
}
eventBus.$emit('configurable-variant-selected-event', this.simpleProduct)
} else {

View File

@ -1,10 +1,8 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@inject ('productVideoHelper', 'Webkul\Product\Helpers\ProductVideo')
@inject ('wishListHelper', 'Webkul\Customer\Helpers\Wishlist')
@php
$images = $productImageHelper->getGalleryImages($product);
$videos = $productVideoHelper->getVideos($product);
$images = productimage()->getGalleryImages($product);
$videos = productvideo()->getVideos($product);
$videoData = $imageData = [];

View File

@ -1,7 +1,5 @@
@inject ('productImageHelper', 'Webkul\Product\Helpers\ProductImage')
@php
$productBaseImage = $productImageHelper->getProductBaseImage($product);
$productBaseImage = productimage()->getProductBaseImage($product);
@endphp
<div class="col-lg-3 col-md-12">