OpenCart 🇺🇦

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

Название свойства Описание
ModelOpenbayAmazonListing::$tabs private mixed $tabs = array();
Тип Возвр. Описание
public mixed search ( $search_string, $marketplace )
Исходный код метода:
$search_params = array(
	'search_string' => $search_string,
	'marketplace' => $marketplace,
);

$results = json_decode($this->openbay->amazon->callWithResponse('productv3/search', $search_params), 1);

$products = array();

foreach ($results['Products'] as $result) {

	$price = '';

	if ($result['price']['amount'] && $result['price']['currency']) {
		$price = $result['price']['amount'] . ' ' . $result['price']['currency'];
	} else {
		$price = '-';
	}

	$link = '';

	switch ($marketplace) {
		case 'uk':
			$link = 'https://www.amazon.co.uk/dp/' . $result['asin'] . '/';
			break;
		case 'de':
			$link = 'https://www.amazon.de/dp/' . $result['asin'] . '/';
			break;
		case 'fr':
			$link = 'https://www.amazon.fr/dp/' . $result['asin'] . '/';
			break;
		case 'it':
			$link = 'https://www.amazon.it/dp/' . $result['asin'] . '/';
			break;
		case 'es':
			$link = 'https://www.amazon.es/dp/' . $result['asin'] . '/';
			break;
	}

	$products[] = array(
		'name' => $result['name'],
		'asin' => $result['asin'],
		'image' => $result['image'],
		'price' => $price,
		'link' => $link,
	);
}

return $products;
public mixed getProductByAsin ( $asin, $market )
Исходный код метода:
$data = array(
	'asin' => $asin,
	'marketplace' => $market,
);

$results = json_decode($this->openbay->amazon->callWithResponse('productv3/getProduct', $data), 1);

return $results;
public mixed getBestPrice ( $asin, $condition, $marketplace )
Исходный код метода:
$search_params = array(
	'asin' => $asin,
	'condition' => $condition,
	'marketplace' => $marketplace,
);

$bestPrice = '';

$result = json_decode($this->openbay->amazon->callWithResponse('productv3/getPrice', $search_params), 1);

if (isset($result['Price']['Amount']) && $result['Price']['Currency'] && $this->currency->has($result['Price']['Currency'])) {
	$bestPrice['amount'] = number_format($this->currency->convert($result['Price']['Amount'], $result['Price']['Currency'], $this->config->get('config_currency')), 2);
	$bestPrice['shipping'] = number_format($this->currency->convert($result['Price']['Shipping'], $result['Price']['Currency'], $this->config->get('config_currency')), 2);
	$bestPrice['currency'] = $result['Price']['Currency'];
}

return $bestPrice;
public mixed simpleListing ( $data )
Исходный код метода:
$request = array(
	'asin' => $data['asin'],
	'sku' => $data['sku'],
	'quantity' => $data['quantity'],
	'price' => $data['price'],
	'sale' => array(
		'price' => $data['sale_price'],
		'from' => $data['sale_from'],
		'to' => $data['sale_to'],
	),
	'condition' => $data['condition'],
	'condition_note' => $data['condition_note'],
	'start_selling' => $data['start_selling'],
	'restock_date' => $data['restock_date'],
	'marketplace' => $data['marketplace'],
	'response_url' => HTTPS_CATALOG . 'index.php?route=amazon/listing',
	'product_id' => $data['product_id'],
);

$response = $this->openbay->amazon->callWithResponse('productv3/simpleListing', $request);
$response = json_decode($response);

if(empty($response)) {
	return array(
		'status' => 0,
		'message' => 'Problem connecting OpenBay: API'
	);
}

$response = (array)$response;

if($response['status'] === 1) {
	$this->db->query("REPLACE INTO `" . DB_PREFIX . "amazon_product` SET `product_id` = " . (int)$data['product_id'] . ", `status` = 'uploaded', `marketplaces` = '" . $this->db->escape($data['marketplace']) . "', `version` = 3, `var` = '" . isset($data['var']) ? $this->db->escape($data['var']) : '' . "'");
}

return $response;
public mixed getBrowseNodes ( $request )
Исходный код метода:
return $this->openbay->amazon->callWithResponse('productv3/getBrowseNodes', $request);
public mixed doBulkSearch ( $search_data )
Исходный код метода:
foreach ($search_data as $products) {
	foreach ($products as $product) {
		$this->db->query("
			REPLACE INTO " . DB_PREFIX . "amazon_product_search (product_id, `status`, marketplace)
			VALUES (" . (int)$product['product_id'] . ", 'searching', '" . $this->db->escape($product['marketplace']) . "')");
	}
}

$request_data = array(
	'search' => $search_data,
	'response_url' => HTTPS_CATALOG . 'index.php?route=amazon/search'
);

$this->openbay->amazon->callWithResponse('productv3/bulkSearch', $request_data);
public mixed deleteSearchResults ( $marketplace, $product_ids )
Исходный код метода:
$imploded_ids = array();

foreach ($product_ids as $product_id) {
	$imploded_ids[] = (int)$product_id;
}

$imploded_ids = implode(',', $imploded_ids);

$this->db->query("
	DELETE FROM " . DB_PREFIX .  "amazon_product_search
	WHERE marketplace = '" . $this->db->escape($marketplace) . "' AND product_id IN ($imploded_ids)
");
public mixed doBulkListing ( $data )
Исходный код метода:
$this->load->model('catalog/product');
$request = array();

$marketplaceMapping = array(
	'uk' => 'A1F83G8C2ARO7P',
	'de' => 'A1PA6795UKMFR9',
	'fr' => 'A13V1IB3VIYZZH',
	'it' => 'APJ6JRA9NG5V4',
	'es' => 'A1RKKUPIHCS9HS',
);

foreach($data['products'] as $product_id => $asin) {
	$product = $this->model_catalog_product->getProduct($product_id);

	if ($product) {
		$price = $product['price'];

		if ($this->config->get('openbay_amazon_listing_tax_added') && $this->config->get('openbay_amazon_listing_tax_added') > 0) {
			$price += $price * ($this->config->get('openbay_amazon_listing_tax_added') / 100);
		}

		$request[] = array(
			'asin' => $asin,
			'sku' => $product['sku'],
			'quantity' => $product['quantity'],
			'price' => number_format($price, 2, '.', ''),
			'sale' => array(),
			'condition' => (isset($data['condition']) ? $data['condition'] : ''),
			'condition_note' => (isset($data['condition_note']) ? $data['condition_note'] : ''),
			'start_selling' => (isset($data['start_selling']) ? $data['start_selling'] : ''),
			'restock_date' => '',
			'marketplace' => $data['marketplace'],
			'response_url' => HTTPS_CATALOG . 'index.php?route=amazon/listing',
			'product_id' => $product['product_id'],
		);
	}
}

if ($request) {
	$response = $this->openbay->amazon->callWithResponse('productv3/bulkListing', $request);

	$response = json_decode($response, 1);

	if ($response['status'] == 1) {
		foreach ($request as $product) {
			$this->db->query("
				REPLACE INTO `" . DB_PREFIX . "amazon_product`
				SET `product_id` = " . (int)$product['product_id'] . ",
					`status` = 'uploaded',
					`marketplaces` = '" . $this->db->escape($data['marketplace']) . "',
					`version` = 3,
					`var` = ''
			");
		}

		return true;
	}
}

return false;

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

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

Комментарии