customer and client consigment

38 views
Skip to first unread message

JC Michel

unread,
Jun 18, 2018, 5:28:32 AM6/18/18
to tryton

Hi,

We have the following business case:
1. as a book distributor, we handle consignment stock from other publishers. Sold items are invoiced to us when we send the customer invoice.
2. as a book diffusor, we sometimes do « deposit » in bookshops: our books and distributed ones are shipped without invoice to some bookshops and we invoice them when the books are sold.

The module stock_consignment seems to handle (1) correctly. (2) seems to work too, for books that are from our own production.
But we cannot manage to make it work for supplier consigned books.

Here is the stock configuration we tested:

WH
|- Storage STO
|- Consignment Supplier S1 (type=supplier)

Customer (type=customer)
|- Consignment Client C1 (type=storage)
|- Consignment Supplier C1-S1 (type=supplier)

Having a product move from Consignment Supplier S1 to Customer creates a supplier invoice line (ie, we sold the item).
Having a product move from Consignment Client C1 to Customer creates a client invoice line (ie, we sold the item).
Having a product move from Consignment Supplier C1-S1 to Customer creates no line. We would expect it to create 2: both customer and client invoice line.

PS: I’m surprised by the asymmetry between customer and client storage types. Why are consignment client storages to be created below Customer global location? Supplier consignment locations are created below our Warehouse, not below the top most Supplier location. Why can’t we create Client consignment locations below a new Consignment storage that would not be child of Customer CUS? Customer CUS location seems to me it contains all sold items. But customer consignment stocks are not sold yet…

Jean-Christophe Michel
--

SYMÉTRIE, livres et partitions

30 rue Jean-Baptiste Say
69001 LYON
FRANCE

www.symetrie.com

www.facebook.com/symetrie | www.twitter.com/symetriecom | www.linkedin.com/company/symetrie-music-publisher

tél : +33 (0) 478 29 52 14

Cédric Krier

unread,
Jun 18, 2018, 6:40:06 AM6/18/18
to tryton
On 2018-06-18 11:28, JC Michel wrote:
> Hi,
>
>
> We have the following business case:
> 1. as a book distributor, we handle consignment stock from other
> publishers. Sold items are invoiced to us when we send the customer
> invoice.
> 2. as a book diffusor, we sometimes do « deposit » in bookshops: our
> books *and distributed ones* are shipped without invoice to some
> bookshops and we invoice them when the books are sold.
>
> The module stock_consignment seems to handle (1) correctly. (2) seems to
> work too, for books that are from our own production.
> But we cannot manage to make it work for supplier consigned books.
>
> Here is the stock configuration we tested:
>
> WH
> |- Storage STO
> |- Consignment Supplier S1 (type=supplier)
>
> Customer (type=customer)
> |- Consignment Client C1 (type=storage)
> |- Consignment Supplier C1-S1 (type=supplier)
>
> Having a product move from Consignment Supplier S1 to Customer creates a
> supplier invoice line (ie, we sold the item).
> Having a product move from Consignment Client C1 to Customer creates a
> client invoice line (ie, we sold the item).
> Having a product move from Consignment Supplier C1-S1 to Customer
> creates no line. We would expect it to create 2: both customer and
> client invoice line.

It is not supported and we should not support it. We need to add a
constraint that prevent to move from internal shipment to move from
supplier to customer because it must first step on a storage location.
This is required if we want to compute correct cost.
https://bugs.tryton.org/issue7523

> PS: I’m surprised by the asymmetry between customer and client storage
> types. Why are consignment client storages to be created below Customer
> global location? Supplier consignment locations are created below our
> Warehouse, not below the top most Supplier location. Why can’t we
> create Client consignment locations below a new Consignment storage that
> would not be child of Customer CUS? Customer CUS location seems to me it
> contains all sold items. But customer consignment stocks are not sold
> yet…

I do not understand what is named "client storage".

--
Cédric Krier - B2CK SPRL
Email/Jabber: cedric...@b2ck.com
Tel: +32 472 54 46 59
Website: http://www.b2ck.com/

JC Michel

unread,
Jun 18, 2018, 7:52:51 AM6/18/18
to tryton

Hi Cedric

Thks for your quick reply.

If I understand correctly, the error here is to make an internal shipment from Location(type=supplier) to Location(type=customer).
If I do an Internal Shipment from Consignment Supplier S1 to Consignment Client C1 the item will be purchased from S1, this is not what I wish.

What kind of procedure could represent in Tryton the fact that
— a product is stored as consignment (not yet sold) in a Client (hence visible when doing an inventory on the Client location)
— this product comes from Supplier Consignment and must be purchased to supplier once it’s been invoiced to client.

If it’s outside stock_consignment’s scope, I’ll simply use products defined with zero cost price, to be able to represent at least the real place where they are stored.

PS: I’m surprised by the asymmetry between customer and client storage
types. Why are consignment client storages to be created below Customer
global location? Supplier consignment locations are created below our
Warehouse, not below the top most Supplier location. Why can’t we
create Client consignment locations below a new Consignment storage that
would not be child of Customer CUS? Customer CUS location seems to me it
contains all sold items. But customer consignment stocks are not sold
yet…

I do not understand what is named "client storage".

Error, I meant consignment client location. I try again :

I’m surprised by the asymmetry between customer and client storage
types.

a. Why are consignment Client locations to be created below Customer


global location? Supplier consignment locations are created below our
Warehouse, not below the top most Supplier location.

b. Why can’t we create Client consignment locations below a new Consignment storage that


would not be child of Customer CUS? Customer CUS location seems to me it
contains all sold items. But customer consignment stocks are not sold
yet…

Jean-Christophe Michel
--

Cédric Krier

unread,
Jun 18, 2018, 10:30:06 AM6/18/18
to tryton
I do not understand what is the problem and neither what does it matter
the "purchased from"?
Before selling something, you must buy it first so this means that the
product must be taking out of the supplier location to a storage
location. Then it can be sold to the customer.

So in your case, I would make it like this:

- Customer

- Main consignment
- Supplier consignment
- Consignment

I would register sales with internal shipment from Consignment to
Customer and refill Consignment using the Supplier consignment.
I would put no product in Main consignment, it would be better to have
it as a view but it is not supported for now.


> >> PS: I’m surprised by the asymmetry between customer and client
> >> storage
> >> types. Why are consignment client storages to be created below
> >> Customer
> >> global location? Supplier consignment locations are created below our
> >> Warehouse, not below the top most Supplier location. Why can’t we
> >> create Client consignment locations below a new Consignment storage
> >> that
> >> would not be child of Customer CUS? Customer CUS location seems to me
> >> it
> >> contains all sold items. But customer consignment stocks are not sold
> >> yet…
> >
> > I do not understand what is named "client storage".
>
> Error, I meant consignment client location. I try again :
>
> I’m surprised by the asymmetry between customer and client storage
> types.
> a. Why are consignment Client locations to be created below Customer
> global location? Supplier consignment locations are created below our
> Warehouse, not below the top most Supplier location.
> b. Why can’t we create Client consignment locations below a new
> Consignment storage that
> would not be child of Customer CUS? Customer CUS location seems to me it
> contains all sold items. But customer consignment stocks are not sold
> yet…

I still do not understand, this is the exact same sentences. I do not
understand what are the names used: client and customer storage.

JC Michel

unread,
Jun 18, 2018, 12:44:59 PM6/18/18
to tryton

Hi,

On 18 Jun 2018, at 16:29, Cédric Krier wrote:

If I understand correctly, the error here is to make an internal
shipment from Location(type=supplier) to Location(type=customer).
If I do an Internal Shipment from Consignment Supplier S1 to Consignment
Client C1 the item will be purchased from S1, this is not what I wish.

I do not understand what is the problem and neither what does it matter
the "purchased from"?
Before selling something, you must buy it first so this means that the
product must be taking out of the supplier location to a storage
location. Then it can be sold to the customer.

In fact I’m really confused by your last sentence.
Seems that sometimes locations are real places where products are located and sometimes they are symbolic places meaning whom they belong to and in what state they are. [1] mentions « real places » and « virtual locations ».

So to sell a product from a supplier location (meaning it belongs to the supplier), but really located at client address, to that client, I need to encode a shipment from that supplier location to an intermediary storage ? This shipment would be virtual, no item really moved. Only their status changed, from « consigned=at client address, waiting to be sold » to « invoiced=bought by the client ».

So in your case, I would make it like this:

- Customer

- Main consignment
- Supplier consignment
- Consignment

I would register sales with internal shipment from Consignment to
Customer and refill Consignment using the Supplier consignment.
I would put no product in Main consignment, it would be better to have
it as a view but it is not supported for now.

Ok, will try this. In your scheme is Customer the already defined generic and unique Customer location or is it a new location specific to that Customer ? And where is the necessary storage type: is it Consignment ?

I still do not understand, this is the exact same sentences. I do not
understand what are the names used: client and customer storage.

Maybe it’s simply that I don’t understand this sentence:

The consignment stock at customer warehouse is managed by creating a storage location under the customer location. [2]

Does « customer » mean here Location(type=customer), ie the already created Location(code=CUS) ?
Or a Location(type=warehouse, name=MyCustomer) to be created ?

Thanks for your patience,

  1. http://doc.tryton.org/4.6/modules/stock/doc/index.html
  2. http://doc.tryton.org/4.6/modules/stock_consignment/doc/index.html

Cédric Krier

unread,
Jun 21, 2018, 5:45:06 AM6/21/18
to tryton
On 2018-06-18 18:44, JC Michel wrote:
> On 18 Jun 2018, at 16:29, Cédric Krier wrote:
> >> If I understand correctly, the error here is to make an internal
> >> shipment from Location(type=supplier) to Location(type=customer).
> >> If I do an Internal Shipment from Consignment Supplier S1 to
> >> Consignment
> >> Client C1 the item will be purchased from S1, this is not what I
> >> wish.
> >
> > I do not understand what is the problem and neither what does it
> > matter
> > the "purchased from"?
> > Before selling something, you must buy it first so this means that the
> > product must be taking out of the supplier location to a storage
> > location. Then it can be sold to the customer.
>
> In fact I’m really confused by your last sentence.
> Seems that sometimes locations are real places where products are
> located and sometimes they are symbolic places meaning whom they belong
> to and in what state they are. [1] mentions « real places » and
> « virtual locations ».

Yes they are both.

> So to sell a product from a supplier location (meaning it belongs to the
> supplier), but really located at client address, to that client, I need
> to encode a shipment from that supplier location to an intermediary
> storage ? This shipment would be virtual, no item really moved. Only
> their status changed, from « consigned=at client address, waiting to
> be sold » to « invoiced=bought by the client ».

Indeed you must store separately products the company owns and products
she does not. Otherwise you can not know.
So it is not a virtual shipment, it represent a real operation.
For example, if you think about the reverse operation, the customer
bring back the product. You have to decide if you send it back also to
the supplier or if you keep it for your stock.
You must also be able to make an inventory of the product the company
owns. This can be done only if you have different locations.

Of course there are the special cases where the company location is
always empty. In this case, it may look strange but it is the cost to
pay to work with all other cases.

> > So in your case, I would make it like this:
> >
> > - Customer
> >
> > - Main consignment
> > - Supplier consignment
> > - Consignment
> >
> > I would register sales with internal shipment from Consignment to
> > Customer and refill Consignment using the Supplier consignment.
> > I would put no product in Main consignment, it would be better to have
> > it as a view but it is not supported for now.
>
> Ok, will try this. In your scheme is Customer the already defined
> generic and unique Customer location or is it a new location specific to
> that Customer ?

It is one per customer because you need to store the party on the
location for invoicing.

> And where is the necessary storage type: is it
> Consignment ?

There is no consignment type.

Customer: customer
Main consignment: storage
Supplier consignment: supplier
Consignment: storage

> > I still do not understand, this is the exact same sentences. I do not
> > understand what are the names used: client and customer storage.
>
> Maybe it’s simply that I don’t understand this sentence:
> > The consignment stock at customer warehouse is managed by creating a
> > storage location under the customer location. [2]
>
> Does « customer » mean here Location(type=customer), ie the already
> created Location(code=CUS) ?
> Or a Location(type=warehouse, name=MyCustomer) to be created ?

There is two "customer" in the sentence so I do not know which one you
do not understand.
So the "customer warehouse" is something abstract that we do not care
because it is not the company warehouse. So it is any location of type
customer (with the proper consignment party).
The "customer location" is the location with the type customer that will
be used to invoice the customer.
Reply all
Reply to author
Forward
0 new messages