Skip to content

Commit 046db6d

Browse files
authored
Merge pull request #140 from IrinaZhadzinets/issue-908
#908 - Change cart currency when switch currency on the website
2 parents 4329227 + 1e697fa commit 046db6d

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

src/Model/Resolver/Currency/SaveSelectedCurrency.php

+20-14
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
* See LICENSE for license details.
77
*
88
* @license OSL-3.0 (Open Software License ("OSL") v. 3.0)
9-
* @package scandipwa/module-customer-graph-ql
10-
* @link https://github.com/scandipwa/module-customer-graph-ql
9+
* @package scandipwa/catalog-graphql
10+
* @link https://github.com/scandipwa/catalog-graphql
1111
*/
12+
1213
declare(strict_types=1);
1314

1415
namespace ScandiPWA\CatalogGraphQl\Model\Resolver\Currency;
@@ -21,35 +22,39 @@
2122
use Magento\Framework\GraphQl\Query\ResolverInterface;
2223
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
2324
use Magento\Store\Model\StoreManagerInterface;
24-
use \Magento\Checkout\Model\Session as SessionManager;
25+
use Magento\Quote\Api\CartManagementInterface;
26+
use Magento\Quote\Api\GuestCartRepositoryInterface;
27+
use ScandiPWA\QuoteGraphQl\Model\Resolver\CartResolver;
28+
use Magento\Webapi\Controller\Rest\ParamOverriderCustomerId;
2529

2630
/**
2731
* Class SaveCartItem
2832
* @package ScandiPWA\QuoteGraphQl\Model\Resolver
2933
*/
30-
class SaveSelectedCurrency implements ResolverInterface
34+
class SaveSelectedCurrency extends CartResolver
3135
{
3236
/**
3337
* @var StoreManagerInterface
3438
*/
35-
protected $storeManager;
36-
37-
/**
38-
* @var SessionManager
39-
*/
40-
protected $sessionManager;
39+
protected StoreManagerInterface $storeManager;
4140

4241
/**
4342
* SaveSelectedCurrency constructor.
4443
* @param StoreManagerInterface $storeManager
45-
* @param SessionManager $sessionManager
4644
*/
4745
public function __construct(
4846
StoreManagerInterface $storeManager,
49-
SessionManager $sessionManager
47+
ParamOverriderCustomerId $overriderCustomerId,
48+
CartManagementInterface $quoteManagement,
49+
GuestCartRepositoryInterface $guestCartRepository
5050
) {
51+
parent::__construct(
52+
$guestCartRepository,
53+
$overriderCustomerId,
54+
$quoteManagement
55+
);
56+
5157
$this->storeManager = $storeManager;
52-
$this->sessionManager = $sessionManager;
5358
}
5459

5560
/**
@@ -77,7 +82,8 @@ public function resolve(
7782

7883
// Rebuilds active quotes all values (price, currency, etc.)
7984
try {
80-
$this->sessionManager->getQuote()->collectTotals()->save();
85+
$quote = $this->getCart($args);
86+
$quote->collectTotals()->save();
8187
} catch (NoSuchEntityException $exception) {
8288
// Ignore if quote is not set
8389
}

src/etc/schema.graphqls

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ interface AggregationOptionInterface {
8181
}
8282

8383
type Mutation {
84-
saveSelectedCurrency(currency: String): Query @resolver(class:"ScandiPWA\\CatalogGraphQl\\Model\\Resolver\\Currency\\SaveSelectedCurrency")
84+
saveSelectedCurrency(currency: String, guestCartId: String): Query @resolver(class:"ScandiPWA\\CatalogGraphQl\\Model\\Resolver\\Currency\\SaveSelectedCurrency")
8585
}
8686

8787
type Query {

0 commit comments

Comments
 (0)