OpenCart 🇺🇦

Схема

public int addAddress ( array $data )

Аргументы

Аргумент Возможный тип Описание
$data array

Описание

Добавляет к аккаунту покупателя новый адрес доставки (покупатель должен быть авторизован). Вернет id добавленного адреса.

Массив $data должен содержать такие поля:

Название поля Тип Описание Пример
firstname string обязательный параметр, содержит имя покупателя Виктория
lastname string обязательный параметр, содержит фамилию покупателя Васько
company string обязательный параметр, название компании ООО Нитивэб
company_id string не обязательный параметр, содержит регистрационный номер компании 12
tax_id int необязательный параметр, содержит id налога из таблички taxes, который будет налаживаться на этот адрес 1
address_1 string обязательный параметр, содержит первый адрес проспект Ленина 167
address_2 string обязательный параметр (можно оставить пустым, главное что-бы был такой элемент в массиве $data), содержит второй адрес
postcode string обязательный параметр, содержит почтовый код адреса 71600
city string обязательный параметр, содержит название города г. Запорожье
zone_id int обязательный параметр, id региона (области) 3504
country_id int обязательный параметр, содержит id страны 5
default boolean обязательный параметр, булевый флаг, если true, то адрес будет задан как адрес по-умолчанию true

Исходный код

$this->db->query("INSERT INTO " . DB_PREFIX . "address SET customer_id = '" . (int)$this->customer->getId() . "', firstname = '" . $this->db->escape($data['firstname']) . "', lastname = '" . $this->db->escape($data['lastname']) . "', company = '" . $this->db->escape($data['company']) . "', company_id = '" . $this->db->escape(isset($data['company_id']) ? $data['company_id'] : '') . "', tax_id = '" . $this->db->escape(isset($data['tax_id']) ? $data['tax_id'] : '') . "', address_1 = '" . $this->db->escape($data['address_1']) . "', address_2 = '" . $this->db->escape($data['address_2']) . "', postcode = '" . $this->db->escape($data['postcode']) . "', city = '" . $this->db->escape($data['city']) . "', zone_id = '" . (int)$data['zone_id'] . "', country_id = '" . (int)$data['country_id'] . "'");

$address_id = $this->db->getLastId();

if (!empty($data['default'])) {
	$this->db->query("UPDATE " . DB_PREFIX . "customer SET address_id = '" . (int)$address_id . "' WHERE customer_id = '" . (int)$this->customer->getId() . "'");
}

return $address_id;