What it does
A customer in the shop who wants the goods delivered is a normal thing in
Vietnam, and often they pay the courier rather than the counter. Odoo's point of
sale can already create a delivery, but only for the delivery methods it can
price itself - which excludes every real carrier. This app removes that
restriction for the Vietnamese ones.
Key Features
- Real carriers in the point of sale: GHN, GHTK and Viettel Post appear
in the carrier list and are priced by asking the carrier, on the actual route
and weight, while the customer is still at the counter.
- What is unpaid is collected on delivery: whatever the customer did not pay
at the till becomes the amount the courier collects. Paid in full at the
counter, the parcel ships with nothing to collect; paid a deposit, the courier
collects the rest.
- Addresses checked at the counter, not at the warehouse: a customer without
a province and ward is refused while they are standing there and can say where
they live, rather than three hours later when the parcel cannot be booked.
- Everything else follows: the transfer the point of sale creates is an
ordinary delivery, so booking, waybills, tracking and the COD reconciliation
all work on it exactly as they do for a web order.
Editions Supported
- Community Edition
- Enterprise Edition
Vietnam Delivery at the Point of Sale
A customer in the shop who wants the goods delivered is ordinary in Vietnam, and they often pay the
courier rather than the counter. This app lets the cashier ship that sale with a real carrier.
It assumes a Vietnam carrier connector and PoS Delivery are installed; both come with it.
Installation
- Go to Apps, remove the default Apps filter, search for
Vietnam Delivery at the Point of Sale and click Install.
Configuration
- Set up the carriers as usual under Inventory > Configuration > Delivery Methods, filling in
the Vietnam Shipping tab.
- Go to Point of Sale > Configuration > Settings, pick the point of sale, and add those
delivery methods under Delivery Carriers.
- Open each carrier's Delivery Product (the service product named after the carrier) and tick
Available in POS, and give it a POS category. This is how the till offers it - see below.
Odoo's point of sale normally offers only the delivery methods it can price by itself, which
excludes every real carrier. This app removes that restriction for the Vietnamese ones: they are
priced by asking the carrier, on the actual route and weight, while the customer is still standing
at the counter.
Daily use
The point of sale has no separate "shipping" button. A delivery is added the way everything else
is: by putting the carrier's delivery product on the order. PoS Delivery then reads the carrier
back off that line.
- Ring up the sale and pick the customer. A customer is required - a parcel needs somewhere to go.
- Add the carrier's delivery product to the order, the same way as any product. Its price is what
the carrier quotes for this customer's address and this order's weight.
- Take whatever payment the customer wants to make at the till, and close the sale.
The delivery is created, and what the customer did not pay becomes the amount the courier collects:
- paid in full at the counter, the parcel ships with nothing to collect;
- paid a deposit, the courier collects the rest;
- paid nothing, the courier collects the whole amount.
From there it is an ordinary delivery. Booking, waybills, tracking, the timeline and the COD
reconciliation all work on it exactly as they do for a web order.
Addresses
A customer without a province and a ward is refused at the till, with a message naming what is
missing. That is deliberate: the cashier has the customer in front of them and can ask where they
live. The warehouse, three hours later, cannot.
Fill the province and ward in on the customer record from the point of sale's customer screen, or
beforehand in the back office.
Troubleshooting
The carrier does not appear in the point of sale
Check, in order: the delivery method is in that point of sale's Delivery Carriers; its company
matches; the carrier's delivery product is Available in POS and has a POS category; and the
session was closed and reopened after the change - the point of sale loads its carriers and its
products when it opens, so a change made mid-session is not seen.
The price does not come back
The carrier refused the quote and the reason is shown at the till. The full exchange is under
API Logs > API Request Logs, or the Carrier Calls button on the transfer itself. A missing province or ward on the
customer is the usual cause.
The courier collected the wrong amount
What is collected is the order total less what was paid at the till. Check the payment recorded on
the point-of-sale order; a payment entered after the order was closed does not change a parcel that
has already been booked.
This software and associated files (the "Software") may only be
used
(executed, modified, executed after modifications) if you have
purchased a
valid license from the authors, typically via Odoo Apps,
or if you
have
received a written agreement from the authors of the
Software (see the
COPYRIGHT file).
You may develop Odoo modules that use the Software as a library
(typically
by depending on it, importing it and using its
resources), but
without
copying any source code or material from the
Software. You may distribute
those modules under the license of your
choice, provided that this
license
is compatible with the terms of
the Odoo Proprietary License (For
example:
LGPL, MIT, or proprietary
licenses similar to this one).
It is forbidden to publish, distribute, sublicense, or sell
copies of the
Software or modified copies of the Software.
The above copyright notice and this permission notice must be
included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT
SHALL THE
AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING
FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE
SOFTWARE.