Octibiz
Demo

Durchsucht Website und Dokumentation gemeinsam. Enter zeigt alle Treffer, Esc schließt.

Sales channels

Sales channels screen in Octibiz

Overview

A sales channel is a point of sale outside the system — a marketplace or a shop. This area holds two directions together: listings and stock go out, orders come in.

The principle behind it: the system stays the truth. A channel receives an allocation of stock, not the stock itself — otherwise two channels would sell the same item.

Core tasks

Set up a channel. You create the channel, store the credentials and define which stock allocation and which customer apply to incoming orders.

Maintain listings. A listing connects a product with the channel. Title, description and price can be overridden per channel — whatever is not overridden comes from the product master data.

Trigger a sync. The sync sends listings and stock out and pulls orders in. It can be started manually; in normal operation it runs automatically.

Bundles and configurable articles. If the channel reports the chosen options (Shopware: nested line items, Shopify: bundles), the import takes over a configurable article with exactly this selection and does not book the parts on top. If the bundle is not a configurable article on your side, the individual parts remain the order — as without a bundle. WooCommerce does not deliver this information yet.

Delivery time to the channel. The article's delivery time goes out with the listing, and every channel gets it in its own form: Shopware the range 1:1 (minimum and maximum in days), Otto the upper bound as delivery time (parcel or freight forwarder is set by the channel setting Delivery type), Amazon and Kaufland the upper bound as handling time — the time until shipping, to which the marketplace adds the transit time itself. The upper bound, because the handling time is a shipping promise whose breach the marketplace counts; the delivery time already includes the transit time and is therefore a safe upper limit. Kaufland maintains it with the stock on the existing unit, Amazon only for merchant fulfilment. Without a delivery time on the article or with "on request" nothing goes out — the channel keeps its default. A changed delivery time resends the listing on the next sync.

Texts, manufacturer, properties, variants and images to the shop. Shopware and Shopify receive more than title and price:

DetailShopwareShopify
Name and description per language (from the translations; variants inherit the container's description)as a translation — only for languages the shop has; own mapping via the channel setting languageCodes (e.g. {"en": "en-US"})as a registered translation; the shop's primary language (channel setting primaryLocale, default de) is the source text
Manufacturer with legal details (GPSR: company name, responsible person in the EU, address, e-mail, phone)manufacturer with link, the mandatory details as custom fields octibiz_gpsr_*manufacturer as vendor, the mandatory details as metafield octibiz.gpsr
Properties (e.g. colour: red)properties with groupmetafield octibiz.properties
Variantsvariant below the container as parent product, with its axis valuesall variants of a container as ONE product with variants (axes as product options, title and translation from the container)
Images (public address on the media item)media, the first as coverproduct images, fetched by the shop from the address

Any change to these details resends the listing on the next sync. Amounts go out in the smallest unit of the channel currency as always.

Variants as real variants in the shop. In Octibiz every variant stays an article of its own with its own article number, price and stock. In the shop it becomes what the shop understands as an article with variants:

ShopMapping
Shopwareparent product (article number of the container) with one variant each
ShopifyONE product with all variants; the axes (e.g. colour, size) are the product options
WooCommercevariable product (article number of the container) with one variation each; the axes are the variation attributes

If one variant changes, Shopify and WooCommerce receive all variants of the same container — the shop product is set as a whole. Stock and price go per variant; an order from the shop hits exactly the variant via its article number. If a variant article is deleted or deactivated in Octibiz, it drops out of the Shopify product with the next transfer of its siblings. Variants that were transferred as single products before this change are created as a shared product by the first sync, which sets the old single products to draft once (Shopify DRAFT, WooCommerce draft) — nothing is deleted, orders and references in the shop stay intact. The sync result names per variant which old product was set to draft.

Withdraw a listing. Withdrawing removes it on the channel without touching the product.

Fields in detail

FieldRequiredValues / formatWhat it does
Key channelKeyyestext, max. 100 charactersThe channel's technical identifier. Do not change it once orders run through it.
Name nameyestext, max. 160 charactersWhat the channel is called in lists and reports.
Connector type connectorTypeyesan available connector, max. 60 charactersWhat is connected to — marketplace, shop, foreign system.
Provider connection integrationProvidernoa configured connectionWhich login is used for access.
Settings confignodepending on the connectorCredentials and identifiers of the channel.
Brand brandIdnoone of your brandsWhich brand this channel's orders run under.
Currency currencynoISO 4217 currency code, 3 charactersThe currency this channel sells in. Empty = the accounting currency. If something else is set, the system converts prices once and reports amount and currency together; without a stored rate no price or listing run happens. Amounts are sent and read with the decimal places of the currency (yen none, euro two, Bahraini dinar three); imported orders carry the marketplace's currency.
Warehouse warehouseIdnoan existing warehouseWhich stock serves the channel.
Stock share (%) stockPercentno1 to 100How much of the stock is reported to the channel. With several channels on one warehouse, the way not to sell the same goods twice.
Stock buffer stockBufferno0 or moreHow many pieces are held back. The most effective guard against overselling: the last item is not reported, so the gap in time between two sales hits nobody.
Price customer priceCustomerUlidnoan existing customerWhose price finding is adopted. That way a marketplace gets its own prices without them being maintained twice.
Fallback customer fallbackCustomerUlidnoan existing customerWho an order is assigned to when its buyer cannot be matched. Without them the order gets stuck.
Acting user runAsUserUlidnoan existing accountIn whose name the channel acts. Their permissions apply — and this identity appears in the audit log.
Confirm orders automatically autoConfirmOrdersnoyes/noWhether incoming orders go into processing without review.
Orders ordersnolist of incoming ordersThe orders taken over from the channel.

Interface and automation only

FieldValues / formatWhat it does
checkoutsone cart or a list, at most 100Reports started carts of the channel (POST …/channels/{ulid}/checkouts) — the path for shop webhooks such as Shopify checkouts/create. Every report with the same externalId updates the same cart; completedAt set means ordered.
operation and forceoperation type, yes/noTriggers a sync — report stock, send prices, fetch orders. force bypasses the cooldown between runs; use with care, because marketplaces cap the number of requests.
externalOrderIdforeign identifierWhich channel order is reported as shipped. This is how the marketplace recognises the shipment.
orderUlidone of your own ordersWhich of your own orders the shipment comes from.
carriertext, max. 60 charactersThe carrier — spelled the way the channel expects it.
trackingNumbertext, max. 120 charactersThe tracking number the buyer gets to see.
trackingUrladdress, max. 500 charactersThe tracking link for the shipment.
shippedAttimestampWhen it was shipped; empty = now.
lineslist of item number and quantityReports a partial shipment. Empty means the whole order has gone out. The marketplace's line identifier is added by the system from the order import — there is nowhere else to get it.

Settings & permissions

  • View: channels.channel.view
  • Set up a channel (allocation, credentials, customer): channels.channel.manage
  • Listings: channels.listing.manage
  • Trigger sync: channels.sync.execute

Module flag: module.channels. The actual connection to a specific marketplace is supplied by its own channel plugin.

FAQ & troubleshooting

Stock on the channel differs. Check the allocation: the channel only sees its share, not the total stock.

An item without stock management shows a high quantity on the channel. That is intended: services, downloads and items without stock management count as available, not as sold out. The quantity comes from the setting channels.unmanaged_stock_qty (default 999); WooCommerce and Shopify get "not stock-managed" instead.

A partial shipment shows as a full delivery at the marketplace. Since 2026-09-21 every shipment reports exactly its lines and quantities; older reports stay as they were.

Where do market prices come from? The repricer lookup of competing offers exists for Amazon, eBay and Kaufland. Otto offers no interface for it; there the lookup reports "not supported".

An order arrived without a customer. Then the channel is missing the customer for incoming orders.

The sync reports an error. The channel's message is in the run journal — usually expired credentials or a field the marketplace rejected.

channels.channels · Available from version 0.5.6