Модификация плагина 1С (CommerceML)
После синхронизации сайта с Мой Склад обнаружилась неприятная особенность, если на сайте в принципе есть модификации товаров, то и для простых товаров при синхронизации заказов МС допишет модификацию, причем со всеми возможными параметрами)
Создал тему, думал кто поможет поправить, но желающих не возникло.
Попробовал добавить конструкцию, которая получает количество артикулов у товара и для простых товаров меняет формат на компактный.
Код примерно такой, тестирую результаты работы.
private function formatGuid($id, $extra_id = null) { static $strategy = null; if ($strategy === null) { $strategy = $this->pluginSettings('guid_format'); if (empty($strategy)) { $strategy = 'full'; } } if (strpos($id, '#')) { list($id, $extra_id) = explode('#', $id, 2); } if (empty($extra_id)) { $extra_id = $id; } $model = $this->getModel('productSkus'); $test = $model->query("SELECT COUNT(*) as sku_count FROM shop_product_skus WHERE product_id in (SELECT id FROM shop_product WHERE id_1c=s:id_1c)", array('id_1c' => $id))->fetchAll(); if ($test[0]['sku_count'] == '1') $strategy = 'compact'; waLog::log("id_1c $id sku_count ".$test[0]['sku_count']." strategy $strategy", 'shop/plugins/cml1c/formatGuid.log'); if (($strategy === 'full') || ($id != $extra_id)) { $uuid = $id.'#'.$extra_id; } else { $uuid = $id; } return $uuid; }
Если кто-то увидит явную ошибку или знает, что это изменение навредит чему-то другому, напишите пожалуйста, иначе просто непонятно, почему нельзя было сделать сразу с таким результатом без моих непрофессиональных костылей.
Эта тема в архиве. Добавление комментариев к ней отключено.
Пока нет ответов. Ответьте на этот вопрос первым!