OpenCart 2: Финансовый учет - пара нюансов
- Категория: Технические советы
- – Автор: Игорь (Администратор)
OpenCart 2 это система для создания интернет-магазина. Поэтому в первую очередь она решает именно задачи магазина, а не задачу ведения полного учета товарооборота. Вспомните любой поход в магазин. Что вас окружает? Товар на полках, касса на выходе, по углам видны проходы в небольшие или большие каморки, где хранится запас товара. Могут быть акции, карточки, оформление доставки и прочее. В принципе, это все. Вы берете товар, вам подсчитывают общую сумму, после оплаты выдают чек и либо отдают товар в руки, либо отправляют его на доставку.
По сути, на этом задачи магазина кончаются. Все остальное решается уже другими системами. Бухгалтерский учет, логистика, управление поставками и так далее. Конечно, все это можно реализовать в OpenCart, если его переделать и нашпиговать модулями (если таковые наберутся), но это уже отдельная тема.
Возвращаясь, это длинное вступление предназначено для того, чтобы вы посмотрели на OpenCart не как на систему полноценного финансового учета, а именно как на интернет-магазин. А теперь, рассмотрим несколько нюансов.
В OpenCart 2 хранятся только итоговые цифры
В OpenCart 2 есть масса замечательных механизмов для ведения гибких расчетов. Один из них это опции, которые могут существенно влиять на цены. Для тех кто не знает, суть проста. Вы создаете наборы опций, а затем для каждого товара добавляете нужный набор и указываете каким образом добавление той или иной опции влияет на цену. Например, если вы продаете компьютеры, то опция с оперативной памятью может быть как нельзя кстати (4Гб, 8Гб и т.д.). Покупатель уже сам сможет определиться нужен ли ему компьютер со стандартной комплектацией или же он хочет за дополнительную плату навесить еще памяти.
Если смотреть на OpenCart как на систему финансового учета, то было бы ожидаемо, что все эти цифры хранятся в заказе. Однако, это не так. В OpenCart 2 хранятся только итоговые цифры по заказу. Это означает следующее. Во-первых, сохраняется только полная стоимость товара с учетом опций. Во-вторых, сами расчеты опций не сохраняются, а только ведется их учет для позиции с товаром. Грубо говоря, набор опций и товар представляют собой одну позицию, для которой фиксируется их общая стоимость за единицу. И в-третьих, нет никакой возможности узнать исходную стоимость товара или отдельной опции.
Рассмотрим наглядный пример. Создайте товар, например, "Монитор". Создайте опцию "дешевая веб-камера", которая нормально крепится на данном мониторе. Определите стоимость товара в 100 у.е., а стоимость опции в 10 у.е. После этого оформите заказ на покупку, к примеру, 10 мониторов с веб-камерой. Теперь, если открыть заказ, то можно увидеть, что товар отображается вместе с опцией и стоимость такого комплекта товара за единицу составляет 110 у.е. При этом общая стоимость составляет 1100 у.е. Тут важно понимать, что в таблице БД хранится только итоговая стоимость за единицу и общая сумма (без деталей).
После этого зайдите в товар и поменяйте его стоимость с 100 на 200, а стоимость опции с 10 на 30. И оформите еще один аналогичный заказ. Теперь, стоимость за единицу будет составлять 230 у.е. А общая стоимость будет составлять 2300 у.е.
Внимательно посмотрите на те цифры, которые у вас есть. Текущая стоимость товара 200, текущая стоимость опции 30, стоимость комплектации в первом заказе 110, а во втором 230. Как видите, этих цифр достаточно для интернет-магазина, который хранит только чеки за товар, но не достаточно для нормального финансового учета, так как вы не можете без стороннего источника узнать исходную стоимость товара или опции на момент первого заказа, а следовательно не можете проводить какие-либо дальнейшие расчеты.
К сожалению, из-за незнания этого нюанса, часть людей делает ошибочные выводы. Например, "в заказе же есть опция, почему нельзя посчитать суммарный оборот за период по этой опции". Теперь, вы знаете почему.
В OpenCart 2 история заказа ведется только для статуса
Важно знать, что в OpenCart 2 история заказа ведется только для статуса. С учетом предыдущего пункта, это означает, что если вы будете редактировать заказ (а не только изменять статус заказа), то это может привести к изменению суммы заказа. Например, попробуйте отредактировать первый заказ, оставив цены 200 и 30. Вы увидите, что на втором шаге сумма за единицу и общая сумма при подсчете станут другими. Теперь, товар будет стоить не 110, а 230. Конечно, если вы попробуете пересчитать сумму по товару, то появится сообщение "карточка товара была модифицирована", однако если не пересчитывать, то вы не увидите это сообщение и после сохранения в сумму заказа пойдет последняя цена.
Поэтому старые заказы лучше даже не трогать, если, конечно, вы не используете модуль, который не пересчитывает цифры, а изменяет только отдельные поля заказа. Все аналогично тому, как это происходит в магазине, при пересчете сумма в чеке будет автоматически подставляться на основе текущей цены товара и опций. В системах финансового учета такое не приемлемо.
Существуют и другие нюансы, но даже из этих видно, что на OpenCart 2 нужно смотреть с точки зрения интернет-магазина, а не как на систему финансового учета. В противном случае, вы можете наткнуться на проблемы с цифрами (суммы будут не сходится и прочее).
☕ Понравился обзор? Поделитесь с друзьями!