Сохраняйте ID удалённых записей в пуле. А при создании новой записи делайте выборку доступных id и создавайте запись с id из этого пула. После создания, не забудьте удалить id из пула.
Для хранения разной информации в localStorage можно завести поле со строкой в формате json
Например:
var settings = {"button1":"В корзину","button2":"В корзине"};
localStorage.setItem('settings',JSON.stringify(settings));
После перезагрузки страницы, читаем из localStorage:
var settings = JSON.parse(localStorage.getItem('settings'));
И распихиваете значения куда нужно...
Конечно в конфиге. А конфиг хранить в зашифрованном виде на отдельном сервере с ограниченным доступом по IP. Получать конфиг по API с временным токеном.
Можно создать роутер, который обслуживает url и контроллер, который, в зависимости от состояния роутера, будет подключать тот или иной класс, и вызывать требуемый метод.
По всей видимости, сервер не распознаёт тип вашего файла и отвергает его.
Нужно разбираться с API. Какие файлы принимает сервер (форматы, расширения), нет ли ограничений на размер файла. Возможно, при отправке данных нужно задать какие-то заголовки.