From 484fb56e548d806e146ff248ccb1b0d58bf03d33 Mon Sep 17 00:00:00 2001 From: jitendra Date: Wed, 11 Sep 2019 13:46:33 +0530 Subject: [PATCH] Price added to downloadable product links --- .../products/accordians/downloadable.blade.php | 11 ++++++++++- ...325_create_product_downloadable_links_table.php | 2 +- .../Product/src/Models/ProductDownloadableLink.php | 2 +- packages/Webkul/Product/src/Type/Downloadable.php | 14 +++++++++++++- .../views/products/view/downloadable.blade.php | 10 +++++++--- 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/downloadable.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/downloadable.blade.php index 3e6809fd1..3c7ab846a 100644 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/downloadable.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/downloadable.blade.php @@ -45,6 +45,7 @@ {{ __('admin::app.catalog.products.name') }} + {{ __('admin::app.catalog.products.price') }} {{ __('admin::app.catalog.products.file') }} {{ __('admin::app.catalog.products.sample') }} {{ __('admin::app.catalog.products.downloads') }} @@ -84,6 +85,14 @@ + +
+ + + @{{ errors.first(linkInputName + '[price]') }} +
+ +
- @{{ errors.first(linkInputName + '[downloads]') }} + @{{ errors.first(linkInputName + '[url]') }}
diff --git a/packages/Webkul/Product/src/Database/Migrations/2019_06_17_180325_create_product_downloadable_links_table.php b/packages/Webkul/Product/src/Database/Migrations/2019_06_17_180325_create_product_downloadable_links_table.php index f98d17cb0..96c5186ee 100644 --- a/packages/Webkul/Product/src/Database/Migrations/2019_06_17_180325_create_product_downloadable_links_table.php +++ b/packages/Webkul/Product/src/Database/Migrations/2019_06_17_180325_create_product_downloadable_links_table.php @@ -19,7 +19,7 @@ class CreateProductDownloadableLinksTable extends Migration $table->string('file')->nullable(); $table->string('file_name')->nullable(); $table->string('type'); - $table->decimal('price', 12, 4)->nullable(); + $table->decimal('price', 12, 4)->default(0); $table->string('sample_url')->nullable(); $table->string('sample_file')->nullable(); $table->string('sample_file_name')->nullable(); diff --git a/packages/Webkul/Product/src/Models/ProductDownloadableLink.php b/packages/Webkul/Product/src/Models/ProductDownloadableLink.php index b106aa3f3..712c2c89e 100644 --- a/packages/Webkul/Product/src/Models/ProductDownloadableLink.php +++ b/packages/Webkul/Product/src/Models/ProductDownloadableLink.php @@ -10,7 +10,7 @@ class ProductDownloadableLink extends TranslatableModel implements ProductDownlo { public $translatedAttributes = ['title']; - protected $fillable = ['title', 'url', 'file', 'file_name', 'type', 'sample_url', 'sample_file', 'sample_file_name', 'sample_type', 'sort_order', 'product_id', 'downloads']; + protected $fillable = ['title', 'price', 'url', 'file', 'file_name', 'type', 'sample_url', 'sample_file', 'sample_file_name', 'sample_type', 'sort_order', 'product_id', 'downloads']; protected $with = ['translations']; diff --git a/packages/Webkul/Product/src/Type/Downloadable.php b/packages/Webkul/Product/src/Type/Downloadable.php index ded76c88f..7469d11f1 100644 --- a/packages/Webkul/Product/src/Type/Downloadable.php +++ b/packages/Webkul/Product/src/Type/Downloadable.php @@ -162,7 +162,19 @@ class Downloadable extends AbstractType if(! isset($data['links']) || ! count($data['links'])) return trans('shop::app.checkout.cart.integrity.missing_links'); - return parent::prepareForCart($data); + $products = parent::prepareForCart($data); + + foreach ($this->product->downloadable_links as $link) { + if (! in_array($link->id, $data['links'])) + continue; + + $products[0]['price'] += core()->convertPrice($link->price); + $products[0]['base_price'] += $link->price; + $products[0]['total'] += (core()->convertPrice($link->price) * $products[0]['quantity']); + $products[0]['base_total'] += ($link->price * $products[0]['quantity']); + } + + return $products; } /** diff --git a/packages/Webkul/Shop/src/Resources/views/products/view/downloadable.blade.php b/packages/Webkul/Shop/src/Resources/views/products/view/downloadable.blade.php index 3a6031c53..7f41196f7 100644 --- a/packages/Webkul/Shop/src/Resources/views/products/view/downloadable.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/products/view/downloadable.blade.php @@ -10,7 +10,9 @@ @@ -27,11 +29,13 @@ - {{ $link->title }} + {{ $link->title . ' + ' . core()->currency($link->price) }} @if ($link->sample_file || $link->sample_url) - {{ __('shop::app.products.sample') }} + + {{ __('shop::app.products.sample') }} + @endif @endforeach