Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Plone 3 Products Development Cookbook
Plone 3 Products Development Cookbook

Plone 3 Products Development Cookbook: 70 simple but incredibly effective recipes for creating your own feature rich, modern Plone add-on products by diving into its development framework

eBook
$25.99 $28.99
Paperback
$48.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Plone 3 Products Development Cookbook

Chapter 2. Using Development Tools

In this chapter, we will cover:

  • IPython: An interactive Python shell

  • ipdb: A replacement for regular Python debugger and usage from URL

  • DocFinderTab: Online Plone products documentation

  • Clouseau: Online Python shell

  • PDBDebugMode: Post-mortem debugger

  • plone.reload: Application of code changes without restarting Zope

Note

You can find more tools at http://plone.org/products?getCategories=dev. Especially, you should consider adding Products.PrintingMailHost in any development environment you are working on to help you with tasks involving sending e-mails.

Introduction


This chapter has a twofold purpose:

  • The first and main one is to introduce several Python packages and Plone products that will help us during the development of any Plone project.

  • The second is to deepen our knowledge and skill in dealing with the buildout configuration files.

Although the latter is the core of the previous chapter, there will be lots of examples in the book (and especially in the following pages) that will help us get used to this technique.

Some of these developer-essential tools will be available only when running the Zope instance in debug-mode. To set this mode, we have two choices:

  • Changing debug mode parameter in configuration file

  • Running Zope instance in foreground mode

Changing debug mode parameter in configuration file

To change debug-mode parameter in the configuration file of our instance, do the following:

  1. Change debug-mode parameter under [instance] part of the buildout.cfg file:

    [buildout]
    
    ...
    
    [instance]
    ...
    debug-mode=on
    ...
  2. Build your instance again...

Accessing an IPython powered shell


IPython, a Python shell on steroids, provides an interactive environment for programmers, enriching and easing their experience during the development and debugging stages of the project. Some of its highlighted features are:

  • Object introspection

  • Code introspection

  • Documentation introspection (%pdoc magic command)

  • Input history, persistent across sessions

  • Tab auto-completion

Note

To learn more about IPython visit the project website at: http://ipython.scipy.org/moin.

These and more of its features will be quite useful to get used to Plone's code and to get to know better its API and documentation. IPython's particular mode to write doctests will also be a great help when working with them (refer to Creating doctests with IPython in Chapter 4 for more details about this).

How to do it…

To take full advantage of IPython inside Zope, we will create a new executable file in the bin directory: ipzope. To do so, we will add some lines in the buildout.cfg file:

  1. Include...

Taking advantage of an enhanced interactive Python debugger with ipdb


As a Python developer, you should already be familiar with pdb. So think of ipdb as a Python debugger with many of the advantages IPython provides. ipdb, for example, is much easier to use thanks to the IPython autocomplete feature.

Note

You can find the official documentation for pdb for Python 2.4 at http://www.python.org/doc/2.4.4/lib/module-pdb.html.

ipdb has another very useful and important feature which is the ability to get an IPython shell in our instance console whenever we want by means of adding the /ipdb suffix to any URL.

Note

ipdb is only available when Zope is running in the foreground mode.

How to do it…

  1. Add the iw.debug line in eggs parameter of [buildout] part:

    [buildout]
    
    ...
    
    # Add additional eggs here 
    eggs = 
           iw.debug 
    
  2. Insert an iw.debug line in the zcml parameter of [instance] part:

    [instance]
    
    ...
    
    # If you want to register ZCML slugs for any packages, 
    # list them here. 
    # e.g. zcml = my.package...

Discovering Zope/Plone APIs and docstrings with DocFinderTab


Although Zope and Plone documentation is really good, sometimes it's so comprehensive that we must read and browse lots of code before we get what we are looking for. DocFinderTab provides a great way of finding it.

How to do it…

  1. Add the Products.DocFinderTab line in the eggs parameter of [buildout] part:

    [buildout]
    
    ...
    
    # Add additional eggs here 
    eggs = 
        iw.debug 
           Products.DocFinderTab
    
  2. Build your instance again and launch it:

    ./bin/buildout
    ./bin/instance fg
    

Now you can navigate to your ZMI (Zope Management Interface) instance to see a new Doc tab. For instance, browse to the URL http://localhost:8080/plone/showDocumentation to get the documentation tab as shown in the following screenshot:

You can also do this with a particular document, folder, or tool of your site:

  • http://localhost:8080/plone/front-page/showDocumentation.

  • http://localhost:8080/plone/events/showDocumentation.

  • http://localhost:8080/plone/portal_catalog...

Opening an online Python shell on Plone using Clouseau


If IPython already offers a great add-on for development, Clouseau takes us a step further with an AJAX-based Python shell interface integrated within our Plone site.

Note

Please be advised that Clouseau hasn't been updated since December 2008 and it has not been officially tested in Plone 3. However, it still works like a charm.

How to do it…

  1. Add the Products.Clouseau line in the eggs parameter of [buildout] part:

    [buildout]
    
    ...
    
    # Add additional eggs here 
    eggs = 
        iw.debug 
        Products.DocFinderTab
           Products.Clouseau
    
  2. Auto-install Clouseau during buildout: Add it to the products parameter in [plonesite] part if you want Clouseau to be automatically installed during the buildout process:

    [plonesite] 
    recipe = collective.recipe.plonesite 
    site-id = plone 
    instance = instance 
    products = 
           Clouseau
    
  3. Rebuild and re-start:

    ./bin/buildout
    ./bin/instance fg
    
  4. Open a new Clouseau session and once logged in you'll see at the bottom...

Debugging Zope exceptions with PDBDebug Mode


Whenever an exception is fired by some situation not foreseen during development, we can trace the exception in Zope logs or in the console itself. Many times during development, it's more useful to get direct access to the exception's context to better understand the problem. PDBDebugMode, a postmortem debugger, allows us to do that. It opens a pdb prompt to let us get our hands dirty.

How to do it…

  1. Add a Products.PDBDebugMode line in the eggs parameter of the [buildout] part.

    [buildout]
    ...
    
    # Add additional eggs here 
    eggs = 
        iw.debug 
        Products.DocFinderTab 
        Products.Clouseau
           Products.PDBDebugMode
    
  2. Rebuild the Zope instance:

           ./bin/buildout
    
  3. Test PDBDebugMode. As we said earlier, from now on every time Zope fires an exception (if running in debug mode), a pdb (not an ipdb though) will prompt us to inspect the context.

    • For an easy test, we must first tell Zope to pay attention to (that is, not ignore) the kind of exceptions...

Applying code changes on-the-fly using plone.reload


When a Zope instance is running in debug mode, most of the changes made in the underlying code (except for templates, Python scripts, and some other resources like CSS) won't be refreshed in the server until it is restarted. This means that if we want to test a new method or if we had detected a problem and solved it, we must restart our Zope server to see the results. At first glance, it doesn't seem to be a big deal. However, in the rush of development or when making lots of little changes in the code, this could really be a pain in the neck. This is especially true if we are working with a production database because they normally take a long time during server launch.

Fortunately , plone.reload can come to our rescue. In a fraction of a second it detects and refreshes all the changes made to the code. Moreover, if we had modified configuration options (not .py files but .zcml, as we'll see in future chapters), we can apply them on-the...

Left arrow icon Right arrow icon

Key benefits

  • Create custom content types, add utilities, and internationalize your applications using Plone products
  • Manage site installation, configuration, and customization with code instead of manual actions that are likely to be forgotten
  • Guarantee your code operation and performance by including automatic testing and caching techniques
  • Part of Packt's Cookbook series: Each recipe is a carefully organized sequence of instructions to complete the task as efficiently as possible.

Description

The Plone Content Management System is one of the best open source CMS, because by using Plone's development framework you can extend its functionality according to the specific requirements of your website. The Plone framework has lots of components that can be used to create add-ons or extensions called Plone Products. You can optimize your site for improved usability, accessibility, and security by creating custom Plone products.This book covers recipes that will help you create custom Plone Products and implement them on your website. Every topic covered in this book is accompanied by essential fundamentals and step-by-step explanation that will help you understand it better. With the help of this book you will be able to create custom Plone products that are well suited for your website.You can read the whole book or just pick recipes relevant for you; cross references help you understand the recipes even if you do not read them in order.If you work through the book in order, you will start by setting up an example project of a news website that will be developed throughout the book. You will learn about all of the necessary tools a Plone developer must have before starting any project. You will develop the website further by detecting problems and debugging them. You will be able to modify code on-the-fly or get help on how to do some tasks by installing and using special tools such as IPython, ipdb, and PDBDebugMode. You will then create a new content type, based on an existing one, and wrap the final product into a Python egg.You will set up automated testing to prevent errors in code that have evolved in the development stage. You will use paster to automatically create a new custom content type from scratch. You will improve the performance of your application by creating lightweight content types and following other recipes covered in this book. Key features such as usability, internationalization, accessibility and security are covered to make sure that your development and customizations will be at the level of Plone core and its most remarkable add-on products.You will improve your user interface by creating simple client-side visual changes and server-side manipulation of objects. You will learn to create and manage portlets by using Portlet manager and customize your website by modifying third-party products. Finally you will learn to communicate with an external non-Python-based system and make your products available for future use.

Who is this book for?

This book is for programmers who have some knowledge of Python, Plone, and Zope. If you want to develop feature-rich add-on products in Plone, this book is for you. It is aimed at the development of backend features, so you need not have other web-related skills such as HTML, CSS, or JavaScript.

What you will learn

  • Set up a news website with many banners hosted in OpenX and get to know about all the tools you must have before starting any project
  • Easily detect and debug existing errors in the code by installing some special tools such as IPython, ipdb, and PDBDebugMode among others
  • Create a new content type (based on an existing one) using ArchGenXML and wrap the final product into a Python egg
  • Create a new content type from scratch automatically using paster
  • Complement your content types by placing related information in new portlets and manage these portlets
  • Improve the performance of your product by creating lightweight content types and taking advantage of other features of Plone
  • Secure some tasks and content types by setting permissions, roles, groups, workflows and configuration options
  • Protect the operation of your code from accidental changes by setting up some automatic tests such as unit tests, functional tests, and integration tests
  • Easily translate your website by using internationalization facilities in Plone
  • Display your final web page as per your requirement by adding new features to existing third-party products
  • Integrate your products with external software like Python packages or other systems via XML-RPC
  • Improve the user interface by creating simple client-side visual changes and server-side manipulation of objects with KSS
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : May 10, 2010
Length: 388 pages
Edition : 1st
Language : English
ISBN-13 : 9781847196729
Concepts :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : May 10, 2010
Length: 388 pages
Edition : 1st
Language : English
ISBN-13 : 9781847196729
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 114.98
Professional Plone 4 Development
$65.99
Plone 3 Products Development Cookbook
$48.99
Total $ 114.98 Stars icon

Table of Contents

14 Chapters
Getting Started Chevron down icon Chevron up icon
Using Development Tools Chevron down icon Chevron up icon
Creating Content Types with ArchGenXML Chevron down icon Chevron up icon
Prevent Bugs through Testing Chevron down icon Chevron up icon
Creating a Custom Content Type with Paster Chevron down icon Chevron up icon
Creating Lightweight Content Types Chevron down icon Chevron up icon
Improving Product Performance Chevron down icon Chevron up icon
Internationalization Chevron down icon Chevron up icon
Adding Security to your Products Chevron down icon Chevron up icon
Improving User Interface with KSS Chevron down icon Chevron up icon
Creating Portlets Chevron down icon Chevron up icon
Extending Third-Party Products Chevron down icon Chevron up icon
Interacting with other Systems: XML-RPC Chevron down icon Chevron up icon
Getting our Products ready for Production Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(4 Ratings)
5 star 0%
4 star 100%
3 star 0%
2 star 0%
1 star 0%
Maurits van Rees Jun 18, 2010
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This is a very practical book. The authors do not present much theory, except when it is really needed to understand the recipes. With 70 recipes of about 5 pages each, there is not much room to go very deep into a subject. I think that does make for a book that I can point to in answer to questions on mailing lists: "Oh, just read that recipe in the cookbook on page 42."I would say the book is for beginning to intermediate Plone programmers. The only new information I saw for myself was about plone.app.content and dexterity. Still, it is good to have available when you think: "Today I want to bake a fresh portlet, let's get the cookbook." You will find good, solid information in this book.Read a more complete review on my weblog: [..]
Amazon Verified review Amazon
Kindle Customer Jun 16, 2010
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This book contains 350 pages of expert-level advice for the experienced Plone developer. This is not a book for Plone newbies-- the authors state right up front that readers should have some understanding of Plone/Python/Zope, and I believe this is true. For those already aware of the basics, though, this book reads like the working notes of a top-level Plone consultant.The book is organized around a hypothetical 10 requirements presented to the reader for a client's website. (The 10 include such tasks as preparing for internationalization, allowing multimedia content in downloadable and playable form, and 8 other reasonable requests.) Throughout the book, the reader is told how to fulfill these 10 requirements. Along the way there are a multitude of best practices outlined, too.The book is set up to be read as a reference. Some chapters build on others, but many allow an immediate jump to the desired topic. This fits the book's flavor, which is more reference than overview.All things considered, I would recommend this book to anyone who wants to undertake serious Plone 3 development.
Amazon Verified review Amazon
Israel Saeta Pérez Jun 13, 2010
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
When I received a review request for Plone 3 Products Development Cookbook from Packt, the first thing I thought was: How didn't I know about this book before, and who are the authors? I'd certainly not heard about them (Juan Pablo Giménez and Marcos F. Romero) nor this upcoming book ever before, but it seems there are a lot of Plone books being written behind the scenes by people not hanging at #plone too. :)The list of reviewers, comprising Martin Aspeli, Alec Mitchell and Emanuel Sartor, being as they are core and very active developers, automatically made me think this was going to be an accurate and up-to-date book.This is the second book in the market about modern development with Plone, after Martin Aspeli's Proffessional Plone Development. And after having skimmed through it (if you try to proof-read this kind of books from top to bottom your brain can explode), I can say that it's probably going to become a classic invaluable reference as PPD already is.Plone 3 Products Development Cookbook spans over 350 pages full of useful tips, set-up instructions and step-by-step coding approaches to solve specific use-cases (that's why it's called "cookbook"). Even if the book title says Plone 3, I think it's just a Packt policy - one can be sure that most of the contents (if not all them) will be valid for Plone 4 too, and the authors even included some special instructions for Plone 4.The book show-cases the development of an hypothetical digital newspaper with Plone, covering the whole process: From installing Python and Plone in Linux or Windows (Mac OSX specifics aren"t covered in this book) to preparing the production environment, passing through the installation of useful development tools like ipdb, DocFinderTab or plone.reload, creating content-types using ArchGenXML, paster-aided plain Archetypes or Dexterity, internationalizing and localizing the product, building XML-RPC interaction with other systems, and more (see the full table of contents). All the features coded include automated tests, what is a Very Good Practice and will help devs to be less afraid of writing tests.The book is organized in a recipe-list fashion, in chapters, every recipe including "getting ready", "how to do it", "how it works" and "there is more" sections. Sometimes the separation of concerns between these sections is not very clear, but one can expect a series of short steps in "how to do it", to use as reference, and some brief explanation in "how it works".In my opinion, this is not a book for beginners. Even if there are some explanations in the "how it works" section of each recipe, they are almost always quite brief, and can certainly make you have to re-read and Google for more documentation often, if you really want to understand how the Zope Component Architecture, ZPT, skin layers, z3c.forms, etc. work. I see it more as a reference book for more advanced developers, who can also discover in this book some tricks and approaches they didn't know before - I certainly did!Summing up, this is a really useful reference for folks with previous developing experience in Plone. My sincere congratulations to the authors for their hard work to make this happen - I'm sure it will hit the shelves of every active Plone developer!
Amazon Verified review Amazon
J. Kidd Jul 21, 2010
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This book provides practical information on how to create a Plone product from beginning to end. It says on the cover that it provides "quick answers to common problems," but it actually does quite a bit more than that. It also provides you with tools that will help in making product development more effective.I come to this book as someone who has used Plone for many years, but would like to learn more about developing products for Plone. In addition to providing step by step instructions for common product creation tasks, the book also provides information on debugging tools, creating tests for your products, and packaging your products for distribution.So far, the book has held up to practical tests as well. It was able to help someone in our office, who had never created a custom content type before, create a new content type quickly and easily. We're thinking of using the book in our monthly Plone meetings to help the people who come to our group get up to speed in the creation of content types.If there is one problem with this book, it is that it is for Plone 3 when Plone 4 will be released soon. Much of what is here will still be useful, but there will be some changes. Of course, writing a book like this, you will always we trying to hit a moving target. Still, I would have liked to have seen a chapter at the end on what was coming in Plone 4 and what we could have expected to be different.But, as I've said, this book has already proved its usefulness to me. I would highly recommend it.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the digital copy I get with my Print order? Chevron down icon Chevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela