Иногда хочется добавить в код товара какие-то символы, которые не принимает СДЭК.
Например, у нас используются коды типа 4677•T-TWILL-71/15|48-50_182-188
Можно спросить — зачем такие сложности? Ответ прост — нам так удобно, в коде товара видно сразу все, что нужно — и модель, и цвета, и ткань, и размер с ростом. Увы, поставить везде дефисы неудобно, потом синхронизацию хорошо сделать не получается, есть одинарные и двойные размеры и роста.
Проблема в том, что cs-cart такие символы вполне допускает, а СДЭК их не понимает и не даёт оформить заказ.
Каким я представляю решение проблемы:
Добавил в функцию fn_sdek_get_data_product_xml всего одно изменение:
было
'WareKey' => $product['ware_key'],
стало
'WareKey' => preg_replace(array('/\•/','/\|/'),array('-'),$product['ware_key']),