This change log is a reference as to when a new feature was added or a bug was fixed. If you want to release a new version on your productive server, you must do a backup of your productive mySQL database and download the 3P changes via SVN. However, you should test the new version in a intranet environment first and make sure, that all extensions you added yourself still work in the new version. You may also have to transfer your custom code to the new version. For details, please read the topic on Update & Maintenance.
Version 1.3 - July 2017
• | Fixed: If "json_cronjob.php" crashes, it can leave a job in "running" state. All subsequent cron instances will terminate and job requests will pile up. |
• | Fixed: <cover_pages> and <content_pages> zero values in job.xml. Implemented a better pagecount source from table "3p_upload_file". Field "3p_upload.chunk_page_count" is unreliable. |
• | Fixed: status in job.xml and database can become async, PDFs can get deleted due to this, and order status is set to "failed". |
• | Fixed: reorder does not work correctly. |
• | Fixed: cart not cleared on return from payment. |
• | Fixed: password not transferred to PayDirect. |
• | Improved: PayDirect now passes on success notification from PayPal to OC store. |
• | Improved: order id now displayed in PayPal payment and receipt mails. |
Version 1.2 - March 2016
• | Changed order status meanings: Queued (2), Processing (15), Shipping (3) |
• | read <Currency>EUR</Currency> from products.xml |
• | check if all cron jobs report errors to oc_order_history; also add all upload errors to customer/order history |
• | download page now has relative image paths: update installer |
• | allow "More" parent in categories (when top menu is too short) |
• | fixed "new font" in domPDF to support greek |
• | fixed "order expired" email notification bug |
• | fixed category/product relationship duplicates issue |
• | cron deletion as workaround for OC bug: payment error creates orders with order_status_id=0; remove junk orders in oc_order and oc_order_product |
• | order status mails are now in utf-8 (stored inside the database) |
• | always delete ALL order junk records for a given user, even in the success case |
• | the cart item must be created as soon as the upload is finished, even if the user does not enter the cart |
• | add OrderStatusMessage to job.xml; also create ".new" trigger file for automatic printer processing |
• | when the user changes the password in his account, also update the cleartext password needed for the payment |
• | only send admin mail if there is an error message in OrderStatusMessage (default value = empty) |
• | OC text editor converts hmtl code to readable code |
• | admin status emails: order items are missing line breaks |
• | tag cloud links leads to empty product group |
• | bug: paying for a cart with 2 items, even though the upload session for one item was deleted through PurgeIncompleteUploadDays:
lock cron, so upload cannot be removed when the customer is in the process of paying (json_clean_upload.enabled, json_clean_orderbydays.enabled; json_clean_folder.enabled) |
• | sql script to remove obsolete products |
• | import dummy (no name tag) feature & option images as product images, so they are displayed below the product for additional info |
• | disable cookie storage for currency. currency must be shop currency, as price is also shop price |
• | increase image in product page to 300 px |
• | added "Subshop-ID" column in the dashboard |
• | gift voucher: email with voucher code was sent from wrong email address |
• | product filter, example: Hardcoverbuch 30.0cm x 29.4 is now inside "square" filter: if Abs(height-width) <= 1.5 |
• | delete obsolete options on product import |
• | added customer information in result.xml returned by login form inside DP, like projects_root_unc |
• | leather option wrong, fixed, reason : sometimes OPTION doesn't have selected attribute, so PHP missed that |
• | 3p_design/login.php for OE should return new/added session ID when repeatedly called |
• | bug: same coupon is applied in two orders, but it's allowed only once. Reason: |
- coupon saved in session, and session is shared with all
- session data (coupon, voucher) only cleared in success/page
- session will be valid, if it's not used yet
- session will be used, only if the coupon(extension)/confirm called
- in paypal method, it will called only when paypal success/complete/return(async)
- in COD method, it will called immediately (model_checkout_order->confirm)
- the order 40300 created by paypal, and order 40303 created by COD
- there could be two reasons:
paypal returned, but didn't call confirm successfully, because order_id is saved in session too
if COD is confirmed before paypal, the order_id will be cleared, so it won't call confirm successfully
ORDER 40300 => pay/coupon => confirm (order added) => redirect => paypal portal => suspend
ORDER 40303 => pay/coupon => COD => confirm => apply the coupon and success
Solution: changed the logic, when the order is created, the coupon will be confirmed and in use, so there is no way to re-use it, and not able to withdraw even it didn't go for success page. The payment method controller will be called in checkout/confirm.
• | bug: when the product type is Leather, there is no cover page, but the thumbs.zip generated by DP still regards the first page as cover page, so it will insert blank page of first page, and the blank page of last page. Using the newest publisher v3.8 will solve this problem. |
• | code for the authentication of OD will support previous DP too |
Version 1.1 - May 2014 - March 2015
• | BO: cascading delete of orders & customers; delete all associated files in cron job. |
• | flipbook page sequence: added empty pastedown pages to beginning, end of book -> integrate in flipbook |
• | invoice store logo missing (broken) |
• | new options: DeleteFilesOnFailDetect=true/false: DeleteFilesOnFailManual=true/false |
• | log all deletions and file purges to oc_order_history |
• | clean files if customer or order is deleted in OA |
• | move all print auxiliary files (invoice, shipping label, delivery note) to "infos" queues |
• | oc_stock_status values "1 Active, 2 Inactive, 3 VisibleDateExpired (VisibleToDate), 4 OrderdateExpired" (OrderByDate, added by 3P setup). 3 & 4 must be automatically set by cron after dates expire. |
• | put DateExpired values into oc_product_attribute, and use 3 & 4 names = option name, so cron can check use the date values |
• | only allow re-ordering if PDF files are still there: lock upload session |
• | 3P Demo: the shopping cart popup (top right) closes, if I move the mouse over the carousel banner position icons |
• | install PayPal extension (see merchant data at bottom) |
• | manage all communication with the printer over a job file (p53306db8574a2_job.xml) containing all database fields from oc_customer, oc_order, oc_order_product. inside this file, the printer can also change the status to 15="processed" and 3="shipped" -> cron can parse this file and update oc_order.order_status accordingly -> log into oc_order_history |
• | stock_status inactive, expiring, unavailable: no link to download page! also if VisibleFromDate is in the future |
• | manual status change in OA -> call cron jobs |
• | only allow reorder if status=shipped |
• | product options in products.xml are incl. tax, so in the OC table we have to remove tax |
• | page increments must be included in total price |
• | define size & price ranges in products.xml |
Version 1.0 - April 2014
• | manual delete of order incl. files, automatic cleanup of interrupted or broken orders (ie: all folders older than 2 weeks) |
• | default invoice from API: theres no shop logo, where is tax field? |
• | when one of the order items has pdf error, the order is changed to "failed" and a reason (with product_id) is inserted into order_history. |
• | mail bug. the <br> is not converted to line breaks in the mail, which seems to be text not html mail |
• | I cannot have an order in store 1 from a customer in shop 0 - customer 0 is not known in store 1 - login form must check credentials AND subshopid |
• | Create tax classes for every tax from products.xml - examples: <VAT>1900</VAT> = 19%, <VAT>0700</VAT> = 7% |
• | how can we handle <REBATES> if higher amounts are ordered (see products.xml). is there a OC feature or extension for this? |
• | test: if a subshopid is invalid, we must return an error in result.xml (an installation can have an invalid subshop, if the shop was closed meanwhile) |
• | remove language selector in OC |
• | email verification - after registration, show form which includes "thank you for registering: please confirm your verification email" and link with "resend verification mail" |
• | enhance api to allow for thumbs.zip upload |
• | selected options of upload.xml not shown in cart |
• | show JPG flipbook preview. should only be shown in the cart & order, if thumbs.zip was uploaded by the publisher (to ensure downward compatibility with older publisher versions) |
• | there are 122 products in total and 244 product descriptions. products are ONLY edited in the products.xml, so no 2 languages here! |
• | flipbook url needs protection (bypass login as in the other urls: json_login.php) |
Development - Feb 2014
• | show previous email adr in login form (is passed on by publisher) |
• | new user: click on privacy policy, directed to an empty page, click back, all data is lost |
• | if a folder is missing (admin deleted it manually), then OC must also delete the cart item and the file records - Failsafe |
• | after payment, merge the uploaded files into a single pdf |
• | Admin: product catalog does not show images |
• | if a subshopid is invalid, we must return an error in result.xml (an installation can have an invalid subshop, if the shop was closed meanwhile) |
Development - Jan. 2014
• | productid must be derived from model, so a product.xml reimport does not break old orders (override autoinc field) |
• | wrong login -> show error message below form, allow to resend password, etc. |
• | nicer & customer-adaptable login-form |
• | order basket: forgot to add the feature prices to the total |
• | when something goes wrong, we should get an explanatory support help page, and not "no session pathno upload.xml" |
• | after upload go past login page directly to order basket |
• | if user cancels order (does not continue with upload, but starts new upload), then the incomplete folder and records must be deleted (after x days) |
• | user deletes an item in shopping basket -> complete cleanup of upload incl. folder and files |
Development - 2013
• | in products.xml import, if a product is no longer inside products.xml, or if active=0, then set its product status to "Inactive" |
• | we have oc_stock_status values "Active, Inactive, VisibleDateExpired, OrderdateExpired". These values must be added via SQL script to oc_stock_status table |
• | allow product tag feature cloud, and product filtering for price & size |
• | oc_option, oc_option_value_description, etc: relation violation: redundant values. Options are always the same, so don't re-add them for every product |
• | filter boxes should be on mainform too |
• | PDF page upload module, which redirects user to shopping cart |
• | replace the "Add to cart" with a "Design now" button, leading to a download page where the Publisher software can be downloaded |
• | display category & product images |
• | prices are wrong (decimal!) |
• | test "dxtest" product. show the additional options in the feature dropdown |
• | nested addition of feature + option upprice |
• | New products & product changes must appear after import (allow updates of products from products.xml) |
• | hide cc1 group. these are custom products for local printing |
• | update modification dates during import |
• | BasePageCount, MaxpageCount, BasePrice, UpPriceInc need to be reflected somewhere in product description |
• | display feature images (they are in the same folder as product images!) |
|