diff --git a/README.md b/README.md
index 059c7c09a..9d858860c 100755
--- a/README.md
+++ b/README.md
@@ -157,4 +157,7 @@ Thank you to all our backers! 🙏
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
-
+
+
+
+
diff --git a/packages/Webkul/API/Http/Controllers/Shop/AddressController.php b/packages/Webkul/API/Http/Controllers/Shop/AddressController.php
index 3d1390fed..83b92076d 100644
--- a/packages/Webkul/API/Http/Controllers/Shop/AddressController.php
+++ b/packages/Webkul/API/Http/Controllers/Shop/AddressController.php
@@ -31,7 +31,7 @@ class AddressController extends Controller
/**
* Controller instance
*
- * @param Webkul\Customer\Repositories\CustomerAddressRepository $customerAddressRepository
+ * @param CustomerAddressRepository $customerAddressRepository
*/
public function __construct(CustomerAddressRepository $customerAddressRepository)
{
@@ -49,12 +49,12 @@ class AddressController extends Controller
/**
* Get user address.
*
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Http\Resources\Json\AnonymousResourceCollection
*/
public function get()
{
$customer = auth($this->guard)->user();
-
+
$addresses = $customer->addresses()->get();
return CustomerAddressResource::collection($addresses);
@@ -63,13 +63,14 @@ class AddressController extends Controller
/**
* Store a newly created resource in storage.
*
- * @return \Illuminate\Http\Response
+ * @return \Illuminate\Http\JsonResponse
+ * @throws \Illuminate\Validation\ValidationException
*/
public function store()
{
$customer = auth($this->guard)->user();
- if (request()->input('address1') && ! is_array(json_decode(request()->input('address1')))) {
+ if (request()->input('address1') && ! is_array(request()->input('address1'))) {
return response()->json([
'message' => 'address1 must be an array.',
]);
@@ -77,18 +78,20 @@ class AddressController extends Controller
if (request()->input('address1')) {
request()->merge([
- 'address1' => implode(PHP_EOL, array_filter(json_decode(request()->input('address1')))),
+ 'address1' => implode(PHP_EOL, array_filter(request()->input('address1'))),
'customer_id' => $customer->id,
]);
- }
+ }
$this->validate(request(), [
'address1' => 'string|required',
- 'country' => 'string|required',
- 'state' => 'string|required',
- 'city' => 'string|required',
+ 'company' => 'string|nullable',
+ 'vat_id' => 'string|nullable',
+ 'country' => 'string|required',
+ 'state' => 'string|nullable',
+ 'city' => 'string|required',
'postcode' => 'required',
- 'phone' => 'required',
+ 'phone' => 'required',
]);
$customerAddress = $this->customerAddressRepository->create(request()->all());
@@ -101,29 +104,37 @@ class AddressController extends Controller
/**
* Update the specified resource in storage.
- *
- * @return \Illuminate\Http\Response
+ * @param int $id
+ *
+ * @return \Illuminate\Http\JsonResponse
+ * @throws \Illuminate\Validation\ValidationException
*/
- public function update()
+ public function update(int $id)
{
- $customer = auth($this->guard)->user();
+ if (request()->input('address1') && ! is_array(request()->input('address1'))) {
+ return response()->json([
+ 'message' => 'address1 must be an array.',
+ ]);
+ }
request()->merge(['address1' => implode(PHP_EOL, array_filter(request()->input('address1')))]);
$this->validate(request(), [
'address1' => 'string|required',
- 'country' => 'string|required',
- 'state' => 'string|required',
- 'city' => 'string|required',
+ 'company' => 'string|nullable',
+ 'vat_id' => 'string|nullable',
+ 'country' => 'string|required',
+ 'state' => 'string|nullable',
+ 'city' => 'string|required',
'postcode' => 'required',
- 'phone' => 'required',
+ 'phone' => 'required',
]);
- $this->customerAddressRepository->update(request()->all(), request()->input('id'));
+ $customerAddress = $this->customerAddressRepository->update(request()->all(), $id);
return response()->json([
'message' => 'Your address has been updated successfully.',
- 'data' => new CustomerAddressResource($this->customerAddressRepository->find(request()->input('id'))),
+ 'data' => new CustomerAddressResource($customerAddress),
]);
}
}
\ No newline at end of file
diff --git a/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php b/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php
index 6538496c0..8c9887b1e 100644
--- a/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php
+++ b/packages/Webkul/API/Http/Resources/Customer/CustomerAddress.php
@@ -19,6 +19,7 @@ class CustomerAddress extends JsonResource
'first_name' => $this->first_name,
'last_name' => $this->last_name,
'company_name' => $this->company_name,
+ 'vat_id' => $this->vat_id,
'address1' => explode(PHP_EOL, $this->address1),
'country' => $this->country,
'country_name' => core()->country_name($this->country),
@@ -26,6 +27,7 @@ class CustomerAddress extends JsonResource
'city' => $this->city,
'postcode' => $this->postcode,
'phone' => $this->phone,
+ 'is_default' => $this->default_address,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
diff --git a/packages/Webkul/Core/src/Models/Address.php b/packages/Webkul/Core/src/Models/Address.php
index fcbb7a3e6..f66279332 100644
--- a/packages/Webkul/Core/src/Models/Address.php
+++ b/packages/Webkul/Core/src/Models/Address.php
@@ -72,6 +72,7 @@ abstract class Address extends Model implements AddressContract
protected $casts = [
'additional' => 'array',
+ 'default_address' => 'boolean',
];
/**