after having sorted out shipment basics (special thanks to @dotbit and @SISalp) my next goal is to understand drop shipment so well that I can describe it in “The book”. I already made an attempt which was not successful.
So here comes the request some of you may already know:
Please explain to me the very basics to use the drop shipment module. Try to put off your experts’ cloths, imagine you’re explaining it to your grandmother. I’d be especially grateful for some answers to these questions:
What can the module do - what can it not?
How does the overall procedure work?
Which fields have to be filled - with what contents?
I do know how sale and shipment works - but I don’t about drop shipment.
The objective of the drop shipment module is to manage shipments which are sent directly from supplier to customer without reaching the company warehouse. This module adds a new type of Shipment called “Shipment Drop” which is used for such deliveries.
In order to make a drop shipment, you must configure the product as “supply on sale”, so whenever it is sold a purchase request is send, and have at least one supplier set which the “Drop shipment” flag activated.
Once you process a sale with a drop shipment product, a new purchase request will be created. You will notice that such purchase request have the “Customer” field set with the sale customer. The created purchase will also have the customer field set so when creating the purchase on the supplier you can indicate to which customer (and delivery address) the goods must be sent directly.
Maybe its worth extending our documentation also to clarify some concepts:
Thank you for taking care.
So I’ll try to sum up the proceeding as good as I can; I’ll update this message with more incoming info.
(last updated Nov. 2nd, 2023)
Limitations:
You can only do one drop shipment from one seller to one purchaser at a time; the purchase may contain several different products
You (at the moment) need to attribute a product as “drop shipment” product. Then, you cannot sell this product from your own warehouse. A workaround may be to have the same product twice in you products list: 1st is “drop shipment”, 2nd is “own stock”
Prerequisites:
install module trytond_sale_supply_drop_shipment
set up the “drop shipment” sequence (looks as of you are not allowed to change the sequence name)
menu > inventory&stock > Configuration > Configuration: select the “Drop Shipment Sequence”
in products, go to the “suppliers” tab; check “supply on sale”; open one supplier from this tab and check “drop shipment” there
create a shipment product “delivery by supplier”, make it “salable” and “purchasable” and check “supply on sale” in products > suppliers, assign it in “carrier”. You may need to restart Tryton to apply these changes.
Proceeding:
create a sale, process and confirm it.
go to menu > purchases > purchase request. A new purchase request was created for your customer
“create a purchase”, use propeller icon
goto menu > purchases > purchases
select you purchase, process and confirm it
you should see a drop shipment to be created; click that
hit “ship” and “done” to ship the drop shipment
customer and supplier invoices are created and need to be confirmed/posted
AFAIR you must set a supply time of 00:00 for the supplier, so he is able to always deliver on time the customer products.
Otherwise, the system will consider that the drop shipment can not be delievered on time, so it will ask you to just purchase the goods from another supplier.
Ok, I’ll try this later. Put in the supplier manually in the “party” box. When I now go to “drop shipment”, when trying to save I get this error:
Traceback (most recent call last):
File "/trytond/wsgi.py", line 119, in dispatch_request
return endpoint(request, **request.view_args)
File "/trytond/protocols/dispatcher.py", line 49, in rpc
return methods.get(request.rpc_method, _dispatch)(
File "/trytond/wsgi.py", line 86, in auth_required
return wrapped(*args, **kwargs)
File "/trytond/protocols/wrappers.py", line 181, in wrapper
return func(request, pool, *args, **kwargs)
File "/trytond/protocols/dispatcher.py", line 207, in _dispatch
result = rpc.result(meth(*c_args, **c_kwargs))
File "/trytond/modules/sale_supply_drop_shipment/stock.py", line 382, in create
company=values.get('company', default_company)).get()
AttributeError: 'NoneType' object has no attribute 'get'
Fault: 'NoneType' object has no attribute 'get'
It seems you did not have any sequence for numbering drop shipments.
You should open stock configuration, and set a value for the field “Drop Shipment Sequence”.
Once set you should be able to continue with the workflow.
I can now create a drop shipment, include the origin from a sale line to it as well.
But how do I achieve that a customer’s and a supplier’s invoice are created?
And for what reason does the “invoice lines” section in drop shipments exist?
I seem to be missing something, so let’s try to track that down. First I see is:
I can choose “drop” or “supplier” at “from location”. Both make sense to me - but which one is for what purpose?
At “to location”, “drop” seems the only possible. True?
That’s what never happens here. I always wondered why I have to do so much of the same input over and over again. Seems I’m still missing some prerequisites. What could it be? - I think I covered everything from the checklist in msg. #3.
Did you set the supply time as I requested here?
In order to validate that everything is setup correctly you must see that the customer field is filled on the Purchase Request generated by the Sale.
Meanwhile, I became a little familiar and can handle the process. Thanks a lot to all contributors.
One problem is remaining: Shipment costs.
I’d just forward them to my customer, other folks may or may not add a supplement or a discount on supplier’s shipment costs. But in my setup, shipment costs are not “inherited” to supplier and customer invoice, I have to add them manually.