Skip to content

Commit 60f705f

Browse files
committed
Fixes for inventory purchasable getters
1 parent 0ef668b commit 60f705f

File tree

8 files changed

+20
-16
lines changed

8 files changed

+20
-16
lines changed

src/collections/UpdateInventoryLevelCollection.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public static function make($items = [])
4848
public function getPurchasables(): array
4949
{
5050
return $this->map(function(UpdateInventoryLevel|UpdateInventoryLevelInTransfer $updateInventoryLevel) {
51-
return $updateInventoryLevel->inventoryItem->getPurchasable();
51+
return $updateInventoryLevel->inventoryItem->getPurchasable('*');
5252
})->all();
5353
}
5454
}

src/controllers/TransfersController.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use craft\commerce\models\TransferDetail;
2222
use craft\commerce\Plugin;
2323
use craft\commerce\services\Transfers;
24+
use craft\helpers\Cp as CraftCp;
2425
use craft\helpers\Html;
2526
use craft\helpers\StringHelper;
2627
use craft\helpers\UrlHelper;
@@ -267,8 +268,8 @@ public function actionReceiveTransferScreen(): Response
267268
$tableRows = '';
268269
foreach ($transfer->getDetails() as $detail) {
269270
$key = $detail->uid;
270-
$purchasable = $detail->getInventoryItem()?->getPurchasable();
271-
$label = $purchasable ? \craft\helpers\Cp::elementChipHtml($purchasable) : $detail->inventoryItemDescription;
271+
$purchasable = $detail->getInventoryItem()?->getPurchasable(CraftCp::requestedSite()->id);
272+
$label = $purchasable ? CraftCp::elementChipHtml($purchasable) : $detail->inventoryItemDescription;
272273
$tableRows .= Html::beginTag('tr');
273274
$tableRows .= Html::tag('td', $label);
274275
$tableRows .= Html::tag('td', (string)$detail->quantityAccepted, ['class' => 'rightalign']);

src/fieldlayoutelements/TransferManagementField.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public static function renderStaticFieldHtml(Transfer $element, bool $static = f
8282
$tableRows = '';
8383

8484
foreach ($element->getDetails() as $detail) {
85-
$purchasable = $detail->getInventoryItem()?->getPurchasable();
85+
$purchasable = $detail->getInventoryItem()?->getPurchasable(Cp::requestedSite()->id);
8686
$tableRows .= Html::tag('tr',
8787
Html::tag('td', ($purchasable ? Cp::chipHtml($purchasable, ['showActionMenu' => !$purchasable->getIsDraft() && $purchasable->canSave($currentUser)]) : Html::tag('span', $detail->inventoryItemDescription))) .
8888
Html::tag('td', (string)$detail->quantityRejected, ['class' => 'rightalign']) .
@@ -188,7 +188,7 @@ public static function renderFieldHtml(Transfer $element): string
188188

189189
foreach ($element->getDetails() as $detail) {
190190
$key = $detail->uid ?? StringHelper::UUID();
191-
$purchasable = $detail->getInventoryItem()?->getPurchasable();
191+
$purchasable = $detail->getInventoryItem()?->getPurchasable(Cp::requestedSite()->id);
192192
$tableRows .= Html::tag('tr',
193193
Html::hiddenInput('details[' . $key . '][id]', (string)$detail->id) .
194194
Html::hiddenInput('details[' . $key . '][uid]', $detail->uid) .

src/models/InventoryFulfillmentLevel.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public function getLineItem(): LineItem
7777
/**
7878
* @return Purchasable
7979
*/
80-
public function getPurchasable(): Purchasable
80+
public function getPurchasable(null|string|int $siteId = null): Purchasable
8181
{
82-
return $this->getInventoryItem()->getPurchasable();
82+
return $this->getInventoryItem()->getPurchasable($siteId);
8383
}
8484
}

src/models/InventoryItem.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace craft\commerce\models;
44

5+
use Craft;
56
use craft\commerce\base\Model;
67
use craft\commerce\base\Purchasable;
78

@@ -58,23 +59,23 @@ class InventoryItem extends Model
5859

5960
/**
6061
* @return ?Purchasable
61-
* @var null|string|int $siteId
6262
*/
6363
public function getPurchasable(null|string|int $siteId = null): ?Purchasable
6464
{
6565
if ($this->_purchasable !== null) {
6666
return $this->_purchasable;
6767
}
6868

69-
/** @var ?Purchasable $purchasable */
70-
$this->_purchasable = \Craft::$app->getElements()->getElementById(elementId: $this->purchasableId, siteId: $siteId);
69+
/** @phpstan-ignore-next-line */
70+
$this->_purchasable = Craft::$app->getElements()->getElementById(elementId: $this->purchasableId, siteId: $siteId);
7171

72+
/** @phpstan-ignore-next-line */
7273
return $this->_purchasable;
7374
}
7475

7576
public function getSku(): string
7677
{
77-
return $this->getPurchasable()->sku;
78+
return $this->getPurchasable('*')->sku;
7879
}
7980

8081
protected function defineRules(): array

src/models/InventoryLevel.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ public function getInventoryLocation(): InventoryLocation
129129

130130
/**
131131
* @return Purchasable
132-
* @var null|string|int $siteId
133132
*/
134133
public function getPurchasable(null|string|int $siteId = null): Purchasable
135134
{

src/services/Inventory.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,9 +311,9 @@ public function executeUpdateInventoryLevels(UpdateInventoryLevelCollection $upd
311311

312312
$transaction->commit();
313313

314-
foreach ($updateInventoryLevels->getPurchasables() as $purchasable) {
315-
Plugin::getInstance()->getPurchasables()->updateStoreStockCache($purchasable, true);
316-
}
314+
// Update all purchasables stock
315+
$purchasables = $updateInventoryLevels->getPurchasables();
316+
Plugin::getInstance()->getPurchasables()->updateStoreStockCache($purchasables[0], true);
317317

318318
return true;
319319
} catch (\Exception $e) {

src/services/Purchasables.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,10 @@ public function isPurchasableShippable(PurchasableInterface $purchasable, Order
163163
public function updateStoreStockCache(Purchasable $purchasable, bool $allSites = false): void
164164
{
165165
if ($allSites) {
166-
$purchasables = $purchasable::find()->siteid('*')->id($purchasable->id)->status(null)->all();
166+
$purchasables = $purchasable::find()
167+
->siteId('*')
168+
->id($purchasable->id)
169+
->status(null)->all();
167170
} else {
168171
$purchasables = [$purchasable];
169172
}

0 commit comments

Comments
 (0)