OpenCart 🇺🇦

Класс ModelOpenbayAmazonOrder extends Model { ... }

Тип Возвр. Описание
public mixed acknowledgeOrder ( $orderId )
Исходный код метода:
$amazonOrderId = $this->getAmazonOrderId($orderId);

$requestXml = "<Request>
<AmazonOrderId>$amazonOrderId</AmazonOrderId>
<MerchantOrderId>$orderId</MerchantOrderId>
Request>";

$this->openbay->amazon->callNoResponse('order/acknowledge', $requestXml, false);
public mixed getProductId ( $sku )
Исходный код метода:
$row = $this->db->query("SELECT `product_id`
	FROM `" . DB_PREFIX . "amazon_product_link`
	WHERE `amazon_sku` = '" . $this->db->escape($sku) . "'
	")->row;

if (isset($row['product_id']) && !empty($row['product_id'])) {
	return $row['product_id'];
}

return 0;
public mixed getProductVar ( $sku )
Исходный код метода:
$row = $this->db->query("SELECT `var`
	FROM `" . DB_PREFIX . "amazon_product_link`
	WHERE `amazon_sku` = '" . $this->db->escape($sku) . "'
	")->row;

if (isset($row['var'])) {
	return $row['var'];
}

return '';
public mixed decreaseProductQuantity ( $productId, $delta, $var = '' )
Исходный код метода:
if($productId == 0) {
	return;
}
if($var == '') {
	$this->db->query("
		UPDATE `" . DB_PREFIX . "product`
		SET `quantity` = GREATEST(`quantity` - '" . (int)$delta . "', 0)
		WHERE `product_id` = '" . (int)$productId . "'");
} else {
	//@TODO: do something about subtract column?
	$this->db->query("
		UPDATE `" . DB_PREFIX . "product_option_relation`
		SET `stock` = GREATEST(`stock` - '" . (int)$delta . "', 0)
		WHERE `product_id` = '" . (int)$productId . "' AND `var` = '" . $this->db->escape($var) . "'");
}
public mixed getMappedStatus ( $amazonStatus )
Исходный код метода:
$amazonStatus = trim(strtolower($amazonStatus));

switch ($amazonStatus) {
	case 'pending':
		$orderStatus = $this->config->get('openbay_amazon_order_status_pending');
		break;

	case 'unshipped':
		$orderStatus = $this->config->get('openbay_amazon_order_status_unshipped');
		break;

	case 'partiallyshipped':
		$orderStatus = $this->config->get('openbay_amazon_order_status_partially_shipped');
		break;

	case 'shipped':
		$orderStatus = $this->config->get('openbay_amazon_order_status_shipped');
		break;

	case 'canceled':
		$orderStatus = $this->config->get('openbay_amazon_order_status_canceled');
		break;

	case 'unfulfillable':
		$orderStatus = $this->config->get('openbay_amazon_order_status_unfulfillable');
		break;

	default:
		$orderStatus = $this->config->get('config_order_status_id');
		break;
}

return $orderStatus;
public mixed getCountryName ( $countryCode )
Исходный код метода:
$row = $this->db->query("
	SELECT `name`
	FROM `" . DB_PREFIX . "country`
	WHERE LOWER(`iso_code_2`) = '" . $this->db->escape(strtolower($countryCode)) . "'")->row;

if (isset($row['name']) && !empty($row['name'])) {
	return $row['name'];
}

return '';
public mixed getCountryId ( $countryCode )
Исходный код метода:
$row = $this->db->query("
	SELECT `country_id`
	FROM `" . DB_PREFIX . "country`
	WHERE LOWER(`iso_code_2`) = '" . $this->db->escape(strtolower($countryCode)) . "'")->row;

if (isset($row['country_id']) && !empty($row['country_id'])) {
	return (int)$row['country_id'];
}

return 0;
public mixed getZoneId ( $zoneName )
Исходный код метода:
$row = $this->db->query("
	SELECT `zone_id`
	FROM `" . DB_PREFIX . "zone`
	WHERE LOWER(`name`) = '" . $this->db->escape(strtolower($zoneName)) . "'")->row;

if (isset($row['country_id']) && !empty($row['country_id'])) {
	return (int)$row['country_id'];
}

return 0;
public mixed updateOrderStatus ( $orderId, $statusId )
Исходный код метода:
$this->db->query("
	INSERT INTO `" . DB_PREFIX . "order_history` (`order_id`, `order_status_id`, `notify`, `comment`, `date_added`)
	VALUES (" . (int)$orderId . ", " . (int)$statusId . ", 0, '', NOW())");

$this->db->query("
	UPDATE `" . DB_PREFIX . "order`
	SET `order_status_id` = " . (int)$statusId . "
	WHERE `order_id` = " . (int)$orderId);
public mixed addAmazonOrder ( $orderId, $amazonOrderId )
Исходный код метода:
$this->db->query("
	INSERT INTO `" . DB_PREFIX . "amazon_order` (`order_id`, `amazon_order_id`)
	VALUES (" . (int)$orderId . ", '" . $this->db->escape($amazonOrderId) . "')");
public mixed addAmazonOrderProducts ( $orderId, $data )
Исходный код метода:
foreach ($data as $sku => $orderItemId) {

	$row = $this->db->query("
		SELECT `order_product_id`
		FROM `" . DB_PREFIX . "order_product`
		WHERE `model` = '" . $this->db->escape($sku) . "' AND `order_id` = " . (int)$orderId . "
		LIMIT 1")->row;

	if (!isset($row['order_product_id']) || empty($row['order_product_id'])) {
		continue;
	}

	$orderProductId = $row['order_product_id'];

	$this->db->query("
		INSERT INTO `" . DB_PREFIX . "amazon_order_product` (`order_product_id`, `amazon_order_item_id`)
		VALUES (" . (int)$orderProductId . ", '" . $this->db->escape($orderItemId) . "')");
}
public mixed getOrderId ( $amazonOrderId )
Исходный код метода:
$row = $this->db->query("
	SELECT `order_id`
	FROM `" . DB_PREFIX . "amazon_order`
	WHERE `amazon_order_id` = '" . $this->db->escape($amazonOrderId) . "'
	LIMIT 1")->row;

if (isset($row['order_id']) && !empty($row['order_id'])) {
	return $row['order_id'];
}

return '';
public mixed getOrderStatus ( $orderId )
Исходный код метода:
$row = $this->db->query("
	SELECT `order_status_id`
	FROM `" . DB_PREFIX . "order`
	WHERE `order_id` = " . (int)$orderId)->row;

if (isset($row['order_status_id']) && !empty($row['order_status_id'])) {
	return $row['order_status_id'];
}

return 0;
public mixed getAmazonOrderId ( $orderId )
Исходный код метода:
$row = $this->db->query("
	SELECT `amazon_order_id`
	FROM `" . DB_PREFIX . "amazon_order`
	WHERE `order_id` = " . (int)$orderId . "
	LIMIT 1")->row;

if (isset($row['amazon_order_id']) && !empty($row['amazon_order_id'])) {
	return $row['amazon_order_id'];
}

return NULL;
public mixed getProductOptionsByVar ( $productVar )
Исходный код метода:
$options = array();

$optionValueIds = explode(':', $productVar);
foreach($optionValueIds as $optionValueId) {
	$optionDetailsRow = $this->db->query("SELECT
		pov.product_option_id,
		pov.product_option_value_id,
		od.name,
		ovd.name as value,
		opt.type
	FROM `" . DB_PREFIX . "product_option_value` as pov,
		 `" . DB_PREFIX . "product_option` as po,
		 `" . DB_PREFIX . "option` as opt,
		 `" . DB_PREFIX . "option_value_description` as ovd,
		 `" . DB_PREFIX . "option_description` as od
	WHERE pov.product_option_value_id = '" . (int)$optionValueId . "' AND
		po.product_option_id = pov.product_option_id AND
		opt.option_id = pov.option_id AND
		ovd.option_value_id = pov.option_value_id AND ovd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND
		od.option_id = pov.option_id AND od.language_id = '" . (int)$this->config->get('config_language_id') . "'
	")->row;

	if(!empty($optionDetailsRow)) {
		$options[] = array(
			'product_option_id' => (int)$optionDetailsRow['product_option_id'],
			'product_option_value_id' => (int)$optionDetailsRow['product_option_value_id'],
			'name' => $optionDetailsRow['name'],
			'value' => $optionDetailsRow['value'],
			'type' => $optionDetailsRow['type']
		);
	}
}

return $options;

Связанные классы:

Название класса Роль
class Config { ... } Компонент Config используется в данном классе
class DB { ... } Компонент Db используется в данном классе

Комментарии