add writeProduct