{"action":"created","issue":{"url":"https://api.github.com/repos/partkeepr/PartKeepr/issues/871","repository_url":"https://api.github.com/repos/partkeepr/PartKeepr","labels_url":"https://api.github.com/repos/partkeepr/PartKeepr/issues/871/labels{/name}","comments_url":"https://api.github.com/repos/partkeepr/PartKeepr/issues/871/comments","events_url":"https://api.github.com/repos/partkeepr/PartKeepr/issues/871/events","html_url":"https://github.com/partkeepr/PartKeepr/issues/871","id":234693460,"node_id":"MDU6SXNzdWUyMzQ2OTM0NjA=","number":871,"title":"Propose addition of a tool to organize, manage, and track orders","user":{"login":"twelve12pm","id":13225038,"node_id":"MDQ6VXNlcjEzMjI1MDM4","avatar_url":"https://avatars2.githubusercontent.com/u/13225038?v=4","gravatar_id":"","url":"https://api.github.com/users/twelve12pm","html_url":"https://github.com/twelve12pm","followers_url":"https://api.github.com/users/twelve12pm/followers","following_url":"https://api.github.com/users/twelve12pm/following{/other_user}","gists_url":"https://api.github.com/users/twelve12pm/gists{/gist_id}","starred_url":"https://api.github.com/users/twelve12pm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twelve12pm/subscriptions","organizations_url":"https://api.github.com/users/twelve12pm/orgs","repos_url":"https://api.github.com/users/twelve12pm/repos","events_url":"https://api.github.com/users/twelve12pm/events{/privacy}","received_events_url":"https://api.github.com/users/twelve12pm/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-06-09T00:46:12Z","updated_at":"2018-07-10T19:32:01Z","closed_at":null,"author_association":"NONE","body":"# Feature request: Propose the addition of a tool to organize, manage, and track orders.\r\n\r\nThis would create a new top-level Orders page.\r\n\r\n\r\nThe purpose of the Orders page is:\r\n- A. Quickly queue parts and create orders.\r\n- B. Keep track of orders that have been placed.\r\n- C. When orders arrive, check parts in quickly.\r\n\r\n\r\n## Item A: Quickly queue parts to be ordered.\r\n\r\nThere are three reasons why we are ordering parts:\r\n\r\n1. Ordering parts for a production run\r\n2. Ordering parts to fulfill our minimum stock levels\r\n3. Ordering arbitrary parts for any reason\r\n\r\nTo create orders, the user begins by queueing parts that need to be purchased in a Shopping List. The Shopping List is a staging area and is independent of the distributor(s) who will be supplying the parts. Someone else requested a \"wish list\" feature to keep track of parts you may want to purchase in the future. The Shopping List is essentially the same idea. It would be persistent so you could add or remove items at any time.\r\n\r\nParts are queued (added to the Shopping List) by any combination of the following actions:\r\n\r\n1. For production run: Select Project and specify Quantity, similar to the Project Reports feature. All parts needed for the Project are queued to the Shopping List, taking into account project quantity, parts in stock, and minimum stock level of those parts.\r\n2. For fulfilling minimum stock levels: Click a button that automatically queues all parts in the system that are below minimum stock level.\r\n3. User can queue arbitrary parts as well by selecting any individual part and specifying quantity.\r\n\r\nThese three steps may be repeated in any combination and as many times as needed, potentially queueing up a large Shopping List to assemble many boards, meet stock levels, and purchase other odds and ends.\r\n\r\nOnce the Shopping List is complete, it is time to decide which distributor(s) to order the items from. In this process, items are moved from the Shopping List to Orders, one Order per distributor.\r\n\r\nThere are two alternate strategies for ordering:\r\n\r\n1. Minimize part cost by ordering each part from the distributor with the best price, at the expense of higher shipping costs (more distributors = more packages shipped).\r\n2. Minimize shipping costs by ordering from the fewest distributors, even if part cost is higher.\r\n\r\nThe user may manually create Orders and move individual parts back and forth between the Shopping List and an Order, or move them from one Order to another.\r\n\r\nBut a better approach is to push a button, whereby PartKeepr will calculate the two alternate ordering strategies and present the alternatives and their estimated total costs. The user will choose one of the alternatives and PartKeepr will automatically create the orders and move the items from the Shopping List to the Orders.\r\n\r\nAs explained above, the user may manually move parts between Orders, put them back on the Shopping List, add or remove parts, change quantities, etc., so this gives a chance to fine-tune the orders.\r\n\r\nOnce the user is happy with an Order, the Order is exported as a CSV spreadsheet. Several distributors allow uploading a CSV BOM to create a shopping cart.\r\n\r\n\r\n## Item B: Keep track of orders that have been placed.\r\n\r\nOnce the user places an order with a distributor, the user can change its status from Pending to Ordered.\r\n\r\nAt any time, the user can set additional data about the order, such as:\r\n- Order date\r\n- Tracking number\r\n- Estimated arrival date\r\n- Actual shipping cost\r\n- Taxes\r\n- Other costs\r\n- Total invoiced cost\r\n- Received date\r\n- Other notes\r\n\r\n\r\n## Item C: When orders arrive, check parts in quickly.\r\n\r\nWhen a package is received, the user can go through the list of parts in the Order and check them in. Checking an item in will open a dialog box with the following fields: Quantity Received, Price Per Item. These will be pre-filled with the information from the Order. The user can make changes if necessary. For example maybe items are backordered and the distributor sent fewer parts than ordered, or maybe the actual part cost differed from the cost in PartKeepr's database. Clicking OK in this dialog box will update stock history and stock level for that part. It will also update the item in the order, by recording the actual invoiced price and quantity received. If the full quantity was received, some visual cue will indicate that the part is fully reconciled. After checking in all the items that arrived, the user will be able to see at a glance whether the order is complete or parts are missing.\r\n\r\nBy going through this process, the effort to update stock levels is minimized and we get the additional benefit of reconciling orders and keeping track of shortages in case the distributor needs to send additional packages, or distributor error.\r\n\r\nOnce all the items in an order are marked as arrived in good order, PartKeepr will mark the whole order as Complete.\r\n"},"comment":{"url":"https://api.github.com/repos/partkeepr/PartKeepr/issues/comments/403939840","html_url":"https://github.com/partkeepr/PartKeepr/issues/871#issuecomment-403939840","issue_url":"https://api.github.com/repos/partkeepr/PartKeepr/issues/871","id":403939840,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMzkzOTg0MA==","user":{"login":"twelve12pm","id":13225038,"node_id":"MDQ6VXNlcjEzMjI1MDM4","avatar_url":"https://avatars2.githubusercontent.com/u/13225038?v=4","gravatar_id":"","url":"https://api.github.com/users/twelve12pm","html_url":"https://github.com/twelve12pm","followers_url":"https://api.github.com/users/twelve12pm/followers","following_url":"https://api.github.com/users/twelve12pm/following{/other_user}","gists_url":"https://api.github.com/users/twelve12pm/gists{/gist_id}","starred_url":"https://api.github.com/users/twelve12pm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/twelve12pm/subscriptions","organizations_url":"https://api.github.com/users/twelve12pm/orgs","repos_url":"https://api.github.com/users/twelve12pm/repos","events_url":"https://api.github.com/users/twelve12pm/events{/privacy}","received_events_url":"https://api.github.com/users/twelve12pm/received_events","type":"User","site_admin":false},"created_at":"2018-07-10T19:32:01Z","updated_at":"2018-07-10T19:32:01Z","author_association":"NONE","body":"Agreed. Currently we are spending an inordinate amount of time updating stock levels which requires us to have the paperwork from the order handy, as well as a second browser window open to the distributor's website, and to reconcile each item manually. The primary motivation of the orders functionality as described in the original post is to automate this tedious process."}}
{"actor":{"display_login":"twelve12pm"}}