b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / app / code / SendCloud / SendCloud / Checkout / Storage /
Filename/home/dev2.destoffenstraat.com/app/code/SendCloud/SendCloud/Checkout/Storage/CheckoutStorage.php
Size5.95 kb
Permissionrwxrwxrwx
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified11-Feb-2023 11:04
Last accessed23-Aug-2025 02:07
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

namespace SendCloud\SendCloud\Checkout\Storage;

use SendCloud\SendCloud\CheckoutCore\Contracts\Storage\CheckoutStorage as CheckoutStorageInterface;
use SendCloud\SendCloud\CheckoutCore\Domain\Delivery\DeliveryMethod;
use SendCloud\SendCloud\CheckoutCore\Domain\Delivery\DeliveryZone;
use SendCloud\SendCloud\Model\ResourceModel\SendcloudDeliveryMethod;
use SendCloud\SendCloud\Model\ResourceModel\SendcloudDeliveryZone;

class CheckoutStorage implements CheckoutStorageInterface
{
/**
* @var SendcloudDeliveryZone
*/
private $sendcloudDeliveryZoneResourceModel;
/**
* @var SendcloudDeliveryMethod
*/
private $sendcloudDeliveryMethodResourceModel;

/**
* CheckoutStorage constructor.
* @param SendcloudDeliveryZone $sendcloudDeliveryZoneResourceModel
* @param SendcloudDeliveryMethod $sendcloudDeliveryMethodResourceModel
*/
public function __construct(
SendcloudDeliveryZone $sendcloudDeliveryZoneResourceModel,
SendcloudDeliveryMethod $sendcloudDeliveryMethodResourceModel
) {
$this->sendcloudDeliveryZoneResourceModel = $sendcloudDeliveryZoneResourceModel;
$this->sendcloudDeliveryMethodResourceModel = $sendcloudDeliveryMethodResourceModel;
}

/**
* Provides all delivery zone configurations.
*
* @return \SendCloud\SendCloud\CheckoutCore\Domain\Delivery\DeliveryZone[]|void
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function findAllZoneConfigs()
{
return $this->sendcloudDeliveryZoneResourceModel->selectAll();
}

/**
* Deletes specified zone configurations.
*
* @param array $ids
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function deleteSpecificZoneConfigs(array $ids)
{
$this->sendcloudDeliveryZoneResourceModel->deleteOne($ids);
}

/**
* Deletes all saved zone configurations.
*
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function deleteAllZoneConfigs()
{
$this->sendcloudDeliveryZoneResourceModel->deleteAll();
}

/**
* Updates saved zone configurations.
*
* @param array $zones
*/
public function updateZoneConfigs(array $zones)
{
$this->sendcloudDeliveryZoneResourceModel->update($zones);
}

/**
* Creates delivery zones.
*
* @param array $zones
*/
public function createZoneConfigs(array $zones)
{
$this->sendcloudDeliveryZoneResourceModel->create($zones);
}

/**
* Provides all delivery method configurations.
*
* @return array|\SendCloud\SendCloud\CheckoutCore\Domain\Delivery\DeliveryMethod[]
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function findAllMethodConfigs()
{
return $this->sendcloudDeliveryMethodResourceModel->selectAll();
}

/**
* Deletes methods identified by the provided batch of ids.
*
* @param array $ids
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function deleteSpecificMethodConfigs(array $ids)
{
$this->sendcloudDeliveryMethodResourceModel->deleteOne($ids);
}

/**
* Deletes all delivery method configurations.
*
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function deleteAllMethodConfigs()
{
$this->sendcloudDeliveryMethodResourceModel->deleteAll();
}

/**
* Updates saved delivery methods.
*
* @param array $methods
*/
public function updateMethodConfigs(array $methods)
{
$additionalData = $this->getAdditionalData($methods);
$this->sendcloudDeliveryMethodResourceModel->update($methods, $additionalData);
}

/**
* Creates method configurations.
*
* @param array $methods
*/
public function createMethodConfigs(array $methods)
{
$additionalData = $this->getAdditionalData($methods);
$this->sendcloudDeliveryMethodResourceModel->create($methods, $additionalData);
}

/**
* Deletes all delivery method data generated by the integration.
*/
public function deleteAllMethodData()
{
// Intentionally left empty.
}

/**
* Provides delivery zones with specified ids.
*
* @param array $ids
* @return \SendCloud\SendCloud\CheckoutCore\Domain\Delivery\DeliveryZone[]
*/
public function findZoneConfigs(array $ids)
{
return $this->sendcloudDeliveryZoneResourceModel->find($ids);
}

/**
* Finds delivery methods for specified zone ids.
*
* @param array $zoneIds
* @return \SendCloud\SendCloud\CheckoutCore\Domain\Delivery\DeliveryMethod[]|void
*/
public function findMethodInZones(array $zoneIds)
{
return $this->sendcloudDeliveryMethodResourceModel->findInZones($zoneIds);
}

/**
* Delete delivery method configs for delivery methods that no longer exist in system.
*/
public function deleteObsoleteMethodConfigs()
{
//
}

/**
* Delete delivery zone configs for delivery zones that no longer exist in system.
*/
public function deleteObsoleteZoneConfigs()
{
//
}

/**
* @param array $methods
* @return array
* @throws \Magento\Framework\Exception\LocalizedException
*/
private function getAdditionalData(array $methods): array
{
$additionalData = [];
$zones = [];
/**
* @var DeliveryMethod $method
*/
foreach ($methods as $method) {
$zones[] = $method->getDeliveryZoneId();
}
$deliveryZones = $this->sendcloudDeliveryZoneResourceModel->select($zones);
/**
* @var DeliveryZone $deliveryZone
*/
foreach ($deliveryZones as $deliveryZone) {
$additionalData[$deliveryZone->getId()] = $deliveryZone->getCountry()->getName();
}
return $additionalData;
}
}