function fn_add_product_to_cart($product_data, &$cart, &$auth, $update = false)
{
$ids = array();
if (!empty($product_data) && is_array($product_data)) {
if (!defined('GET_OPTIONS')) {
list($product_data, $cart) = fn_add_product_options_files($product_data, $cart, $auth, $update);
}
fn_set_hook('pre_add_to_cart', $product_data, $cart, $auth, $update);
foreach ($product_data as $key => $data) {
if (empty($key)) {
continue;
}
if (empty($data['amount'])) {
continue;
}
// MODIFIE отправляет запрос на получения product_id с проверкой по commerceml_entity_map.
// Потом происходит проверка в таблице products если external_id отсутствует. Обновляет и всавляет корректный 1C_id
// FIXME : Изменить и сделать в модуле
// $entity_id = fn_get_product_id_by_external_id($data['external_id'], $data['company_id']);
// $product_id = (!empty($data['external_id'])) ? $entity_id : ((isset($data['product_id'])) ? (int) $data['product_id'] : (int) $key);
// $external_id = db_get_field("SELECT external_id FROM ?:products WHERE product_id = ?i", $data['product_id']);
// if (empty($external_id)) {
// update_product_external_id($data['product_id'], $data['company_id']);
// }
//После перевода выше стоящего кода, убрать комментарий
$product_id = (!empty($data['product_id'])) ? (int) $data['product_id'] : (int) $key;
Хочу сделать проверку по external_id
в external_id я записываю 1c id товара.
Все это влияет при редактировании заказа при запросе PUT
$entity_id = fn_get_product_id_by_external_id($data['external_id'], $data['company_id']);
$product_id = (!empty($data['external_id'])) ? $entity_id : ((isset($data['product_id'])) ? (int) $data['product_id'] : (int) $key);
$external_id = db_get_field("SELECT external_id FROM ?:products WHERE product_id = ?i", $data['product_id']);
if (empty($external_id)) {
update_product_external_id($data['product_id'], $data['company_id']);
}
Работает. Пытаюсь сделать в своем модуле но стоковый
$product_id = (!empty($data['product_id'])) ? (int) $data['product_id'] : (int) $key;
мешает. Как правильно сделать чтобы не конфликтовал?