[ADD] inventory: format zebra labels
closes odoo/documentation#9969
X-original-commit: 6495e78998
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
@ -15,3 +15,4 @@ Setup and configuration
|
|||||||
setup_configuration/sendcloud_shipping
|
setup_configuration/sendcloud_shipping
|
||||||
setup_configuration/starshipit_shipping
|
setup_configuration/starshipit_shipping
|
||||||
setup_configuration/ups_credentials
|
setup_configuration/ups_credentials
|
||||||
|
setup_configuration/zebra
|
||||||
|
@ -0,0 +1,234 @@
|
|||||||
|
=========================
|
||||||
|
Zebra label configuration
|
||||||
|
=========================
|
||||||
|
|
||||||
|
.. |ZPL| replace:: :abbr:`ZPL (Zebra Programming Language)`
|
||||||
|
|
||||||
|
In Odoo, labels printed in the Zebra Programming Language (ZPL) file format are designed to fit a
|
||||||
|
four-by-six inch label. To resize (or reformat) text to fit a variety of |ZPL| label sizes,
|
||||||
|
:ref:`navigate to the ZPL label view <inventory/shipping_receiving/zpl-view>`, and alter the |ZPL|
|
||||||
|
code.
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
When customizing code in Odoo, please note that upgrading the database to newer versions may
|
||||||
|
break custom |ZPL| code. **Customers are responsible for maintaining their custom code**.
|
||||||
|
|
||||||
|
Refer to the following sections for explanations, and example code, for frequently requested Zebra
|
||||||
|
label customizations.
|
||||||
|
|
||||||
|
- :ref:`Adjust margins <inventory/shipping_receiving/margin>`
|
||||||
|
- :ref:`Enlarge/minimize barcodes <inventory/shipping_receiving/resize>`
|
||||||
|
- :ref:`Rotate elements <inventory/shipping_receiving/rotate>`
|
||||||
|
|
||||||
|
.. _inventory/shipping_receiving/zpl-view:
|
||||||
|
|
||||||
|
Navigate to ZPL label view
|
||||||
|
==========================
|
||||||
|
|
||||||
|
To begin customizing a Zebra label in Odoo, turn on :ref:`developer mode <developer-mode>`, and on
|
||||||
|
the main Odoo dashboard, type `Reports`. From the search results that appear in the resulting pop-up
|
||||||
|
window, choose :guilabel:`Settings / Technical / Reporting / Reports` to open the
|
||||||
|
:guilabel:`Reports` page.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
To manually navigate to the :guilabel:`Reports` page, go to :menuselection:`Settings app -->
|
||||||
|
Technical --> Reporting: Reports`.
|
||||||
|
|
||||||
|
.. image:: zebra/search.png
|
||||||
|
:align: center
|
||||||
|
:alt: Show global search result for "Reports".
|
||||||
|
|
||||||
|
On the :guilabel:`Reports` page, in the :guilabel:`Search...` bar, type `ZPL`, and hit :kbd:`Enter`.
|
||||||
|
Upon doing so, Odoo presents a list of available Zebra labels in Odoo. Select the desired Zebra
|
||||||
|
label from the list to modify it on a separate page.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Printable ZPL labels in Odoo:
|
||||||
|
|
||||||
|
- :ref:`lot/serial number <inventory/shipping_receiving/lot-sn-labels>`
|
||||||
|
- operation type
|
||||||
|
- package barcode
|
||||||
|
- :ref:`product label <inventory/shipping_receiving/product-labels>`
|
||||||
|
- product packaging
|
||||||
|
- finished product (Odoo *Manufacturing* app required)
|
||||||
|
|
||||||
|
Next, click the :icon:`fa-code` :guilabel:`Qweb Views` smart button, and choose the desired label
|
||||||
|
:doc:`view <../../../../../developer/reference/user_interface/view_records>`.
|
||||||
|
|
||||||
|
.. figure:: zebra/qweb-views.png
|
||||||
|
:align: center
|
||||||
|
:alt: Show Qweb smart button on the Lot and Serial Number (ZPL) report.
|
||||||
|
|
||||||
|
**Lot and Serial Number (ZPL)** report, highlighting the Qweb smart button.
|
||||||
|
|
||||||
|
On the resulting view form, go to the :guilabel:`Architecture` tab to view the |ZPL| code.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
To ensure the customization is **not** overwritten during an update, click the :icon:`fa-bug`
|
||||||
|
:guilabel:`(bug)` icon on the view page. Then, select the :guilabel:`View Metadata` option from
|
||||||
|
the resulting drop-down menu, in order to open the :guilabel:`View Metadata` pop-up window. Then,
|
||||||
|
ensure the :guilabel:`No Update` field is set to :guilabel:`true (change)`. Click :guilabel:`Ok`
|
||||||
|
to exit the :guilabel:`View Metadata` pop-up window.
|
||||||
|
|
||||||
|
.. image:: zebra/architecture.png
|
||||||
|
:align: center
|
||||||
|
:alt: Architecture tab in the view.
|
||||||
|
|
||||||
|
.. _inventory/shipping_receiving/margin:
|
||||||
|
|
||||||
|
Adjust margin
|
||||||
|
=============
|
||||||
|
|
||||||
|
Text gets cut off from standard |ZPL| labels printed in Odoo when the line exceeds fifty-five
|
||||||
|
characters. To fit long product names, or lot numbers, on a single line, adjust the margin.
|
||||||
|
|
||||||
|
To begin, navigate to the :ref:`ZPL code of the label <inventory/shipping_receiving/zpl-view>` in
|
||||||
|
the :guilabel:`Architecture` tab. In the |ZPL| code for product labels, look for the `^FT` command,
|
||||||
|
which specifies where to start placing the text, or graphic element, on the label. The two numbers
|
||||||
|
immediately following `^FT` define the x-coordinate and y-coordinate in dots (:dfn:`similar to
|
||||||
|
pixels for printers`) from the left and top margins.
|
||||||
|
|
||||||
|
.. important::
|
||||||
|
When customizing lot/serial number labels, look for the `^FO` command, instead of `^FT`.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
|
||||||
|
The following is an example where the product's name gets cut off with Odoo's default |ZPL|
|
||||||
|
formatting. In the **Fixed** tab, the x-coordinate of the starting position of the label is
|
||||||
|
changed from `^FT100,80` to `^FT0,80`, to fit the entire name.
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. tab:: Default
|
||||||
|
|
||||||
|
.. image:: zebra/default-margin.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example barcode label with the product name cut off.
|
||||||
|
|
||||||
|
**Code**:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
^XA^CI28
|
||||||
|
^FT100,80^A0N,40,30^FD[E-COM11] Cabinet with Doors (wood: Cherry, handles: brass)^FS
|
||||||
|
...
|
||||||
|
^XZ
|
||||||
|
|
||||||
|
.. tab:: Modified
|
||||||
|
|
||||||
|
.. image:: zebra/fixed-margin.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example barcode label with the product name margin adjusted to the left.
|
||||||
|
|
||||||
|
**Code**:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
^XA^CI28
|
||||||
|
^FT0,80^A0N,40,30^FD[E-COM11] Cabinet with Doors (wood: Cherry, handles: brass)^FS
|
||||||
|
...
|
||||||
|
^XZ
|
||||||
|
|
||||||
|
.. _inventory/shipping_receiving/resize:
|
||||||
|
|
||||||
|
Resize barcode
|
||||||
|
==============
|
||||||
|
|
||||||
|
To adjust the size of the barcode to scale, begin by navigating to the :ref:`ZPL code of the label
|
||||||
|
<inventory/shipping_receiving/zpl-view>` in the :guilabel:`Architecture` tab. Look for the `^FO`
|
||||||
|
command (typically in the third line), which is the starting point of the margin for the barcode.
|
||||||
|
|
||||||
|
The `^BY` command configures barcode size, and takes three numbers: bar width, width of wide bars
|
||||||
|
relative to narrow bars, and bar height. By default, |ZPL| code in Odoo uses `^BY3`, setting the bar
|
||||||
|
width to three dots, a typical size that is easy for barcode scanners to read.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
To shrink the barcode to scale, `^BY3` is reduced to `^BY2`.
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. tab:: Default
|
||||||
|
|
||||||
|
.. image:: zebra/normal-barcode.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example barcode label.
|
||||||
|
|
||||||
|
**Code**:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
^XA^CI28
|
||||||
|
...
|
||||||
|
^FO100,160^BY3
|
||||||
|
...
|
||||||
|
^XZ
|
||||||
|
|
||||||
|
.. tab:: Modified
|
||||||
|
|
||||||
|
.. image:: zebra/shrink-barcode.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example barcode label with the barcode size reduced.
|
||||||
|
|
||||||
|
**Code**:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
^XA^CI28
|
||||||
|
...
|
||||||
|
^FO100,160^BY2
|
||||||
|
...
|
||||||
|
^XZ
|
||||||
|
|
||||||
|
.. _inventory/shipping_receiving/rotate:
|
||||||
|
|
||||||
|
Rotate elements
|
||||||
|
===============
|
||||||
|
|
||||||
|
To rotate elements in |ZPL|, begin by navigating to the :ref:`ZPL code of the label
|
||||||
|
<inventory/shipping_receiving/zpl-view>` in the :guilabel:`Architecture` tab.
|
||||||
|
|
||||||
|
The `^BC` command's first parameter (:dfn:`information that affects the behavior of the command`)
|
||||||
|
defines the rotation of an item, which can be:
|
||||||
|
|
||||||
|
- `N`: display normally
|
||||||
|
- `R`: rotate 90 degrees
|
||||||
|
- `I`: rotate 180 degrees
|
||||||
|
- `B`: rotate 270 degrees
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
To rotate the barcode, `^BCN` is changed to `^BCB`.
|
||||||
|
|
||||||
|
.. tabs::
|
||||||
|
|
||||||
|
.. tab:: Default
|
||||||
|
|
||||||
|
.. image:: zebra/lot.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example barcode label.
|
||||||
|
|
||||||
|
**Code**:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
^XA^CI28
|
||||||
|
...
|
||||||
|
^BCN,100,Y,N,N
|
||||||
|
...
|
||||||
|
^XZ
|
||||||
|
|
||||||
|
.. tab:: Modified
|
||||||
|
|
||||||
|
.. image:: zebra/rotate.png
|
||||||
|
:align: center
|
||||||
|
:alt: Example barcode label with the barcode rotated.
|
||||||
|
|
||||||
|
**Code**:
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
^XA^CI28
|
||||||
|
...
|
||||||
|
^BCB,100,Y,N,N
|
||||||
|
...
|
||||||
|
^XZ
|
||||||
|
|
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 9.6 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 6.4 KiB |